@dxos/plugin-space 0.8.3 → 0.8.4-main.2e9d522
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 +31 -0
- package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +7 -0
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +88 -0
- package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-M2RH72VL.mjs → app-graph-builder-7CZZJS3S.mjs} +143 -27
- package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-F7ISRRBV.mjs → app-graph-serializer-H6AW7KGS.mjs} +13 -13
- package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BXNL6SDI.mjs → chunk-CEFHNVU7.mjs} +4 -3
- package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PTKYMZWO.mjs → chunk-FBCGT5YY.mjs} +2 -2
- package/dist/lib/browser/{chunk-YMCZR6EZ.mjs → chunk-JS3MMC42.mjs} +4 -3
- package/dist/lib/browser/{chunk-YMCZR6EZ.mjs.map → chunk-JS3MMC42.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-4ZKSFDXM.mjs → chunk-QACNNDOT.mjs} +73 -12
- package/dist/lib/browser/chunk-QACNNDOT.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TW7O2EPP.mjs → chunk-SGTQ52SU.mjs} +59 -5
- package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NFUKCRGE.mjs → chunk-V7MJSSBQ.mjs} +392 -324
- package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7Y4M7GXO.mjs → chunk-VLBRSGJ2.mjs} +4 -4
- package/dist/lib/browser/{chunk-V24VASAJ.mjs → chunk-XUYKJUU7.mjs} +128 -25
- package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +7 -0
- package/dist/lib/browser/{identity-created-PI7TKANR.mjs → identity-created-23XJJV2N.mjs} +4 -4
- package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +105 -16
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-RWU6ZE4H.mjs → intent-resolver-TIXVDYN7.mjs} +171 -21
- package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-QIKHSNT2.mjs → react-root-N2J7TDRX.mjs} +8 -8
- package/dist/lib/browser/{react-surface-W56UD53I.mjs → react-surface-TPNLWJJH.mjs} +42 -21
- package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +7 -0
- package/dist/lib/browser/{schema-defs-WREJNMIC.mjs → schema-defs-Z6FC4AHC.mjs} +4 -4
- package/dist/lib/browser/{schema-tools-ILTVSSS3.mjs → schema-tools-BNP4JTD7.mjs} +3 -3
- package/dist/lib/browser/{settings-K54STC5A.mjs → settings-4IMP5RYT.mjs} +4 -4
- package/dist/lib/browser/{spaces-ready-3PDRDHPC.mjs → spaces-ready-TOPG6IV4.mjs} +7 -7
- package/dist/lib/browser/{state-HRZ4VRXU.mjs → state-QYZAB45H.mjs} +4 -4
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs +32 -0
- package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +7 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +89 -0
- package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-BCHVZ4OM.mjs → app-graph-builder-KGIGWC72.mjs} +143 -27
- package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-TXRGGNP2.mjs → app-graph-serializer-2ICUGQQT.mjs} +13 -13
- package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HO7AIKQS.mjs → chunk-4AOMYKDE.mjs} +128 -25
- package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3CP67AYY.mjs → chunk-5HHYE264.mjs} +4 -3
- package/dist/lib/node-esm/{chunk-3CP67AYY.mjs.map → chunk-5HHYE264.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-BSLREHIX.mjs → chunk-5T3ZH23B.mjs} +4 -3
- package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LA6AVVH6.mjs → chunk-6X5DLJM5.mjs} +392 -324
- package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MSWEFAPD.mjs → chunk-HWNG4MEU.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-D4QMPPS7.mjs → chunk-JH6F4C3I.mjs} +59 -5
- package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-JBQKU4K5.mjs → chunk-P442DOQ3.mjs} +73 -12
- package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GH2FGJXH.mjs → chunk-SSLBYZEY.mjs} +4 -4
- package/dist/lib/node-esm/{identity-created-35CTAQWI.mjs → identity-created-IJQO6GCR.mjs} +4 -4
- package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +105 -16
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-JO6L2VXC.mjs → intent-resolver-MHGHRGDT.mjs} +171 -21
- package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-YFGL3B4J.mjs → react-root-KW3TGJGY.mjs} +8 -8
- package/dist/lib/node-esm/{react-surface-CVAPDLEZ.mjs → react-surface-UUIUUD6P.mjs} +42 -21
- package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +7 -0
- package/dist/lib/node-esm/{schema-defs-4MEJETVX.mjs → schema-defs-WHJM7UZE.mjs} +4 -4
- package/dist/lib/node-esm/{schema-tools-SRLCRZ3B.mjs → schema-tools-KWW5PTML.mjs} +3 -3
- package/dist/lib/node-esm/{settings-TD76LTQS.mjs → settings-SAOBPND3.mjs} +4 -4
- package/dist/lib/node-esm/{spaces-ready-FJMGPAVV.mjs → spaces-ready-HIUKNDZK.mjs} +7 -7
- package/dist/lib/node-esm/{state-XQNDCN37.mjs → state-ZVEHQ4BJ.mjs} +4 -4
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +9 -3
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.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 +3 -2
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer.stories.d.ts +1 -1
- 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/PersistenceStatus.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1 -1
- 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.stories.d.ts +1 -1
- 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 +8 -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/translations.d.ts +212 -410
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +82 -2
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +27 -2
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +50 -52
- package/src/SpacePlugin.ts +90 -7
- package/src/capabilities/app-graph-builder.ts +166 -7
- package/src/capabilities/app-graph-serializer.ts +6 -6
- package/src/capabilities/capabilities.ts +8 -3
- package/src/capabilities/identity-created.ts +2 -4
- package/src/capabilities/intent-resolver.ts +117 -8
- package/src/capabilities/react-surface.tsx +50 -13
- package/src/components/AwaitingObject.tsx +4 -6
- package/src/components/CollectionMain.tsx +2 -0
- package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +4 -4
- package/src/components/CreateDialog/CreateObjectDialog.tsx +29 -25
- package/src/components/MembersContainer.stories.tsx +4 -4
- package/src/components/MembersContainer.tsx +6 -5
- package/src/components/MenuFooter.tsx +2 -3
- package/src/components/ObjectDetailsPanel.tsx +77 -0
- package/src/components/PersistenceStatus.tsx +5 -6
- package/src/components/PopoverRenameObject.tsx +2 -2
- package/src/components/SpacePresence.stories.tsx +2 -2
- package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +2 -2
- package/src/components/SyncStatus/SyncStatus.stories.tsx +8 -15
- package/src/components/SyncStatus/SyncStatus.tsx +1 -1
- package/src/components/SyncStatus/save-tracker.ts +3 -3
- package/src/components/SyncStatus/status.ts +4 -4
- package/src/components/ViewEditor.tsx +64 -0
- package/src/components/index.ts +6 -1
- package/src/events.ts +1 -0
- package/src/translations.ts +71 -7
- package/src/types/types.ts +56 -3
- package/src/util.tsx +116 -21
- package/dist/lib/browser/app-graph-builder-M2RH72VL.mjs.map +0 -7
- package/dist/lib/browser/app-graph-serializer-F7ISRRBV.mjs.map +0 -7
- package/dist/lib/browser/chunk-4ZKSFDXM.mjs.map +0 -7
- package/dist/lib/browser/chunk-BXNL6SDI.mjs.map +0 -7
- package/dist/lib/browser/chunk-NFUKCRGE.mjs.map +0 -7
- package/dist/lib/browser/chunk-TW7O2EPP.mjs.map +0 -7
- package/dist/lib/browser/chunk-V24VASAJ.mjs.map +0 -7
- package/dist/lib/browser/identity-created-PI7TKANR.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-RWU6ZE4H.mjs.map +0 -7
- package/dist/lib/browser/react-surface-W56UD53I.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs +0 -364
- package/dist/lib/node/app-graph-builder-6LK5HLLE.cjs.map +0 -7
- package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs +0 -89
- package/dist/lib/node/app-graph-serializer-HKHBNHA3.cjs.map +0 -7
- package/dist/lib/node/chunk-3X4EA4XL.cjs +0 -37
- package/dist/lib/node/chunk-3X4EA4XL.cjs.map +0 -7
- package/dist/lib/node/chunk-5WLAXYE3.cjs +0 -125
- package/dist/lib/node/chunk-5WLAXYE3.cjs.map +0 -7
- package/dist/lib/node/chunk-6P2DB4QQ.cjs +0 -36
- package/dist/lib/node/chunk-6P2DB4QQ.cjs.map +0 -7
- package/dist/lib/node/chunk-DOC5XEZ4.cjs +0 -184
- package/dist/lib/node/chunk-DOC5XEZ4.cjs.map +0 -7
- package/dist/lib/node/chunk-NCHF433F.cjs +0 -1921
- package/dist/lib/node/chunk-NCHF433F.cjs.map +0 -7
- package/dist/lib/node/chunk-NL5Y4EDX.cjs +0 -38
- package/dist/lib/node/chunk-NL5Y4EDX.cjs.map +0 -7
- package/dist/lib/node/chunk-ULJZPATP.cjs +0 -312
- package/dist/lib/node/chunk-ULJZPATP.cjs.map +0 -7
- package/dist/lib/node/chunk-XHWVT7LW.cjs +0 -572
- package/dist/lib/node/chunk-XHWVT7LW.cjs.map +0 -7
- package/dist/lib/node/identity-created-FF4WZ2WY.cjs +0 -42
- package/dist/lib/node/identity-created-FF4WZ2WY.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -278
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs +0 -609
- package/dist/lib/node/intent-resolver-AV4CMM3Z.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/react-root-RQUU3A45.cjs +0 -51
- package/dist/lib/node/react-root-RQUU3A45.cjs.map +0 -7
- package/dist/lib/node/react-surface-AZFJLE72.cjs +0 -351
- package/dist/lib/node/react-surface-AZFJLE72.cjs.map +0 -7
- package/dist/lib/node/schema-defs-OB2X2HBH.cjs +0 -42
- package/dist/lib/node/schema-defs-OB2X2HBH.cjs.map +0 -7
- package/dist/lib/node/schema-tools-IYREN4IH.cjs +0 -147
- package/dist/lib/node/schema-tools-IYREN4IH.cjs.map +0 -7
- package/dist/lib/node/settings-P2EQ7VKQ.cjs +0 -38
- package/dist/lib/node/settings-P2EQ7VKQ.cjs.map +0 -7
- package/dist/lib/node/spaces-ready-DXPOHYV7.cjs +0 -210
- package/dist/lib/node/spaces-ready-DXPOHYV7.cjs.map +0 -7
- package/dist/lib/node/state-M35DK75Z.cjs +0 -61
- package/dist/lib/node/state-M35DK75Z.cjs.map +0 -7
- package/dist/lib/node/types/index.cjs +0 -48
- package/dist/lib/node/types/index.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-BCHVZ4OM.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-serializer-TXRGGNP2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-BSLREHIX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-D4QMPPS7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HO7AIKQS.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-JBQKU4K5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-LA6AVVH6.mjs.map +0 -7
- package/dist/lib/node-esm/identity-created-35CTAQWI.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-JO6L2VXC.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-CVAPDLEZ.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-PTKYMZWO.mjs.map → chunk-FBCGT5YY.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-7Y4M7GXO.mjs.map → chunk-VLBRSGJ2.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-QIKHSNT2.mjs.map → react-root-N2J7TDRX.mjs.map} +0 -0
- /package/dist/lib/browser/{schema-defs-WREJNMIC.mjs.map → schema-defs-Z6FC4AHC.mjs.map} +0 -0
- /package/dist/lib/browser/{schema-tools-ILTVSSS3.mjs.map → schema-tools-BNP4JTD7.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-K54STC5A.mjs.map → settings-4IMP5RYT.mjs.map} +0 -0
- /package/dist/lib/browser/{spaces-ready-3PDRDHPC.mjs.map → spaces-ready-TOPG6IV4.mjs.map} +0 -0
- /package/dist/lib/browser/{state-HRZ4VRXU.mjs.map → state-QYZAB45H.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-MSWEFAPD.mjs.map → chunk-HWNG4MEU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-GH2FGJXH.mjs.map → chunk-SSLBYZEY.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-YFGL3B4J.mjs.map → react-root-KW3TGJGY.mjs.map} +0 -0
- /package/dist/lib/node-esm/{schema-defs-4MEJETVX.mjs.map → schema-defs-WHJM7UZE.mjs.map} +0 -0
- /package/dist/lib/node-esm/{schema-tools-SRLCRZ3B.mjs.map → schema-tools-KWW5PTML.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-TD76LTQS.mjs.map → settings-SAOBPND3.mjs.map} +0 -0
- /package/dist/lib/node-esm/{spaces-ready-FJMGPAVV.mjs.map → spaces-ready-HIUKNDZK.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-XQNDCN37.mjs.map → state-ZVEHQ4BJ.mjs.map} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SPACE_TYPE,
|
|
3
3
|
SpaceAction
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-SGTQ52SU.mjs";
|
|
5
5
|
import {
|
|
6
6
|
SPACE_PLUGIN
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FBCGT5YY.mjs";
|
|
8
8
|
|
|
9
|
-
//
|
|
9
|
+
// src/util.tsx
|
|
10
10
|
import { Rx } from "@effect-rx/rx-react";
|
|
11
11
|
import { pipe } from "effect";
|
|
12
12
|
import { chain, createIntent, LayoutAction } from "@dxos/app-framework";
|
|
@@ -18,7 +18,7 @@ import { ACTION_GROUP_TYPE, ACTION_TYPE, isGraphNode } from "@dxos/plugin-graph"
|
|
|
18
18
|
import { fullyQualifiedId, getSpace, SpaceState, isSpace } from "@dxos/react-client/echo";
|
|
19
19
|
import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
|
|
20
20
|
import { DataType } from "@dxos/schema";
|
|
21
|
-
var __dxlog_file = "/
|
|
21
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
|
|
22
22
|
var SPACES = `${SPACE_PLUGIN}-spaces`;
|
|
23
23
|
var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
|
|
24
24
|
var SHARED = "shared-spaces";
|
|
@@ -101,12 +101,34 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
|
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
};
|
|
104
|
+
var getSchemaGraphNodePartials = () => {
|
|
105
|
+
return {
|
|
106
|
+
role: "branch",
|
|
107
|
+
canDrop: () => false
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
var getViewGraphNodePartials = ({ view, resolve }) => {
|
|
111
|
+
const presentation = view.presentation.target;
|
|
112
|
+
const typename = presentation ? Obj.getTypename(presentation) : void 0;
|
|
113
|
+
const metadata = typename ? resolve(typename) : {};
|
|
114
|
+
return {
|
|
115
|
+
label: view.name || [
|
|
116
|
+
"object name placeholder",
|
|
117
|
+
{
|
|
118
|
+
ns: typename,
|
|
119
|
+
default: "New view"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
icon: metadata.icon,
|
|
123
|
+
canDrop: () => false
|
|
124
|
+
};
|
|
125
|
+
};
|
|
104
126
|
var checkPendingMigration = (space) => {
|
|
105
127
|
return space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === SpaceState.SPACE_READY && !!Migrations.versionProperty && space.properties[Migrations.versionProperty] !== Migrations.targetVersion;
|
|
106
128
|
};
|
|
107
129
|
var constructSpaceNode = ({ space, navigable = false, personal, namesCache, resolve }) => {
|
|
108
130
|
const hasPendingMigration = checkPendingMigration(space);
|
|
109
|
-
const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[
|
|
131
|
+
const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;
|
|
110
132
|
const partials = space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection) ? getCollectionGraphNodePartials({
|
|
111
133
|
collection,
|
|
112
134
|
space,
|
|
@@ -274,15 +296,79 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
274
296
|
}
|
|
275
297
|
return actions;
|
|
276
298
|
};
|
|
299
|
+
var createStaticSchemaNode = ({ schema, space }) => {
|
|
300
|
+
return {
|
|
301
|
+
id: `${space.id}/${Type.getTypename(schema)}`,
|
|
302
|
+
type: `${SPACE_PLUGIN}/static-schema`,
|
|
303
|
+
data: schema,
|
|
304
|
+
properties: {
|
|
305
|
+
label: [
|
|
306
|
+
"typename label",
|
|
307
|
+
{
|
|
308
|
+
ns: Type.getTypename(schema),
|
|
309
|
+
default: Type.getTypename(schema)
|
|
310
|
+
}
|
|
311
|
+
],
|
|
312
|
+
icon: "ph--database--regular",
|
|
313
|
+
role: "branch",
|
|
314
|
+
canDrop: () => false,
|
|
315
|
+
space
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
var createStaticSchemaActions = ({ schema, space, deletable }) => {
|
|
320
|
+
const getId = (id) => `${space.id}/${Type.getTypename(schema)}/${id}`;
|
|
321
|
+
const actions = [
|
|
322
|
+
{
|
|
323
|
+
id: getId(SpaceAction.RenameObject._tag),
|
|
324
|
+
type: ACTION_TYPE,
|
|
325
|
+
data: async (params) => {
|
|
326
|
+
throw new Error("Not implemented");
|
|
327
|
+
},
|
|
328
|
+
properties: {
|
|
329
|
+
label: [
|
|
330
|
+
"rename object label",
|
|
331
|
+
{
|
|
332
|
+
ns: Type.getTypename(DataType.StoredSchema)
|
|
333
|
+
}
|
|
334
|
+
],
|
|
335
|
+
icon: "ph--pencil-simple-line--regular",
|
|
336
|
+
disabled: true,
|
|
337
|
+
disposition: "list-item",
|
|
338
|
+
testId: "spacePlugin.renameObject"
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
id: getId(SpaceAction.RemoveObjects._tag),
|
|
343
|
+
type: ACTION_TYPE,
|
|
344
|
+
data: async () => {
|
|
345
|
+
const index = space.properties.staticRecords.findIndex((typename) => typename === Type.getTypename(schema));
|
|
346
|
+
if (index > -1) {
|
|
347
|
+
space.properties.staticRecords.splice(index, 1);
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
properties: {
|
|
351
|
+
label: [
|
|
352
|
+
"delete object label",
|
|
353
|
+
{
|
|
354
|
+
ns: Type.getTypename(DataType.StoredSchema)
|
|
355
|
+
}
|
|
356
|
+
],
|
|
357
|
+
icon: "ph--trash--regular",
|
|
358
|
+
disposition: "list-item",
|
|
359
|
+
disabled: !deletable,
|
|
360
|
+
testId: "spacePlugin.deleteObject"
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
];
|
|
364
|
+
return actions;
|
|
365
|
+
};
|
|
277
366
|
var createObjectNode = ({ space, object, droppable = true, navigable = false, resolve }) => {
|
|
278
367
|
const type = Obj.getTypename(object);
|
|
279
368
|
if (!type) {
|
|
280
369
|
return void 0;
|
|
281
370
|
}
|
|
282
371
|
const metadata = resolve(type);
|
|
283
|
-
if (Object.keys(metadata).length === 0) {
|
|
284
|
-
return void 0;
|
|
285
|
-
}
|
|
286
372
|
const partials = Obj.instanceOf(DataType.Collection, object) ? getCollectionGraphNodePartials({
|
|
287
373
|
collection: object,
|
|
288
374
|
space,
|
|
@@ -291,7 +377,18 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
|
|
|
291
377
|
collection: object,
|
|
292
378
|
space,
|
|
293
379
|
resolve
|
|
380
|
+
}) : Obj.instanceOf(DataType.StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(DataType.View, object) ? getViewGraphNodePartials({
|
|
381
|
+
view: object,
|
|
382
|
+
resolve
|
|
294
383
|
}) : metadata.graphProps;
|
|
384
|
+
const label = Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
|
|
385
|
+
metadata.label?.(object) || [
|
|
386
|
+
"object name placeholder",
|
|
387
|
+
{
|
|
388
|
+
ns: type,
|
|
389
|
+
default: "New item"
|
|
390
|
+
}
|
|
391
|
+
];
|
|
295
392
|
return {
|
|
296
393
|
id: fullyQualifiedId(object),
|
|
297
394
|
type,
|
|
@@ -302,14 +399,7 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
|
|
|
302
399
|
],
|
|
303
400
|
data: object,
|
|
304
401
|
properties: {
|
|
305
|
-
|
|
306
|
-
label: metadata.label?.(object) || object.name || [
|
|
307
|
-
"object name placeholder",
|
|
308
|
-
{
|
|
309
|
-
ns: type,
|
|
310
|
-
default: "New object"
|
|
311
|
-
}
|
|
312
|
-
],
|
|
402
|
+
label,
|
|
313
403
|
icon: metadata.icon ?? "ph--placeholder--regular",
|
|
314
404
|
testId: "spacePlugin.object",
|
|
315
405
|
persistenceClass: "echo",
|
|
@@ -321,17 +411,27 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
|
|
|
321
411
|
}
|
|
322
412
|
};
|
|
323
413
|
};
|
|
324
|
-
var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable = false }) => {
|
|
414
|
+
var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable = true, navigable = false }) => {
|
|
325
415
|
const space = getSpace(object);
|
|
326
416
|
invariant(space, "Space not found", {
|
|
327
417
|
F: __dxlog_file,
|
|
328
|
-
L:
|
|
418
|
+
L: 492,
|
|
329
419
|
S: void 0,
|
|
330
420
|
A: [
|
|
331
421
|
"space",
|
|
332
422
|
"'Space not found'"
|
|
333
423
|
]
|
|
334
424
|
});
|
|
425
|
+
const typename = Obj.getTypename(object);
|
|
426
|
+
invariant(typename, "Object has no typename", {
|
|
427
|
+
F: __dxlog_file,
|
|
428
|
+
L: 494,
|
|
429
|
+
S: void 0,
|
|
430
|
+
A: [
|
|
431
|
+
"typename",
|
|
432
|
+
"'Object has no typename'"
|
|
433
|
+
]
|
|
434
|
+
});
|
|
335
435
|
const getId = (id) => `${id}/${fullyQualifiedId(object)}`;
|
|
336
436
|
const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : void 0;
|
|
337
437
|
const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename) : void 0;
|
|
@@ -403,9 +503,9 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
|
|
|
403
503
|
},
|
|
404
504
|
properties: {
|
|
405
505
|
label: [
|
|
406
|
-
|
|
506
|
+
"rename object label",
|
|
407
507
|
{
|
|
408
|
-
ns:
|
|
508
|
+
ns: typename
|
|
409
509
|
}
|
|
410
510
|
],
|
|
411
511
|
icon: "ph--pencil-simple-line--regular",
|
|
@@ -431,19 +531,20 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
|
|
|
431
531
|
},
|
|
432
532
|
properties: {
|
|
433
533
|
label: [
|
|
434
|
-
|
|
534
|
+
"delete object label",
|
|
435
535
|
{
|
|
436
|
-
ns:
|
|
536
|
+
ns: typename
|
|
437
537
|
}
|
|
438
538
|
],
|
|
439
539
|
icon: "ph--trash--regular",
|
|
440
540
|
disposition: "list-item",
|
|
541
|
+
disabled: !deletable,
|
|
441
542
|
// TODO(wittjosiah): This is a browser shortcut.
|
|
442
543
|
// keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
|
|
443
544
|
testId: "spacePlugin.deleteObject"
|
|
444
545
|
}
|
|
445
546
|
},
|
|
446
|
-
...navigable || !Obj.instanceOf(DataType.Collection, object) && !Obj.instanceOf(DataType.QueryCollection, object) ? [
|
|
547
|
+
...navigable || !Obj.instanceOf(DataType.Collection, object) && !Obj.instanceOf(DataType.QueryCollection, object) && !Obj.instanceOf(DataType.StoredSchema, object) ? [
|
|
447
548
|
{
|
|
448
549
|
id: getId("copy-link"),
|
|
449
550
|
type: ACTION_TYPE,
|
|
@@ -513,7 +614,7 @@ var cloneObject = async (object, resolve, newSpace) => {
|
|
|
513
614
|
const serializer = metadata.serializer;
|
|
514
615
|
invariant(serializer, `No serializer for type: ${typename}`, {
|
|
515
616
|
F: __dxlog_file,
|
|
516
|
-
L:
|
|
617
|
+
L: 665,
|
|
517
618
|
S: void 0,
|
|
518
619
|
A: [
|
|
519
620
|
"serializer",
|
|
@@ -538,9 +639,11 @@ export {
|
|
|
538
639
|
getSpaceDisplayName,
|
|
539
640
|
constructSpaceNode,
|
|
540
641
|
constructSpaceActions,
|
|
642
|
+
createStaticSchemaNode,
|
|
643
|
+
createStaticSchemaActions,
|
|
541
644
|
createObjectNode,
|
|
542
645
|
constructObjectActions,
|
|
543
646
|
getNestedObjects,
|
|
544
647
|
cloneObject
|
|
545
648
|
};
|
|
546
|
-
//# sourceMappingURL=chunk-
|
|
649
|
+
//# sourceMappingURL=chunk-XUYKJUU7.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { pipe } from 'effect';\n\nimport { chain, createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';\nimport { Obj, Ref, Type } from '@dxos/echo';\nimport { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { Migrations } from '@dxos/migrations';\nimport {\n ACTION_GROUP_TYPE,\n ACTION_TYPE,\n type ReadableGraph,\n type ActionData,\n type InvokeParams,\n type Node,\n type NodeArg,\n isGraphNode,\n} from '@dxos/plugin-graph';\nimport { fullyQualifiedId, getSpace, type QueryResult, SpaceState, type Space, isSpace } from '@dxos/react-client/echo';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\nimport { type TreeData } from '@dxos/react-ui-list';\nimport { DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from './meta';\nimport { SpaceAction, SPACE_TYPE, type ObjectForm } from './types';\n\nexport const SPACES = `${SPACE_PLUGIN}-spaces`;\nexport const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';\n// TODO(wittjosiah): Remove.\nexport const SHARED = 'shared-spaces';\n\n/**\n * Convert a query result to an Rx value of the objects.\n */\nexport const rxFromQuery = <T extends AnyEchoObject>(query: QueryResult<T>): Rx.Rx<T[]> => {\n return Rx.make((get) => {\n const unsubscribe = query.subscribe((result) => {\n get.setSelf(result.objects);\n });\n\n get.addFinalizer(() => unsubscribe());\n return query.objects;\n });\n};\n\n// TODO(wittjosiah): Factor out? Expose via capability?\nexport const getSpaceDisplayName = (\n space: Space,\n { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},\n): string | [string, { ns: string }] => {\n return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0\n ? space.properties.name\n : namesCache[space.id]\n ? namesCache[space.id]\n : personal\n ? ['personal space label', { ns: SPACE_PLUGIN }]\n : ['unnamed space label', { ns: SPACE_PLUGIN }];\n};\n\nconst getCollectionGraphNodePartials = ({\n collection,\n space,\n resolve,\n}: {\n collection: DataType.Collection;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n onRearrangeChildren: (nextOrder: unknown[]) => {\n // Change on disk.\n collection.objects = nextOrder.filter(Obj.isObject).map(Ref.make);\n },\n onTransferStart: (child: Node<Obj.Any>, index?: number) => {\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // if (space && childSpace && !childSpace.key.equals(space.key)) {\n // // Create clone of child and add to destination space.\n // const newObject = clone(child.data, {\n // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.\n // additional: [\n // child.data.content,\n // ...(child.data.objects ?? []),\n // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),\n // ],\n // });\n // space.db.add(newObject);\n // collection.objects.push(newObject);\n // } else {\n\n // Add child to destination collection.\n // TODO(dmaretskyi): Compare by id.\n if (!collection.objects.find((object) => object.target === child.data)) {\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, Ref.make(child.data));\n } else {\n collection.objects.push(Ref.make(child.data));\n }\n }\n\n // }\n },\n onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {\n // Remove child from origin collection.\n const index = collection.objects.findIndex((object) => object.target === child.data);\n if (index > -1) {\n collection.objects.splice(index, 1);\n }\n\n // TODO(wittjosiah): Support transfer between spaces.\n // const childSpace = getSpace(child.data);\n // const destinationSpace =\n // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);\n // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {\n // // Mark child as deleted in origin space.\n // childSpace.db.remove(child.data);\n // }\n },\n onCopy: async (child: Node<Obj.Any>, index?: number) => {\n // Create clone of child and add to destination space.\n const newObject = await cloneObject(child.data, resolve, space);\n space.db.add(newObject);\n if (typeof index !== 'undefined') {\n collection.objects.splice(index, 0, Ref.make(newObject));\n } else {\n collection.objects.push(Ref.make(newObject));\n }\n },\n };\n};\n\nconst getQueryCollectionNodePartials = ({\n collection,\n space,\n resolve,\n}: {\n collection: DataType.QueryCollection;\n space: Space;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n return {\n icon: collection.query.typename && resolve(collection.query.typename)?.icon,\n acceptPersistenceClass: new Set(['echo']),\n acceptPersistenceKey: new Set([space.id]),\n role: 'branch',\n canDrop: (source: TreeData) => {\n return (\n isGraphNode(source.item) &&\n Obj.isObject(source.item.data) &&\n Obj.getTypename(source.item.data) === collection.query.typename\n );\n },\n onTransferStart: (child: Node<Obj.Any>, index?: number) => {\n // No-op. Objects are moved into query collections by being removed from their original collection.\n },\n onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {\n // No-op. Objects are moved out of query collections by being added to another collection.\n },\n };\n};\n\nconst getSchemaGraphNodePartials = () => {\n return {\n role: 'branch',\n canDrop: () => false,\n };\n};\n\nconst getViewGraphNodePartials = ({\n view,\n resolve,\n}: {\n view: DataType.View;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const presentation = view.presentation.target;\n const typename = presentation ? Obj.getTypename(presentation) : undefined;\n const metadata = typename ? resolve(typename) : {};\n\n return {\n label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],\n icon: metadata.icon,\n canDrop: () => false,\n };\n};\n\nconst checkPendingMigration = (space: Space) => {\n return (\n space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||\n (space.state.get() === SpaceState.SPACE_READY &&\n !!Migrations.versionProperty &&\n space.properties[Migrations.versionProperty] !== Migrations.targetVersion)\n );\n};\n\nexport const constructSpaceNode = ({\n space,\n navigable = false,\n personal,\n namesCache,\n resolve,\n}: {\n space: Space;\n navigable?: boolean;\n personal?: boolean;\n namesCache?: Record<string, string>;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const hasPendingMigration = checkPendingMigration(space);\n const collection =\n space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;\n const partials =\n space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection)\n ? getCollectionGraphNodePartials({ collection, space, resolve })\n : {};\n\n return {\n id: space.id,\n type: SPACE_TYPE,\n cacheable: ['label', 'icon', 'role'],\n data: space,\n properties: {\n ...partials,\n label: getSpaceDisplayName(space, { personal, namesCache }),\n description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,\n hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,\n icon:\n space.state.get() === SpaceState.SPACE_READY && space.properties.icon\n ? `ph--${space.properties.icon}--regular`\n : undefined,\n disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,\n testId: 'spacePlugin.space',\n canDrop: (source: TreeData) => {\n // TODO(wittjosiah): Find a way to only allow space as source for rearranging.\n return Obj.isObject(source.item.data) || isSpace(source.item.data);\n },\n },\n nodes: [\n {\n id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/settings`,\n data: null,\n properties: {\n label: ['settings panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n disposition: 'alternate-tree',\n },\n nodes: [\n {\n id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/properties`,\n data: `${SPACE_PLUGIN}/properties`,\n properties: {\n label: ['space settings properties label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n position: 'hoist',\n },\n },\n {\n id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/members`,\n data: `${SPACE_PLUGIN}/members`,\n properties: {\n label: ['members panel label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n position: 'hoist',\n },\n },\n {\n id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,\n type: `${SPACE_PLUGIN}/schema`,\n data: `${SPACE_PLUGIN}/schema`,\n properties: {\n label: ['space settings schema label', { ns: SPACE_PLUGIN }],\n icon: 'ph--shapes--regular',\n },\n },\n ],\n },\n ],\n };\n};\n\nexport const constructSpaceActions = ({\n space,\n dispatch,\n personal,\n migrating,\n}: {\n space: Space;\n dispatch: PromiseIntentDispatcher;\n personal?: boolean;\n migrating?: boolean;\n}) => {\n const state = space.state.get();\n const hasPendingMigration = checkPendingMigration(space);\n const getId = (id: string) => `${id}/${space.id}`;\n const actions: NodeArg<ActionData>[] = [];\n\n if (hasPendingMigration) {\n actions.push({\n id: getId(SpaceAction.Migrate._tag),\n type: ACTION_GROUP_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.Migrate, { space }));\n },\n properties: {\n label: ['migrate space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--database--regular',\n disposition: 'list-item-primary',\n disabled: migrating || Migrations.running(space),\n },\n });\n }\n\n if (state === SpaceState.SPACE_READY && !hasPendingMigration) {\n actions.push(\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));\n },\n properties: {\n label: ['create object in space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'item',\n testId: 'spacePlugin.createObject',\n },\n },\n {\n id: getId(SpaceAction.Rename._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));\n },\n properties: {\n label: ['rename space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--pencil-simple-line--regular',\n keyBinding: {\n macos: 'shift+F6',\n windows: 'shift+F6',\n },\n },\n },\n );\n }\n\n return actions;\n};\n\nexport const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {\n return {\n id: `${space.id}/${Type.getTypename(schema)}`,\n type: `${SPACE_PLUGIN}/static-schema`,\n data: schema,\n properties: {\n label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],\n icon: 'ph--database--regular',\n role: 'branch',\n canDrop: () => false,\n space,\n },\n };\n};\n\nexport const createStaticSchemaActions = ({\n schema,\n space,\n deletable,\n}: {\n schema: Type.Obj.Any;\n space: Space;\n deletable: boolean;\n}) => {\n const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;\n\n const actions: NodeArg<ActionData>[] = [\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n throw new Error('Not implemented');\n },\n properties: {\n label: ['rename object label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--pencil-simple-line--regular',\n disabled: true,\n disposition: 'list-item',\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const index = space.properties.staticRecords.findIndex(\n (typename: string) => typename === Type.getTypename(schema),\n );\n if (index > -1) {\n space.properties.staticRecords.splice(index, 1);\n }\n },\n properties: {\n label: ['delete object label', { ns: Type.getTypename(DataType.StoredSchema) }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n testId: 'spacePlugin.deleteObject',\n },\n },\n ];\n\n return actions;\n};\n\nexport const createObjectNode = ({\n space,\n object,\n droppable = true,\n navigable = false,\n resolve,\n}: {\n space: Space;\n object: Obj.Any;\n droppable?: boolean;\n navigable?: boolean;\n resolve: (typename: string) => Record<string, any>;\n}) => {\n const type = Obj.getTypename(object);\n if (!type) {\n return undefined;\n }\n\n const metadata = resolve(type);\n const partials = Obj.instanceOf(DataType.Collection, object)\n ? getCollectionGraphNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(DataType.QueryCollection, object)\n ? getQueryCollectionNodePartials({ collection: object, space, resolve })\n : Obj.instanceOf(DataType.StoredSchema, object)\n ? getSchemaGraphNodePartials()\n : Obj.instanceOf(DataType.View, object)\n ? getViewGraphNodePartials({ view: object, resolve })\n : metadata.graphProps;\n\n const label = Obj.getLabel(object) ||\n // TODO(wittjosiah): Remove metadata labels.\n metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];\n\n return {\n id: fullyQualifiedId(object),\n type,\n cacheable: ['label', 'icon', 'role'],\n data: object,\n properties: {\n label,\n icon: metadata.icon ?? 'ph--placeholder--regular',\n testId: 'spacePlugin.object',\n persistenceClass: 'echo',\n persistenceKey: space?.id,\n canDrop: (source: TreeData) => {\n return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);\n },\n ...partials,\n },\n };\n};\n\nexport const constructObjectActions = ({\n object,\n graph,\n dispatch,\n objectForms,\n deletable = true,\n navigable = false,\n}: {\n object: Obj.Any;\n graph: ReadableGraph;\n dispatch: PromiseIntentDispatcher;\n objectForms: ObjectForm<any>[];\n deletable?: boolean;\n navigable?: boolean;\n}) => {\n const space = getSpace(object);\n invariant(space, 'Space not found');\n const typename = Obj.getTypename(object);\n invariant(typename, 'Object has no typename');\n\n const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;\n\n const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : undefined;\n const matchingObjectForm = queryCollection\n ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename)\n : undefined;\n\n const actions: NodeArg<ActionData>[] = [\n ...(Obj.instanceOf(DataType.Collection, object)\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));\n },\n properties: {\n label: ['create object in collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n ...(matchingObjectForm\n ? [\n {\n id: getId(SpaceAction.OpenCreateObject._tag),\n type: ACTION_TYPE,\n data: async () => {\n if (matchingObjectForm.formSchema) {\n await dispatch(\n createIntent(SpaceAction.OpenCreateObject, {\n target: space,\n typename: queryCollection?.query.typename,\n }),\n );\n } else {\n await dispatch(\n pipe(\n matchingObjectForm.getIntent({}, { space }),\n chain(SpaceAction.AddObject, { target: space, hidden: true }),\n chain(LayoutAction.Open, { part: 'main' }),\n ),\n );\n }\n },\n properties: {\n label: ['create object in smart collection label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n disposition: 'list-item-primary',\n testId: 'spacePlugin.createObject',\n },\n },\n ]\n : []),\n {\n id: getId(SpaceAction.RenameObject._tag),\n type: ACTION_TYPE,\n data: async (params?: InvokeParams) => {\n await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));\n },\n properties: {\n label: ['rename object label', { ns: typename }],\n icon: 'ph--pencil-simple-line--regular',\n disposition: 'list-item',\n // TODO(wittjosiah): Not working.\n // keyBinding: {\n // macos: 'shift+F6',\n // },\n testId: 'spacePlugin.renameObject',\n },\n },\n {\n id: getId(SpaceAction.RemoveObjects._tag),\n type: ACTION_TYPE,\n data: async () => {\n const collection = graph\n .getConnections(fullyQualifiedId(object), 'inbound')\n .find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;\n await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));\n },\n properties: {\n label: ['delete object label', { ns: typename }],\n icon: 'ph--trash--regular',\n disposition: 'list-item',\n disabled: !deletable,\n // TODO(wittjosiah): This is a browser shortcut.\n // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',\n testId: 'spacePlugin.deleteObject',\n },\n },\n ...(navigable ||\n (!Obj.instanceOf(DataType.Collection, object) &&\n !Obj.instanceOf(DataType.QueryCollection, object) &&\n !Obj.instanceOf(DataType.StoredSchema, object))\n ? [\n {\n id: getId('copy-link'),\n type: ACTION_TYPE,\n data: async () => {\n const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;\n await navigator.clipboard.writeText(url);\n },\n properties: {\n label: ['copy link label', { ns: SPACE_PLUGIN }],\n icon: 'ph--link--regular',\n disposition: 'list-item',\n testId: 'spacePlugin.copyLink',\n },\n },\n ]\n : []),\n // TODO(wittjosiah): Factor out and apply to all nodes.\n {\n id: getId(LayoutAction.Expose._tag),\n type: ACTION_TYPE,\n data: async () => {\n await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));\n },\n properties: {\n label: ['expose object label', { ns: SPACE_PLUGIN }],\n icon: 'ph--eye--regular',\n disposition: 'heading-list-item',\n testId: 'spacePlugin.exposeObject',\n },\n },\n ];\n\n return actions;\n};\n\n/**\n * @deprecated This is a temporary solution.\n */\nexport const getNestedObjects = async (\n object: Obj.Any,\n resolve: (typename: string) => Record<string, any>,\n): Promise<Obj.Any[]> => {\n const type = Obj.getTypename(object);\n if (!type) {\n return [];\n }\n\n const metadata = resolve(type);\n const loadReferences = metadata?.loadReferences;\n if (typeof loadReferences !== 'function') {\n return [];\n }\n\n const objects: Obj.Any[] = await loadReferences(object);\n const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));\n return [...objects, ...nested.flat()];\n};\n\n/**\n * @deprecated Workaround for ECHO not supporting clone.\n */\n// TODO(burdon): Remove.\nexport const cloneObject = async (\n object: Type.Expando,\n resolve: (typename: string) => Record<string, any>,\n newSpace: Space,\n): Promise<Type.Expando> => {\n const schema = Obj.getSchema(object);\n const typename = schema ? (Type.getTypename(schema) ?? EXPANDO_TYPENAME) : EXPANDO_TYPENAME;\n const metadata = resolve(typename);\n const serializer = metadata.serializer;\n invariant(serializer, `No serializer for type: ${typename}`);\n const content = await serializer.serialize({ object });\n return serializer.deserialize({ content, space: newSpace, newId: true });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Rx", "pipe", "chain", "createIntent", "LayoutAction", "Obj", "Ref", "Type", "EXPANDO_TYPENAME", "invariant", "Migrations", "ACTION_GROUP_TYPE", "ACTION_TYPE", "isGraphNode", "fullyQualifiedId", "getSpace", "SpaceState", "isSpace", "ATTENDABLE_PATH_SEPARATOR", "DataType", "SPACES", "SPACE_PLUGIN", "COMPOSER_SPACE_LOCK", "SHARED", "rxFromQuery", "query", "Rx", "make", "get", "unsubscribe", "subscribe", "result", "setSelf", "objects", "addFinalizer", "getSpaceDisplayName", "space", "personal", "namesCache", "state", "SpaceState", "SPACE_READY", "properties", "name", "length", "id", "ns", "getCollectionGraphNodePartials", "collection", "resolve", "acceptPersistenceClass", "Set", "acceptPersistenceKey", "role", "onRearrangeChildren", "nextOrder", "filter", "Obj", "isObject", "map", "Ref", "onTransferStart", "child", "index", "find", "object", "target", "data", "splice", "push", "onTransferEnd", "destination", "findIndex", "onCopy", "newObject", "cloneObject", "db", "add", "getQueryCollectionNodePartials", "icon", "typename", "canDrop", "source", "isGraphNode", "item", "getTypename", "getSchemaGraphNodePartials", "getViewGraphNodePartials", "view", "presentation", "undefined", "metadata", "label", "default", "checkPendingMigration", "SPACE_REQUIRES_MIGRATION", "Migrations", "versionProperty", "targetVersion", "constructSpaceNode", "navigable", "hasPendingMigration", "DataType", "Collection", "partials", "instanceOf", "type", "SPACE_TYPE", "cacheable", "description", "hue", "disabled", "testId", "isSpace", "nodes", "ATTENDABLE_PATH_SEPARATOR", "disposition", "position", "constructSpaceActions", "dispatch", "migrating", "getId", "actions", "SpaceAction", "Migrate", "_tag", "ACTION_GROUP_TYPE", "createIntent", "running", "OpenCreateObject", "ACTION_TYPE", "Rename", "params", "caller", "keyBinding", "macos", "windows", "createStaticSchemaNode", "schema", "Type", "createStaticSchemaActions", "deletable", "RenameObject", "Error", "StoredSchema", "RemoveObjects", "staticRecords", "createObjectNode", "droppable", "QueryCollection", "View", "graphProps", "getLabel", "fullyQualifiedId", "persistenceClass", "persistenceKey", "constructObjectActions", "graph", "objectForms", "getSpace", "invariant", "queryCollection", "matchingObjectForm", "form", "objectSchema", "formSchema", "pipe", "getIntent", "chain", "AddObject", "hidden", "LayoutAction", "Open", "part", "getConnections", "url", "window", "location", "origin", "navigator", "clipboard", "writeText", "Expose", "subject", "getNestedObjects", "loadReferences", "nested", "Promise", "all", "flat", "newSpace", "getSchema", "EXPANDO_TYPENAME", "serializer", "content", "serialize", "deserialize", "newId"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
1
|
+
// src/capabilities/identity-created.ts
|
|
2
2
|
import { contributes, Capabilities } from "@dxos/app-framework";
|
|
3
|
-
import { Obj, Ref
|
|
3
|
+
import { Obj, Ref } from "@dxos/echo";
|
|
4
4
|
import { Migrations } from "@dxos/migrations";
|
|
5
5
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
6
6
|
import { DataType } from "@dxos/schema";
|
|
@@ -9,7 +9,7 @@ var identity_created_default = async (context) => {
|
|
|
9
9
|
await client.spaces.waitUntilReady();
|
|
10
10
|
const defaultSpace = client.spaces.default;
|
|
11
11
|
await defaultSpace.waitUntilReady();
|
|
12
|
-
defaultSpace.properties[
|
|
12
|
+
defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, {
|
|
13
13
|
objects: []
|
|
14
14
|
}));
|
|
15
15
|
if (Migrations.versionProperty) {
|
|
@@ -20,4 +20,4 @@ var identity_created_default = async (context) => {
|
|
|
20
20
|
export {
|
|
21
21
|
identity_created_default as default
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=identity-created-
|
|
23
|
+
//# sourceMappingURL=identity-created-23XJJV2N.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/identity-created.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginContext, Capabilities } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport { Migrations } from '@dxos/migrations';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DataType } from '@dxos/schema';\n\nexport default async (context: PluginContext) => {\n const client = context.getCapability(ClientCapabilities.Client);\n await client.spaces.waitUntilReady();\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n // Create root collection structure.\n defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, { objects: [] }));\n if (Migrations.versionProperty) {\n defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;\n }\n\n return contributes(Capabilities.Null, null);\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,aAAiCC,oBAAoB;AAC9D,SAASC,KAAKC,WAAW;AACzB,SAASC,kBAAkB;AAC3B,SAASC,0BAA0B;AACnC,SAASC,gBAAgB;AAEzB,IAAA,2BAAe,OAAOC,YAAAA;AACpB,QAAMC,SAASD,QAAQE,cAAcC,mBAAmBC,MAAM;AAC9D,QAAMH,OAAOI,OAAOC,eAAc;AAElC,QAAMC,eAAeN,OAAOI,OAAOG;AACnC,QAAMD,aAAaD,eAAc;AAGjCC,eAAaE,WAAWC,SAASC,WAAWC,QAAQ,IAAIC,IAAIC,KAAKC,IAAID,KAAKJ,SAASC,YAAY;IAAEK,SAAS,CAAA;EAAG,CAAA,CAAA;AAC7G,MAAIC,WAAWC,iBAAiB;AAC9BX,iBAAaE,WAAWQ,WAAWC,eAAe,IAAID,WAAWE;EACnE;AAEA,SAAOC,YAAYC,aAAaC,MAAM,IAAA;AACxC;",
|
|
6
|
+
"names": ["contributes", "Capabilities", "Obj", "Ref", "Migrations", "ClientCapabilities", "DataType", "context", "client", "getCapability", "ClientCapabilities", "Client", "spaces", "waitUntilReady", "defaultSpace", "default", "properties", "DataType", "Collection", "typename", "Ref", "make", "Obj", "objects", "Migrations", "versionProperty", "targetVersion", "contributes", "Capabilities", "Null"]
|
|
7
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
translations
|
|
3
|
+
} from "./chunk-QACNNDOT.mjs";
|
|
4
4
|
import {
|
|
5
5
|
SpaceEvents
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JS3MMC42.mjs";
|
|
7
7
|
import {
|
|
8
8
|
AppGraphBuilder,
|
|
9
9
|
AppGraphSerializer,
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
JoinDialog,
|
|
23
23
|
MembersContainer,
|
|
24
24
|
MenuFooter,
|
|
25
|
+
ObjectDetailsPanel,
|
|
25
26
|
ObjectSettingsContainer,
|
|
26
27
|
POPOVER_RENAME_OBJECT,
|
|
27
28
|
POPOVER_RENAME_SPACE,
|
|
@@ -43,17 +44,18 @@ import {
|
|
|
43
44
|
SpacesReady,
|
|
44
45
|
SyncStatus,
|
|
45
46
|
SyncStatusIndicator,
|
|
47
|
+
ViewEditor,
|
|
46
48
|
useQuerySpaceSchemas
|
|
47
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-V7MJSSBQ.mjs";
|
|
48
50
|
import {
|
|
49
51
|
getActiveSpace,
|
|
50
52
|
useActiveSpace,
|
|
51
53
|
useInputSurfaceLookup,
|
|
52
54
|
usePath
|
|
53
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-VLBRSGJ2.mjs";
|
|
54
56
|
import {
|
|
55
57
|
SpaceCapabilities
|
|
56
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-CEFHNVU7.mjs";
|
|
57
59
|
import {
|
|
58
60
|
COMPOSER_SPACE_LOCK,
|
|
59
61
|
SHARED,
|
|
@@ -63,27 +65,30 @@ import {
|
|
|
63
65
|
constructSpaceActions,
|
|
64
66
|
constructSpaceNode,
|
|
65
67
|
createObjectNode,
|
|
68
|
+
createStaticSchemaActions,
|
|
69
|
+
createStaticSchemaNode,
|
|
66
70
|
getNestedObjects,
|
|
67
71
|
getSpaceDisplayName,
|
|
68
72
|
rxFromQuery
|
|
69
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-XUYKJUU7.mjs";
|
|
70
74
|
import {
|
|
71
75
|
CollectionAction,
|
|
76
|
+
SpaceAction,
|
|
72
77
|
defineObjectForm
|
|
73
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-SGTQ52SU.mjs";
|
|
74
79
|
import {
|
|
75
80
|
SPACE_PLUGIN,
|
|
76
81
|
meta
|
|
77
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-FBCGT5YY.mjs";
|
|
78
83
|
|
|
79
|
-
//
|
|
84
|
+
// src/SpacePlugin.ts
|
|
80
85
|
import { Schema } from "effect";
|
|
81
86
|
import { Capabilities, Events, allOf, contributes, createIntent, defineModule, definePlugin, oneOf } from "@dxos/app-framework";
|
|
82
87
|
import { Ref, Type } from "@dxos/echo";
|
|
83
88
|
import { AttentionEvents } from "@dxos/plugin-attention";
|
|
84
|
-
import { ClientEvents } from "@dxos/plugin-client";
|
|
85
|
-
import { DataType } from "@dxos/schema";
|
|
86
|
-
import {
|
|
89
|
+
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
90
|
+
import { createDefaultSchema, DataType, ViewTypeV1, ViewTypeV1ToV2, ViewTypeV2 } from "@dxos/schema";
|
|
91
|
+
import { translations as shellTranslations } from "@dxos/shell/react";
|
|
87
92
|
var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "spaceInvitationCode", observability = false } = {}) => {
|
|
88
93
|
const createInvitationUrl = (invitationCode) => {
|
|
89
94
|
const baseUrl = new URL(invitationUrl);
|
|
@@ -111,8 +116,8 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
|
|
|
111
116
|
id: `${meta.id}/module/translations`,
|
|
112
117
|
activatesOn: Events.SetupTranslations,
|
|
113
118
|
activate: () => contributes(Capabilities.Translations, [
|
|
114
|
-
...
|
|
115
|
-
|
|
119
|
+
...translations,
|
|
120
|
+
...shellTranslations
|
|
116
121
|
])
|
|
117
122
|
}),
|
|
118
123
|
defineModule({
|
|
@@ -140,6 +145,42 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
|
|
|
140
145
|
],
|
|
141
146
|
icon: "ph--funnel-simple--regular"
|
|
142
147
|
}
|
|
148
|
+
}),
|
|
149
|
+
contributes(Capabilities.Metadata, {
|
|
150
|
+
id: Type.getTypename(DataType.StoredSchema),
|
|
151
|
+
metadata: {
|
|
152
|
+
icon: "ph--database--regular"
|
|
153
|
+
}
|
|
154
|
+
}),
|
|
155
|
+
contributes(Capabilities.Metadata, {
|
|
156
|
+
id: Type.getTypename(DataType.Event),
|
|
157
|
+
metadata: {
|
|
158
|
+
icon: "ph--calendar-dot--regular"
|
|
159
|
+
}
|
|
160
|
+
}),
|
|
161
|
+
contributes(Capabilities.Metadata, {
|
|
162
|
+
id: Type.getTypename(DataType.Organization),
|
|
163
|
+
metadata: {
|
|
164
|
+
icon: "ph--building-office--regular"
|
|
165
|
+
}
|
|
166
|
+
}),
|
|
167
|
+
contributes(Capabilities.Metadata, {
|
|
168
|
+
id: Type.getTypename(DataType.Person),
|
|
169
|
+
metadata: {
|
|
170
|
+
icon: "ph--user--regular"
|
|
171
|
+
}
|
|
172
|
+
}),
|
|
173
|
+
contributes(Capabilities.Metadata, {
|
|
174
|
+
id: Type.getTypename(DataType.Project),
|
|
175
|
+
metadata: {
|
|
176
|
+
icon: "ph--check-square-offset--regular"
|
|
177
|
+
}
|
|
178
|
+
}),
|
|
179
|
+
contributes(Capabilities.Metadata, {
|
|
180
|
+
id: Type.getTypename(DataType.Task),
|
|
181
|
+
metadata: {
|
|
182
|
+
icon: "ph--check-circle--regular"
|
|
183
|
+
}
|
|
143
184
|
})
|
|
144
185
|
]
|
|
145
186
|
}),
|
|
@@ -158,17 +199,61 @@ var SpacePlugin = ({ invitationUrl = window.location.origin, invitationParam = "
|
|
|
158
199
|
objectSchema: DataType.QueryCollection,
|
|
159
200
|
formSchema: CollectionAction.QueryCollectionForm,
|
|
160
201
|
getIntent: (props) => createIntent(CollectionAction.CreateQueryCollection, props)
|
|
202
|
+
})),
|
|
203
|
+
contributes(SpaceCapabilities.ObjectForm, defineObjectForm({
|
|
204
|
+
objectSchema: DataType.StoredSchema,
|
|
205
|
+
formSchema: SpaceAction.StoredSchemaForm,
|
|
206
|
+
getIntent: (props, options) => props.typename ? createIntent(SpaceAction.UseStaticSchema, {
|
|
207
|
+
space: options.space,
|
|
208
|
+
typename: props.typename
|
|
209
|
+
}) : createIntent(SpaceAction.AddSchema, {
|
|
210
|
+
space: options.space,
|
|
211
|
+
name: props.name,
|
|
212
|
+
schema: createDefaultSchema()
|
|
213
|
+
})
|
|
161
214
|
}))
|
|
162
215
|
]
|
|
163
216
|
}),
|
|
164
217
|
defineModule({
|
|
165
|
-
id: `${meta.id}/module/schema`,
|
|
218
|
+
id: `${meta.id}/module/schema-defs`,
|
|
166
219
|
activatesOn: ClientEvents.ClientReady,
|
|
167
220
|
activatesBefore: [
|
|
168
221
|
ClientEvents.SetupSchema
|
|
169
222
|
],
|
|
170
223
|
activate: SchemaDefs
|
|
171
224
|
}),
|
|
225
|
+
defineModule({
|
|
226
|
+
id: `${meta.id}/module/schema`,
|
|
227
|
+
activatesOn: ClientEvents.SetupSchema,
|
|
228
|
+
activate: () => contributes(ClientCapabilities.Schema, [
|
|
229
|
+
DataType.View,
|
|
230
|
+
ViewTypeV1,
|
|
231
|
+
ViewTypeV2,
|
|
232
|
+
DataType.Event,
|
|
233
|
+
DataType.Organization,
|
|
234
|
+
DataType.Person,
|
|
235
|
+
DataType.Project,
|
|
236
|
+
DataType.Task
|
|
237
|
+
])
|
|
238
|
+
}),
|
|
239
|
+
defineModule({
|
|
240
|
+
id: `${meta.id}/module/migration`,
|
|
241
|
+
activatesOn: ClientEvents.SetupMigration,
|
|
242
|
+
activate: () => contributes(ClientCapabilities.Migration, [
|
|
243
|
+
ViewTypeV1ToV2
|
|
244
|
+
])
|
|
245
|
+
}),
|
|
246
|
+
defineModule({
|
|
247
|
+
id: `${meta.id}/module/whitelist-schema`,
|
|
248
|
+
activatesOn: ClientEvents.SetupSchema,
|
|
249
|
+
activate: () => contributes(ClientCapabilities.SchemaWhiteList, [
|
|
250
|
+
DataType.Event,
|
|
251
|
+
DataType.Organization,
|
|
252
|
+
DataType.Person,
|
|
253
|
+
DataType.Project,
|
|
254
|
+
DataType.Task
|
|
255
|
+
])
|
|
256
|
+
}),
|
|
172
257
|
defineModule({
|
|
173
258
|
id: `${meta.id}/module/react-root`,
|
|
174
259
|
activatesOn: Events.Startup,
|
|
@@ -240,6 +325,7 @@ export {
|
|
|
240
325
|
JoinDialog,
|
|
241
326
|
MembersContainer,
|
|
242
327
|
MenuFooter,
|
|
328
|
+
ObjectDetailsPanel,
|
|
243
329
|
ObjectSettingsContainer,
|
|
244
330
|
POPOVER_RENAME_OBJECT,
|
|
245
331
|
POPOVER_RENAME_SPACE,
|
|
@@ -260,11 +346,14 @@ export {
|
|
|
260
346
|
SpaceSettingsContainer,
|
|
261
347
|
SyncStatus,
|
|
262
348
|
SyncStatusIndicator,
|
|
349
|
+
ViewEditor,
|
|
263
350
|
cloneObject,
|
|
264
351
|
constructObjectActions,
|
|
265
352
|
constructSpaceActions,
|
|
266
353
|
constructSpaceNode,
|
|
267
354
|
createObjectNode,
|
|
355
|
+
createStaticSchemaActions,
|
|
356
|
+
createStaticSchemaNode,
|
|
268
357
|
getActiveSpace,
|
|
269
358
|
getNestedObjects,
|
|
270
359
|
getSpaceDisplayName,
|