@dxos/plugin-space 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549
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/{ObjectDetailsPanel-2BRUBHP6.mjs → ObjectDetailsPanel-ACGHWPDX.mjs} +2 -2
- package/dist/lib/browser/{ObjectDetailsPanel-2BRUBHP6.mjs.map → ObjectDetailsPanel-ACGHWPDX.mjs.map} +3 -3
- package/dist/lib/browser/{ObjectSettings-5LLWCVEK.mjs → ObjectSettings-U3IH7BMV.mjs} +2 -2
- package/dist/lib/browser/{ObjectSettings-5LLWCVEK.mjs.map → ObjectSettings-U3IH7BMV.mjs.map} +3 -3
- package/dist/lib/browser/{RecordArticle-SXDRWTTU.mjs → RecordArticle-2PFEBPXY.mjs} +1 -1
- package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-VQAB3GCQ.mjs → app-graph-builder-HABMCWAI.mjs} +140 -151
- package/dist/lib/browser/app-graph-builder-HABMCWAI.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-serializer-KSLKMEPP.mjs → app-graph-serializer-G3VFEGTN.mjs} +4 -4
- package/dist/lib/browser/chunk-6A3NWBB6.mjs +392 -0
- package/dist/lib/browser/chunk-6A3NWBB6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-K5J7ZB5P.mjs → chunk-C6DAPIFF.mjs} +3 -3
- package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ERQMHU7L.mjs → chunk-GJOZILGC.mjs} +163 -105
- package/dist/lib/browser/chunk-GJOZILGC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-J2BUK5E6.mjs → chunk-KCZ527AM.mjs} +169 -101
- package/dist/lib/browser/chunk-KCZ527AM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PU5IOFMG.mjs → chunk-P25R3AOK.mjs} +4 -47
- package/dist/lib/browser/{chunk-PU5IOFMG.mjs.map → chunk-P25R3AOK.mjs.map} +4 -4
- package/dist/lib/browser/{chunk-OLBBSOVI.mjs → chunk-POFUXISV.mjs} +53 -59
- package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +47 -94
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-Q2XWHAVA.mjs → intent-resolver-RZEWNJ2K.mjs} +51 -40
- package/dist/lib/browser/intent-resolver-RZEWNJ2K.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-MM4HADPE.mjs → react-root-JCRD74GI.mjs} +6 -6
- package/dist/lib/browser/{react-surface-SGZC3Y4U.mjs → react-surface-VOETEAG3.mjs} +28 -14
- package/dist/lib/browser/react-surface-VOETEAG3.mjs.map +7 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
- package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
- package/dist/lib/browser/{settings-WKLGKUHQ.mjs → settings-TRLI52I5.mjs} +2 -2
- package/dist/lib/browser/{spaces-ready-C5QC2UFL.mjs → spaces-ready-OHGCWZHQ.mjs} +13 -7
- package/dist/lib/browser/{spaces-ready-C5QC2UFL.mjs.map → spaces-ready-OHGCWZHQ.mjs.map} +2 -2
- package/dist/lib/browser/{state-Q7YRE5KG.mjs → state-C7N6EDDZ.mjs} +2 -2
- package/dist/lib/browser/types/index.mjs +9 -3
- package/dist/lib/node-esm/{ObjectDetailsPanel-6PZQIQG3.mjs → ObjectDetailsPanel-6OFTT3GG.mjs} +2 -2
- package/dist/lib/node-esm/{ObjectDetailsPanel-6PZQIQG3.mjs.map → ObjectDetailsPanel-6OFTT3GG.mjs.map} +3 -3
- package/dist/lib/node-esm/{ObjectSettings-OQSBOH7K.mjs → ObjectSettings-YXPJQMJ5.mjs} +2 -2
- package/dist/lib/node-esm/{ObjectSettings-OQSBOH7K.mjs.map → ObjectSettings-YXPJQMJ5.mjs.map} +3 -3
- package/dist/lib/node-esm/{RecordArticle-NACBH42P.mjs → RecordArticle-SSJ7PULS.mjs} +1 -1
- package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-24JCLJPX.mjs → app-graph-builder-T6VJKIOA.mjs} +140 -151
- package/dist/lib/node-esm/app-graph-builder-T6VJKIOA.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-serializer-R723K764.mjs → app-graph-serializer-2NLWWFUB.mjs} +4 -4
- package/dist/lib/node-esm/{chunk-TJPQDQNI.mjs → chunk-7EV4SN47.mjs} +4 -47
- package/dist/lib/node-esm/{chunk-TJPQDQNI.mjs.map → chunk-7EV4SN47.mjs.map} +4 -4
- package/dist/lib/node-esm/{chunk-WC4VBFMA.mjs → chunk-AX3UGL5D.mjs} +53 -59
- package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-VH2EBZEV.mjs → chunk-I6FZP42D.mjs} +163 -105
- package/dist/lib/node-esm/chunk-I6FZP42D.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ITQFSFQ3.mjs → chunk-JAMGJUFU.mjs} +169 -101
- package/dist/lib/node-esm/chunk-JAMGJUFU.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-Z7BB6HC2.mjs → chunk-WWGV5FJM.mjs} +3 -3
- package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-X34VDVMY.mjs +393 -0
- package/dist/lib/node-esm/chunk-X34VDVMY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +47 -94
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-YK4ESSET.mjs → intent-resolver-4PHJWDXW.mjs} +51 -40
- package/dist/lib/node-esm/intent-resolver-4PHJWDXW.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-root-5ANDLQMX.mjs → react-root-O5I5CDJ7.mjs} +6 -6
- package/dist/lib/node-esm/{react-surface-V7J2QB44.mjs → react-surface-J3XDMU2D.mjs} +28 -14
- package/dist/lib/node-esm/react-surface-J3XDMU2D.mjs.map +7 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
- package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-RBB5633M.mjs → settings-MNQTKHL7.mjs} +2 -2
- package/dist/lib/node-esm/{spaces-ready-SJCXV6YH.mjs → spaces-ready-ZPU24DA2.mjs} +13 -7
- package/dist/lib/node-esm/{spaces-ready-SJCXV6YH.mjs.map → spaces-ready-ZPU24DA2.mjs.map} +2 -2
- package/dist/lib/node-esm/{state-362I5BMK.mjs → state-45TXZQJ6.mjs} +2 -2
- package/dist/lib/node-esm/types/index.mjs +9 -3
- 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/capabilities.d.ts +9 -4
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.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/capabilities/repair.d.ts +4 -0
- package/dist/types/src/capabilities/repair.d.ts.map +1 -0
- package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +147 -253
- package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +14 -7
- package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +147 -253
- package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +147 -253
- package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -1
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +3 -3
- package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
- package/dist/types/src/components/RecordArticle.stories.d.ts +147 -253
- package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -1
- package/dist/types/src/components/SchemaContainer.d.ts +1 -1
- package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts +2 -2
- package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +147 -253
- package/dist/types/src/components/SpacePresence/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 +147 -253
- package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +147 -253
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
- package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/helpers/query.d.ts +1 -1
- package/dist/types/src/helpers/query.d.ts.map +1 -1
- package/dist/types/src/hooks/useTypeOptions.d.ts +2 -2
- package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +147 -253
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/form.d.ts +24 -0
- package/dist/types/src/types/form.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +1 -0
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +29 -72
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +16 -32
- package/dist/types/src/util.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +54 -50
- package/src/SpacePlugin.ts +34 -84
- package/src/capabilities/app-graph-builder.ts +130 -227
- package/src/capabilities/capabilities.ts +10 -5
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +31 -35
- package/src/capabilities/react-surface.tsx +34 -8
- package/src/capabilities/repair.ts +57 -0
- package/src/capabilities/spaces-ready.ts +7 -1
- package/src/components/CreateDialog/CreateObjectDialog.tsx +33 -23
- package/src/components/CreateDialog/CreateObjectPanel.tsx +32 -25
- package/src/components/ObjectDetailsPanel/ObjectForm.tsx +1 -1
- package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -5
- package/src/components/ObjectSettings/BaseObjectSettings.tsx +1 -1
- package/src/components/ObjectSettings/ForeignKeys.tsx +5 -5
- package/src/components/RecordArticle.tsx +6 -6
- package/src/components/SchemaContainer.tsx +2 -2
- package/src/components/SpacePresence/SpacePresence.tsx +2 -2
- package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +25 -6
- package/src/components/ViewEditor.tsx +9 -3
- package/src/helpers/query.ts +1 -1
- package/src/hooks/useTypeOptions.ts +3 -35
- package/src/translations.ts +52 -57
- package/src/types/form.ts +75 -0
- package/src/types/index.ts +1 -0
- package/src/types/types.ts +26 -36
- package/src/util.tsx +165 -107
- package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +0 -7
- package/dist/lib/browser/chunk-J2BUK5E6.mjs.map +0 -7
- package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +0 -7
- package/dist/lib/browser/chunk-M2Z6D4ZI.mjs +0 -349
- package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +0 -7
- package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +0 -7
- package/dist/lib/browser/react-surface-SGZC3Y4U.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-QPI2JU3X.mjs +0 -26
- package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +0 -7
- package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-2PN7QNGV.mjs +0 -350
- package/dist/lib/node-esm/chunk-2PN7QNGV.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WC4VBFMA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-V7J2QB44.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs +0 -27
- package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +0 -7
- package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
- package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
- package/src/capabilities/schema-defs.ts +0 -31
- /package/dist/lib/browser/{app-graph-serializer-KSLKMEPP.mjs.map → app-graph-serializer-G3VFEGTN.mjs.map} +0 -0
- /package/dist/lib/browser/{react-root-MM4HADPE.mjs.map → react-root-JCRD74GI.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-WKLGKUHQ.mjs.map → settings-TRLI52I5.mjs.map} +0 -0
- /package/dist/lib/browser/{state-Q7YRE5KG.mjs.map → state-C7N6EDDZ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-serializer-R723K764.mjs.map → app-graph-serializer-2NLWWFUB.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-root-5ANDLQMX.mjs.map → react-root-O5I5CDJ7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-RBB5633M.mjs.map → settings-MNQTKHL7.mjs.map} +0 -0
- /package/dist/lib/node-esm/{state-362I5BMK.mjs.map → state-45TXZQJ6.mjs.map} +0 -0
|
@@ -3,18 +3,18 @@ import {
|
|
|
3
3
|
useInputSurfaceLookup,
|
|
4
4
|
usePath,
|
|
5
5
|
useTypeOptions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7EV4SN47.mjs";
|
|
7
7
|
import {
|
|
8
8
|
SpaceCapabilities
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WWGV5FJM.mjs";
|
|
10
10
|
import {
|
|
11
11
|
COMPOSER_SPACE_LOCK,
|
|
12
12
|
getSpaceDisplayName
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-I6FZP42D.mjs";
|
|
14
14
|
import {
|
|
15
15
|
SpaceAction,
|
|
16
16
|
SpaceForm
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-X34VDVMY.mjs";
|
|
18
18
|
import {
|
|
19
19
|
meta
|
|
20
20
|
} from "./chunk-BDEFTL6K.mjs";
|
|
@@ -124,42 +124,42 @@ var AwaitingObject = ({ id }) => {
|
|
|
124
124
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
|
125
125
|
import * as Effect from "effect/Effect";
|
|
126
126
|
import * as Function2 from "effect/Function";
|
|
127
|
-
import
|
|
127
|
+
import * as Option2 from "effect/Option";
|
|
128
|
+
import React3, { useCallback as useCallback3, useMemo, useRef, useState as useState2 } from "react";
|
|
128
129
|
import { Capabilities, LayoutAction as LayoutAction2, chain, createIntent as createIntent2 } from "@dxos/app-framework";
|
|
129
|
-
import {
|
|
130
|
-
import { Obj as Obj2,
|
|
130
|
+
import { useIntentDispatcher as useIntentDispatcher2, usePluginManager } from "@dxos/app-framework/react";
|
|
131
|
+
import { Obj as Obj2, Type } from "@dxos/echo";
|
|
132
|
+
import { EntityKind, SystemTypeAnnotation, getTypeAnnotation as getTypeAnnotation2 } from "@dxos/echo/internal";
|
|
131
133
|
import { invariant } from "@dxos/invariant";
|
|
132
134
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
133
|
-
import { getSpace, isLiveObject, isSpace,
|
|
135
|
+
import { getSpace, isLiveObject, isSpace, useSpaces } from "@dxos/react-client/echo";
|
|
134
136
|
import { Dialog, IconButton, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
135
137
|
import { cardDialogContent, cardDialogHeader } from "@dxos/react-ui-stack";
|
|
136
|
-
import { Collection, StoredSchema, getTypenameFromQuery } from "@dxos/schema";
|
|
137
|
-
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
138
138
|
|
|
139
139
|
// src/components/CreateDialog/CreateObjectPanel.tsx
|
|
140
140
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
141
141
|
import * as Option from "effect/Option";
|
|
142
142
|
import React2, { useCallback as useCallback2 } from "react";
|
|
143
|
-
import {
|
|
144
|
-
import { ViewAnnotation, getTypeAnnotation } from "@dxos/echo/internal";
|
|
143
|
+
import { getTypeAnnotation } from "@dxos/echo/internal";
|
|
145
144
|
import { Icon as Icon2, toLocalizedString, useDefaultValue, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
146
145
|
import { Form } from "@dxos/react-ui-form";
|
|
147
146
|
import { SearchList } from "@dxos/react-ui-searchlist";
|
|
148
147
|
import { cardDialogOverflow, cardDialogPaddedOverflow, cardDialogSearchListRoot } from "@dxos/react-ui-stack";
|
|
148
|
+
import { ViewAnnotation } from "@dxos/schema";
|
|
149
149
|
import { isNonNullable } from "@dxos/util";
|
|
150
|
-
var CreateObjectPanel = ({
|
|
150
|
+
var CreateObjectPanel = ({ schemas, spaces, typename, target, views, initialFormValues: _initialFormValues, defaultSpaceId, resolve, onTargetChange, onTypenameChange, onCreateObject }) => {
|
|
151
151
|
var _effect = _useSignals2();
|
|
152
152
|
try {
|
|
153
153
|
const { t } = useTranslation2(meta.id);
|
|
154
154
|
const initialFormValues = useDefaultValue(_initialFormValues, () => ({}));
|
|
155
|
-
const
|
|
156
|
-
const options =
|
|
155
|
+
const metadata = typename && resolve?.(typename);
|
|
156
|
+
const options = schemas.filter((schema) => {
|
|
157
157
|
if (views == null) {
|
|
158
158
|
return true;
|
|
159
159
|
} else {
|
|
160
|
-
return views === ViewAnnotation.get(
|
|
160
|
+
return views === ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false));
|
|
161
161
|
}
|
|
162
|
-
}).map((
|
|
162
|
+
}).map((schema) => getTypeAnnotation(schema)).filter(isNonNullable).sort((a, b) => {
|
|
163
163
|
const nameA = t("typename label", {
|
|
164
164
|
ns: a.typename,
|
|
165
165
|
defaultValue: a.typename
|
|
@@ -171,34 +171,34 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormVa
|
|
|
171
171
|
return nameA.localeCompare(nameB);
|
|
172
172
|
});
|
|
173
173
|
const handleCreateObject = useCallback2(async (props) => {
|
|
174
|
-
if (!
|
|
174
|
+
if (!metadata) {
|
|
175
175
|
return;
|
|
176
176
|
}
|
|
177
177
|
await onCreateObject?.({
|
|
178
|
-
|
|
178
|
+
metadata,
|
|
179
179
|
data: props
|
|
180
180
|
});
|
|
181
181
|
}, [
|
|
182
182
|
onCreateObject,
|
|
183
|
-
|
|
183
|
+
metadata
|
|
184
184
|
]);
|
|
185
185
|
const handleSetTypename = useCallback2(async (typename2) => {
|
|
186
|
-
const
|
|
187
|
-
if (
|
|
186
|
+
const metadata2 = resolve?.(typename2);
|
|
187
|
+
if (metadata2 && !metadata2.inputSchema) {
|
|
188
188
|
await onCreateObject?.({
|
|
189
|
-
|
|
189
|
+
metadata: metadata2
|
|
190
190
|
});
|
|
191
191
|
} else {
|
|
192
192
|
onTypenameChange?.(typename2);
|
|
193
193
|
}
|
|
194
194
|
}, [
|
|
195
|
-
|
|
195
|
+
resolve,
|
|
196
196
|
onCreateObject
|
|
197
197
|
]);
|
|
198
198
|
const inputSurfaceLookup = useInputSurfaceLookup({
|
|
199
199
|
target
|
|
200
200
|
});
|
|
201
|
-
return !
|
|
201
|
+
return !metadata ? /* @__PURE__ */ React2.createElement(SelectSchema, {
|
|
202
202
|
options,
|
|
203
203
|
resolve,
|
|
204
204
|
onChange: handleSetTypename
|
|
@@ -206,13 +206,13 @@ var CreateObjectPanel = ({ forms, spaces, typename, target, views, initialFormVa
|
|
|
206
206
|
spaces,
|
|
207
207
|
defaultSpaceId,
|
|
208
208
|
onChange: onTargetChange
|
|
209
|
-
}) :
|
|
209
|
+
}) : metadata.inputSchema ? /* @__PURE__ */ React2.createElement("div", {
|
|
210
210
|
role: "none",
|
|
211
211
|
className: cardDialogOverflow
|
|
212
212
|
}, /* @__PURE__ */ React2.createElement(Form, {
|
|
213
213
|
autoFocus: true,
|
|
214
214
|
values: initialFormValues,
|
|
215
|
-
schema:
|
|
215
|
+
schema: metadata.inputSchema,
|
|
216
216
|
testId: "create-object-form",
|
|
217
217
|
onSave: handleCreateObject,
|
|
218
218
|
lookupComponent: inputSurfaceLookup,
|
|
@@ -286,7 +286,7 @@ var SelectSchema = ({ options, resolve, onChange }) => {
|
|
|
286
286
|
}, /* @__PURE__ */ React2.createElement("span", {
|
|
287
287
|
className: "flex gap-2 items-center grow truncate"
|
|
288
288
|
}, /* @__PURE__ */ React2.createElement(Icon2, {
|
|
289
|
-
icon: resolve?.(option.typename)
|
|
289
|
+
icon: resolve?.(option.typename)?.icon ?? "ph--placeholder--regular",
|
|
290
290
|
size: 5
|
|
291
291
|
}), t("typename label", {
|
|
292
292
|
ns: option.typename,
|
|
@@ -306,19 +306,27 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
306
306
|
const manager = usePluginManager();
|
|
307
307
|
const { t } = useTranslation3(meta.id);
|
|
308
308
|
const { dispatch } = useIntentDispatcher2();
|
|
309
|
-
const forms = useCapabilities(SpaceCapabilities.ObjectForm);
|
|
310
309
|
const [target, setTarget] = useState2(initialTarget);
|
|
311
310
|
const [typename, setTypename] = useState2(initialTypename);
|
|
312
311
|
const client = useClient2();
|
|
313
312
|
const spaces = useSpaces();
|
|
314
|
-
const space = isSpace(target) ? target : getSpace(target);
|
|
315
|
-
const queryCollections = useQuery2(space, Query.type(Collection.QueryCollection));
|
|
316
|
-
const hiddenTypenames = queryCollections.map((collection) => getTypenameFromQuery(collection.query)).filter(isNonNullable2);
|
|
317
313
|
const closeRef = useRef(null);
|
|
318
|
-
const resolve = useCallback3((typename2) =>
|
|
314
|
+
const resolve = useCallback3((typename2) => {
|
|
315
|
+
const metadata = manager.context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata;
|
|
316
|
+
return metadata?.createObjectIntent ? metadata : void 0;
|
|
317
|
+
}, [
|
|
319
318
|
manager
|
|
320
319
|
]);
|
|
321
|
-
const
|
|
320
|
+
const space = isSpace(target) ? target : getSpace(target);
|
|
321
|
+
const schemas = space?.db.schemaRegistry.query({
|
|
322
|
+
location: [
|
|
323
|
+
"runtime"
|
|
324
|
+
]
|
|
325
|
+
}).runSync();
|
|
326
|
+
const userSchemas = useMemo(() => schemas?.filter((schema) => getTypeAnnotation2(schema)?.kind !== EntityKind.Relation).filter((schema) => !!resolve(Type.getTypename(schema))).filter((schema) => !SystemTypeAnnotation.get(schema).pipe(Option2.getOrElse(() => false))) ?? [], [
|
|
327
|
+
schemas
|
|
328
|
+
]);
|
|
329
|
+
const handleCreateObject = useCallback3(({ metadata, data = {} }) => Effect.gen(function* () {
|
|
322
330
|
if (!target) {
|
|
323
331
|
return;
|
|
324
332
|
}
|
|
@@ -326,18 +334,18 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
326
334
|
const space2 = isSpace(target) ? target : getSpace(target);
|
|
327
335
|
invariant(space2, "Missing space", {
|
|
328
336
|
F: __dxlog_file,
|
|
329
|
-
L:
|
|
337
|
+
L: 87,
|
|
330
338
|
S: this,
|
|
331
339
|
A: [
|
|
332
340
|
"space",
|
|
333
341
|
"'Missing space'"
|
|
334
342
|
]
|
|
335
343
|
});
|
|
336
|
-
const { object } = yield* dispatch(
|
|
344
|
+
const { object } = yield* dispatch(metadata.createObjectIntent(data, {
|
|
337
345
|
space: space2
|
|
338
346
|
}));
|
|
339
|
-
if (isLiveObject(object) && !Obj2.instanceOf(
|
|
340
|
-
const hidden =
|
|
347
|
+
if (isLiveObject(object) && !Obj2.instanceOf(Type.PersistentType, object)) {
|
|
348
|
+
const hidden = !metadata.addToCollectionOnCreate;
|
|
341
349
|
const addObjectIntent = createIntent2(SpaceAction.AddObject, {
|
|
342
350
|
target,
|
|
343
351
|
object,
|
|
@@ -357,7 +365,6 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
357
365
|
dispatch,
|
|
358
366
|
target,
|
|
359
367
|
resolve,
|
|
360
|
-
hiddenTypenames,
|
|
361
368
|
_shouldNavigate
|
|
362
369
|
]);
|
|
363
370
|
return (
|
|
@@ -371,7 +378,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
371
378
|
}, /* @__PURE__ */ React3.createElement(Dialog.Title, null, t("create object dialog title", {
|
|
372
379
|
object: t("typename label", {
|
|
373
380
|
ns: typename,
|
|
374
|
-
defaultValue: views ? "View" : "
|
|
381
|
+
defaultValue: views ? "View" : "Object"
|
|
375
382
|
})
|
|
376
383
|
})), /* @__PURE__ */ React3.createElement(Dialog.Close, {
|
|
377
384
|
asChild: true
|
|
@@ -385,7 +392,7 @@ var CreateObjectDialog = ({ target: initialTarget, typename: initialTypename, vi
|
|
|
385
392
|
variant: "ghost",
|
|
386
393
|
autoFocus: true
|
|
387
394
|
}))), /* @__PURE__ */ React3.createElement(CreateObjectPanel, {
|
|
388
|
-
|
|
395
|
+
schemas: userSchemas,
|
|
389
396
|
spaces,
|
|
390
397
|
target,
|
|
391
398
|
views,
|
|
@@ -616,7 +623,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
|
|
|
616
623
|
|
|
617
624
|
// src/components/MembersContainer/MembersContainer.tsx
|
|
618
625
|
import { useSignals as _useSignals7 } from "@preact-signals/safe-react/tracking";
|
|
619
|
-
import React7, { useCallback as useCallback6, useMemo, useState as useState3 } from "react";
|
|
626
|
+
import React7, { useCallback as useCallback6, useMemo as useMemo2, useState as useState3 } from "react";
|
|
620
627
|
import { QR } from "react-qr-rounded";
|
|
621
628
|
import { createIntent as createIntent5 } from "@dxos/app-framework";
|
|
622
629
|
import { useIntentDispatcher as useIntentDispatcher5 } from "@dxos/app-framework/react";
|
|
@@ -628,7 +635,7 @@ import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
|
|
|
628
635
|
import { Button as Button2, Clipboard, Icon as Icon3, Input, useId, useTranslation as useTranslation7 } from "@dxos/react-ui";
|
|
629
636
|
import { ControlFrame, ControlFrameItem, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
630
637
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
631
|
-
import { Collection
|
|
638
|
+
import { Collection } from "@dxos/schema";
|
|
632
639
|
import { AuthCode, BifurcatedAction, Centered, Emoji, InvitationList, SpaceMemberList, Viewport } from "@dxos/shell/react";
|
|
633
640
|
import { hexToEmoji } from "@dxos/util";
|
|
634
641
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer/MembersContainer.tsx";
|
|
@@ -663,7 +670,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
663
670
|
setInternalActiveAction(nextAction);
|
|
664
671
|
localStorage.setItem(activeActionKey, nextAction);
|
|
665
672
|
};
|
|
666
|
-
const target = space.properties[
|
|
673
|
+
const target = space.properties[Collection.Collection.typename]?.target?.objects[0]?.target;
|
|
667
674
|
const locked = space.properties[COMPOSER_SPACE_LOCK];
|
|
668
675
|
const handleChangeLocked = useCallback6(() => {
|
|
669
676
|
space.properties[COMPOSER_SPACE_LOCK] = !locked;
|
|
@@ -671,7 +678,7 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
|
|
|
671
678
|
locked,
|
|
672
679
|
space
|
|
673
680
|
]);
|
|
674
|
-
const inviteActions =
|
|
681
|
+
const inviteActions = useMemo2(() => ({
|
|
675
682
|
inviteOne: {
|
|
676
683
|
label: t("invite one label", {
|
|
677
684
|
ns: "os"
|
|
@@ -1082,7 +1089,7 @@ var useQuerySpaceSchemas = (space) => {
|
|
|
1082
1089
|
|
|
1083
1090
|
// src/components/SpacePresence/SpacePresence.tsx
|
|
1084
1091
|
import { useSignals as _useSignals12 } from "@preact-signals/safe-react/tracking";
|
|
1085
|
-
import * as
|
|
1092
|
+
import * as Option3 from "effect/Option";
|
|
1086
1093
|
import React12, { forwardRef, useCallback as useCallback9, useEffect as useEffect3, useState as useState7 } from "react";
|
|
1087
1094
|
import { useAppGraph as useAppGraph2, useCapability } from "@dxos/app-framework/react";
|
|
1088
1095
|
import { generateName } from "@dxos/display-name";
|
|
@@ -1093,6 +1100,21 @@ import { useIdentity } from "@dxos/react-client/halo";
|
|
|
1093
1100
|
import { Avatar, List, ListItem, Popover as Popover2, Tooltip, useDefaultValue as useDefaultValue2, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1094
1101
|
import { AttentionGlyph, useAttended, useAttention } from "@dxos/react-ui-attention";
|
|
1095
1102
|
import { ComplexMap, keyToFallback } from "@dxos/util";
|
|
1103
|
+
|
|
1104
|
+
// src/capabilities/index.ts
|
|
1105
|
+
import { lazy } from "@dxos/app-framework";
|
|
1106
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-T6VJKIOA.mjs"));
|
|
1107
|
+
var AppGraphSerializer = lazy(() => import("./app-graph-serializer-2NLWWFUB.mjs"));
|
|
1108
|
+
var IdentityCreated = lazy(() => import("./identity-created-OXLKCJE3.mjs"));
|
|
1109
|
+
var IntentResolver = lazy(() => import("./intent-resolver-4PHJWDXW.mjs"));
|
|
1110
|
+
var ReactRoot = lazy(() => import("./react-root-O5I5CDJ7.mjs"));
|
|
1111
|
+
var ReactSurface = lazy(() => import("./react-surface-J3XDMU2D.mjs"));
|
|
1112
|
+
var Repair = lazy(() => import("./repair-EHZS6MFY.mjs"));
|
|
1113
|
+
var SpaceSettings = lazy(() => import("./settings-MNQTKHL7.mjs"));
|
|
1114
|
+
var SpaceState = lazy(() => import("./state-45TXZQJ6.mjs"));
|
|
1115
|
+
var SpacesReady = lazy(() => import("./spaces-ready-ZPU24DA2.mjs"));
|
|
1116
|
+
|
|
1117
|
+
// src/components/SpacePresence/SpacePresence.tsx
|
|
1096
1118
|
var REFRESH_INTERVAL = 5e3;
|
|
1097
1119
|
var ACTIVITY_DURATION = 3e4;
|
|
1098
1120
|
var noViewers = new ComplexMap(PublicKey.hash);
|
|
@@ -1220,7 +1242,7 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
|
|
|
1220
1242
|
const attended = useAttended();
|
|
1221
1243
|
const startOfAttention = attended.at(-1);
|
|
1222
1244
|
const path = usePath(graph, startOfAttention);
|
|
1223
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1245
|
+
const containsAttended = !open && !isAttended && id && Option3.isSome(path) ? path.value.includes(id) : false;
|
|
1224
1246
|
const getActiveViewers = (viewers2) => {
|
|
1225
1247
|
const moment = Date.now();
|
|
1226
1248
|
return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
|
|
@@ -1321,13 +1343,13 @@ var SpacePluginSettings = ({ settings }) => {
|
|
|
1321
1343
|
import { useSignals as _useSignals14 } from "@preact-signals/safe-react/tracking";
|
|
1322
1344
|
import * as Function3 from "effect/Function";
|
|
1323
1345
|
import * as Schema from "effect/Schema";
|
|
1324
|
-
import React14, { useCallback as useCallback10, useMemo as
|
|
1346
|
+
import React14, { useCallback as useCallback10, useMemo as useMemo3, useState as useState8 } from "react";
|
|
1325
1347
|
import { LayoutAction as LayoutAction7, chain as chain2, createIntent as createIntent9 } from "@dxos/app-framework";
|
|
1326
|
-
import { useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework/react";
|
|
1348
|
+
import { useCapabilities, useIntentDispatcher as useIntentDispatcher9 } from "@dxos/app-framework/react";
|
|
1327
1349
|
import { log as log3 } from "@dxos/log";
|
|
1328
1350
|
import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
|
|
1329
1351
|
import { useClient as useClient7 } from "@dxos/react-client";
|
|
1330
|
-
import { SpaceState } from "@dxos/react-client/echo";
|
|
1352
|
+
import { SpaceState as SpaceState2 } from "@dxos/react-client/echo";
|
|
1331
1353
|
import { Button as Button5, Input as Input5, useFileDownload, useMulticastObservable, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
1332
1354
|
import { ControlItem, ControlItemInput as ControlItemInput3, ControlPage as ControlPage4, ControlSection as ControlSection4, Form as Form3 } from "@dxos/react-ui-form";
|
|
1333
1355
|
import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
|
|
@@ -1344,14 +1366,14 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1344
1366
|
const { t } = useTranslation14(meta.id);
|
|
1345
1367
|
const { dispatchPromise: dispatch } = useIntentDispatcher9();
|
|
1346
1368
|
const client = useClient7();
|
|
1347
|
-
const archived = useMulticastObservable(space.state) ===
|
|
1369
|
+
const archived = useMulticastObservable(space.state) === SpaceState2.SPACE_INACTIVE;
|
|
1348
1370
|
const [edgeReplication, setEdgeReplication] = useState8(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
|
|
1349
1371
|
const toggleEdgeReplication = useCallback10(async (next) => {
|
|
1350
1372
|
setEdgeReplication(next);
|
|
1351
1373
|
await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
|
|
1352
1374
|
log3.catch(err, void 0, {
|
|
1353
1375
|
F: __dxlog_file4,
|
|
1354
|
-
L:
|
|
1376
|
+
L: 58,
|
|
1355
1377
|
S: void 0,
|
|
1356
1378
|
C: (f, a) => f(...a)
|
|
1357
1379
|
});
|
|
@@ -1388,7 +1410,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1388
1410
|
toggleEdgeReplication,
|
|
1389
1411
|
archived
|
|
1390
1412
|
]);
|
|
1391
|
-
const values =
|
|
1413
|
+
const values = useMemo3(() => ({
|
|
1392
1414
|
name: space.properties.name,
|
|
1393
1415
|
icon: space.properties.icon,
|
|
1394
1416
|
hue: space.properties.hue,
|
|
@@ -1401,7 +1423,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1401
1423
|
edgeReplication,
|
|
1402
1424
|
archived
|
|
1403
1425
|
]);
|
|
1404
|
-
const customElements =
|
|
1426
|
+
const customElements = useMemo3(() => ({
|
|
1405
1427
|
name: ({ type, label, getValue, onValueChange }) => {
|
|
1406
1428
|
const handleChange = useCallback10(({ target: { value: value2 } }) => onValueChange(type, value2), [
|
|
1407
1429
|
onValueChange,
|
|
@@ -1498,6 +1520,17 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1498
1520
|
space,
|
|
1499
1521
|
download
|
|
1500
1522
|
]);
|
|
1523
|
+
const repairs = useCapabilities(SpaceCapabilities.Repair);
|
|
1524
|
+
const handleRepair = useCallback10(async () => {
|
|
1525
|
+
await Promise.all(repairs.map((repair) => repair({
|
|
1526
|
+
space,
|
|
1527
|
+
isDefault: client.spaces.default === space
|
|
1528
|
+
})));
|
|
1529
|
+
}, [
|
|
1530
|
+
client,
|
|
1531
|
+
space,
|
|
1532
|
+
repairs
|
|
1533
|
+
]);
|
|
1501
1534
|
return /* @__PURE__ */ React14.createElement(StackItem3.Content, {
|
|
1502
1535
|
scrollable: true
|
|
1503
1536
|
}, /* @__PURE__ */ React14.createElement(ControlPage4, null, /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
@@ -1515,8 +1548,18 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1515
1548
|
Custom: customElements,
|
|
1516
1549
|
outerSpacing: false,
|
|
1517
1550
|
classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
1518
|
-
})), /* @__PURE__ */ React14.createElement(
|
|
1519
|
-
title: t("
|
|
1551
|
+
})), /* @__PURE__ */ React14.createElement(ControlSection4, {
|
|
1552
|
+
title: t("space controls title", {
|
|
1553
|
+
ns: meta.id
|
|
1554
|
+
}),
|
|
1555
|
+
description: t("space controls description", {
|
|
1556
|
+
ns: meta.id
|
|
1557
|
+
})
|
|
1558
|
+
}, /* @__PURE__ */ React14.createElement("div", {
|
|
1559
|
+
role: "none",
|
|
1560
|
+
className: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
|
|
1561
|
+
}, /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1562
|
+
title: t("backup space title", {
|
|
1520
1563
|
ns: meta.id
|
|
1521
1564
|
}),
|
|
1522
1565
|
description: t("backup space description", {
|
|
@@ -1524,7 +1567,16 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1524
1567
|
})
|
|
1525
1568
|
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1526
1569
|
onClick: handleBackup
|
|
1527
|
-
}, t("download backup")))
|
|
1570
|
+
}, t("download backup label"))), /* @__PURE__ */ React14.createElement(ControlItemInput3, {
|
|
1571
|
+
title: t("repair space title", {
|
|
1572
|
+
ns: meta.id
|
|
1573
|
+
}),
|
|
1574
|
+
description: t("repair space description", {
|
|
1575
|
+
ns: meta.id
|
|
1576
|
+
})
|
|
1577
|
+
}, /* @__PURE__ */ React14.createElement(Button5, {
|
|
1578
|
+
onClick: handleRepair
|
|
1579
|
+
}, t("repair space label")))))));
|
|
1528
1580
|
} finally {
|
|
1529
1581
|
_effect.f();
|
|
1530
1582
|
}
|
|
@@ -1532,7 +1584,7 @@ var SpaceSettingsContainer = ({ space }) => {
|
|
|
1532
1584
|
|
|
1533
1585
|
// src/components/SyncStatus/InlineSyncStatus.tsx
|
|
1534
1586
|
import { useSignals as _useSignals15 } from "@preact-signals/safe-react/tracking";
|
|
1535
|
-
import * as
|
|
1587
|
+
import * as Option4 from "effect/Option";
|
|
1536
1588
|
import React15, { useEffect as useEffect4, useState as useState9 } from "react";
|
|
1537
1589
|
import { useAppGraph as useAppGraph3 } from "@dxos/app-framework/react";
|
|
1538
1590
|
import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
|
|
@@ -1564,7 +1616,7 @@ var InlineSyncStatus = ({ space, open }) => {
|
|
|
1564
1616
|
const attended = useAttended2();
|
|
1565
1617
|
const startOfAttention = attended.at(-1);
|
|
1566
1618
|
const path = usePath(graph, startOfAttention);
|
|
1567
|
-
const containsAttended = !open && !isAttended && id &&
|
|
1619
|
+
const containsAttended = !open && !isAttended && id && Option4.isSome(path) ? path.value.includes(id) : false;
|
|
1568
1620
|
const connectedToEdge = useEdgeStatus() === EdgeStatus.ConnectionState.CONNECTED;
|
|
1569
1621
|
const edgeSyncEnabled = space.internal.data.edgeReplication === EdgeReplicationSetting2.ENABLED;
|
|
1570
1622
|
const syncState = useSpaceSyncState(space);
|
|
@@ -1826,16 +1878,16 @@ import * as Array2 from "effect/Array";
|
|
|
1826
1878
|
import * as Effect3 from "effect/Effect";
|
|
1827
1879
|
import * as EffectFunction from "effect/Function";
|
|
1828
1880
|
import * as Match from "effect/Match";
|
|
1829
|
-
import * as
|
|
1881
|
+
import * as Option5 from "effect/Option";
|
|
1830
1882
|
import * as SchemaAST from "effect/SchemaAST";
|
|
1831
|
-
import { DXN, Filter as Filter2, Query
|
|
1832
|
-
import { ReferenceAnnotationId, getTypeAnnotation as
|
|
1883
|
+
import { DXN, Filter as Filter2, Query } from "@dxos/echo";
|
|
1884
|
+
import { ReferenceAnnotationId, getTypeAnnotation as getTypeAnnotation3, unwrapOptional } from "@dxos/echo/internal";
|
|
1833
1885
|
import { log as log4 } from "@dxos/log";
|
|
1834
1886
|
import { Person } from "@dxos/types";
|
|
1835
1887
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/plugins/plugin-space/src/helpers/query.ts";
|
|
1836
1888
|
var evalQuery = (queryString) => {
|
|
1837
1889
|
const globals = {
|
|
1838
|
-
Query
|
|
1890
|
+
Query,
|
|
1839
1891
|
Filter: Filter2,
|
|
1840
1892
|
Person
|
|
1841
1893
|
};
|
|
@@ -1848,26 +1900,26 @@ var evalQuery = (queryString) => {
|
|
|
1848
1900
|
S: void 0,
|
|
1849
1901
|
C: (f, a) => f(...a)
|
|
1850
1902
|
});
|
|
1851
|
-
return
|
|
1903
|
+
return Query.select(Filter2.nothing());
|
|
1852
1904
|
}
|
|
1853
1905
|
};
|
|
1854
1906
|
var resolveSchemaWithClientAndSpace = (client, space, query) => {
|
|
1855
1907
|
const resolve = Effect3.fn(function* (dxn) {
|
|
1856
1908
|
const typename = DXN.parse(dxn).asTypeDXN()?.type;
|
|
1857
1909
|
if (!typename) {
|
|
1858
|
-
return
|
|
1910
|
+
return Option5.none();
|
|
1859
1911
|
}
|
|
1860
1912
|
const staticSchema = client.graph.schemaRegistry.getSchema(typename);
|
|
1861
1913
|
if (staticSchema) {
|
|
1862
|
-
return
|
|
1914
|
+
return Option5.some(staticSchema);
|
|
1863
1915
|
}
|
|
1864
1916
|
const query2 = space.db.schemaRegistry.query({
|
|
1865
1917
|
typename
|
|
1866
1918
|
});
|
|
1867
1919
|
const schemas = yield* Effect3.promise(() => query2.run());
|
|
1868
|
-
return Array2.head(schemas)
|
|
1920
|
+
return Array2.head(schemas);
|
|
1869
1921
|
});
|
|
1870
|
-
return resolveSchema(query, resolve).pipe(Effect3.map((schema) =>
|
|
1922
|
+
return resolveSchema(query, resolve).pipe(Effect3.map((schema) => Option5.getOrUndefined(schema)), Effect3.runPromise);
|
|
1871
1923
|
};
|
|
1872
1924
|
var resolveSchema = (query, resolve) => {
|
|
1873
1925
|
return Match.value(query).pipe(
|
|
@@ -1875,46 +1927,46 @@ var resolveSchema = (query, resolve) => {
|
|
|
1875
1927
|
// TODO(wittjosiah): Reconcile with filter match?
|
|
1876
1928
|
Match.when({
|
|
1877
1929
|
type: "select"
|
|
1878
|
-
}, ({ filter }) => typenameFromFilter(filter).pipe(
|
|
1930
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1879
1931
|
Match.when({
|
|
1880
1932
|
type: "filter"
|
|
1881
|
-
}, ({ filter }) => typenameFromFilter(filter).pipe(
|
|
1933
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1882
1934
|
Match.when({
|
|
1883
1935
|
type: "reference-traversal"
|
|
1884
|
-
}, ({ anchor, property }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(
|
|
1885
|
-
onNone: () => Effect3.succeed(
|
|
1936
|
+
}, ({ anchor, property }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(Option5.map((schema) => SchemaAST.getPropertySignatures(schema.ast)), Option5.flatMap((properties) => Array2.findFirst(properties, (p) => p.name === property)), Option5.flatMap((property2) => SchemaAST.getAnnotation(ReferenceAnnotationId)(unwrapOptional(property2))), Option5.map((annotation) => annotation.typename))), Effect3.flatMap(Option5.match({
|
|
1937
|
+
onNone: () => Effect3.succeed(Option5.none()),
|
|
1886
1938
|
onSome: (typename) => resolve(DXN.fromTypename(typename).toString())
|
|
1887
1939
|
})))),
|
|
1888
1940
|
Match.when({
|
|
1889
1941
|
type: "relation",
|
|
1890
1942
|
filter: Match.defined
|
|
1891
|
-
}, ({ filter }) => typenameFromFilter(filter).pipe(
|
|
1943
|
+
}, ({ filter }) => typenameFromFilter(filter).pipe(Option5.map((typename) => resolve(typename)), Option5.getOrElse(() => Effect3.succeed(Option5.none())))),
|
|
1892
1944
|
Match.when({
|
|
1893
1945
|
type: "relation-traversal"
|
|
1894
|
-
}, ({ anchor, direction }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(
|
|
1895
|
-
onNone: () => Effect3.succeed(
|
|
1946
|
+
}, ({ anchor, direction }) => resolveSchema(anchor, resolve).pipe(Effect3.map((base) => base.pipe(Option5.map((schema) => getTypeAnnotation3(schema)), Option5.flatMap((annotation) => Option5.fromNullable(direction === "source" ? annotation?.sourceSchema : annotation?.targetSchema)))), Effect3.flatMap(Option5.match({
|
|
1947
|
+
onNone: () => Effect3.succeed(Option5.none()),
|
|
1896
1948
|
onSome: (typename) => resolve(typename)
|
|
1897
1949
|
})))),
|
|
1898
1950
|
Match.when({
|
|
1899
1951
|
type: "options"
|
|
1900
1952
|
}, ({ query: query2 }) => resolveSchema(query2, resolve)),
|
|
1901
1953
|
Match.orElse((_q) => {
|
|
1902
|
-
return Effect3.succeed(
|
|
1954
|
+
return Effect3.succeed(Option5.none());
|
|
1903
1955
|
})
|
|
1904
1956
|
);
|
|
1905
1957
|
};
|
|
1906
1958
|
var typenameFromFilter = (filter) => Match.value(filter).pipe(Match.withReturnType(), Match.when({
|
|
1907
1959
|
type: "object"
|
|
1908
|
-
}, ({ typename }) =>
|
|
1960
|
+
}, ({ typename }) => Option5.fromNullable(typename)), Match.when({
|
|
1909
1961
|
type: "and"
|
|
1910
|
-
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(
|
|
1962
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option5.isSome), Option5.flatten)), Match.when({
|
|
1911
1963
|
type: "or"
|
|
1912
|
-
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(
|
|
1964
|
+
}, ({ filters }) => EffectFunction.pipe(filters, Array2.map(typenameFromFilter), Array2.findFirst(Option5.isSome), Option5.flatten)), Match.orElse(() => Option5.none()));
|
|
1913
1965
|
var getQueryTarget = (query, space) => {
|
|
1914
1966
|
return Match.value(query).pipe(Match.when({
|
|
1915
1967
|
type: "options"
|
|
1916
1968
|
}, ({ options }) => {
|
|
1917
|
-
return
|
|
1969
|
+
return Option5.fromNullable(options.queues).pipe(Option5.flatMap((queues) => Array2.head(queues)), Option5.flatMap((queueDxn) => Option5.fromNullable(DXN.tryParse(queueDxn))), Option5.flatMap((queueDxn) => Option5.fromNullable(space?.queues.get(queueDxn))), Option5.getOrElse(() => space));
|
|
1918
1970
|
}), Match.orElse(() => space));
|
|
1919
1971
|
};
|
|
1920
1972
|
|
|
@@ -1924,9 +1976,9 @@ import * as Schema2 from "effect/Schema";
|
|
|
1924
1976
|
import React17, { useCallback as useCallback11, useState as useState11 } from "react";
|
|
1925
1977
|
import { createIntent as createIntent10 } from "@dxos/app-framework";
|
|
1926
1978
|
import { useIntentDispatcher as useIntentDispatcher10 } from "@dxos/app-framework/react";
|
|
1927
|
-
import { DXN as DXN2, Filter as Filter3, Obj as Obj6, Query as
|
|
1979
|
+
import { DXN as DXN2, Filter as Filter3, Obj as Obj6, Query as Query2, Tag, Type as Type2 } from "@dxos/echo";
|
|
1928
1980
|
import { useClient as useClient10 } from "@dxos/react-client";
|
|
1929
|
-
import { getSpace as getSpace4, useQuery as
|
|
1981
|
+
import { getSpace as getSpace4, useQuery as useQuery2 } from "@dxos/react-client/echo";
|
|
1930
1982
|
import { useAsyncEffect } from "@dxos/react-ui";
|
|
1931
1983
|
import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
|
|
1932
1984
|
import { View } from "@dxos/schema";
|
|
@@ -1937,14 +1989,21 @@ var ViewEditor = ({ view }) => {
|
|
|
1937
1989
|
const client = useClient10();
|
|
1938
1990
|
const space = getSpace4(view);
|
|
1939
1991
|
const [schema, setSchema] = useState11(() => Schema2.Struct({}));
|
|
1940
|
-
const tags =
|
|
1992
|
+
const tags = useQuery2(space, Filter3.type(Tag.Tag));
|
|
1941
1993
|
const types = useTypeOptions({
|
|
1942
1994
|
space,
|
|
1943
|
-
annotation:
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1995
|
+
annotation: {
|
|
1996
|
+
location: [
|
|
1997
|
+
"database",
|
|
1998
|
+
"runtime"
|
|
1999
|
+
],
|
|
2000
|
+
kind: [
|
|
2001
|
+
"user"
|
|
2002
|
+
],
|
|
2003
|
+
registered: [
|
|
2004
|
+
"registered"
|
|
2005
|
+
]
|
|
2006
|
+
}
|
|
1948
2007
|
});
|
|
1949
2008
|
useAsyncEffect(async () => {
|
|
1950
2009
|
if (!view?.query || !space) {
|
|
@@ -1965,11 +2024,11 @@ var ViewEditor = ({ view }) => {
|
|
|
1965
2024
|
return;
|
|
1966
2025
|
}
|
|
1967
2026
|
const queue = target && DXN2.tryParse(target) ? target : void 0;
|
|
1968
|
-
const query = queue ?
|
|
2027
|
+
const query = queue ? Query2.fromAst(newQuery).options({
|
|
1969
2028
|
queues: [
|
|
1970
2029
|
queue
|
|
1971
2030
|
]
|
|
1972
|
-
}) :
|
|
2031
|
+
}) : Query2.fromAst(newQuery);
|
|
1973
2032
|
view.query.ast = query.ast;
|
|
1974
2033
|
const newSchema = await resolveSchemaWithClientAndSpace(client, space, query.ast);
|
|
1975
2034
|
if (!newSchema) {
|
|
@@ -1977,8 +2036,7 @@ var ViewEditor = ({ view }) => {
|
|
|
1977
2036
|
}
|
|
1978
2037
|
const newView = View.make({
|
|
1979
2038
|
query,
|
|
1980
|
-
jsonSchema:
|
|
1981
|
-
presentation: Obj6.make(Type3.Expando, {})
|
|
2039
|
+
jsonSchema: Type2.toJsonSchema(newSchema)
|
|
1982
2040
|
});
|
|
1983
2041
|
view.projection = Obj6.getSnapshot(newView).projection;
|
|
1984
2042
|
setSchema(() => newSchema);
|
|
@@ -2002,12 +2060,12 @@ var ViewEditor = ({ view }) => {
|
|
|
2002
2060
|
registry: space.db.schemaRegistry,
|
|
2003
2061
|
schema,
|
|
2004
2062
|
view,
|
|
2005
|
-
mode: "
|
|
2063
|
+
mode: "tag",
|
|
2006
2064
|
outerSpacing: false,
|
|
2007
2065
|
tags,
|
|
2008
2066
|
types,
|
|
2009
2067
|
onQueryChanged: handleQueryChanged,
|
|
2010
|
-
onDelete:
|
|
2068
|
+
onDelete: Type2.isMutable(schema) ? handleDelete : void 0
|
|
2011
2069
|
});
|
|
2012
2070
|
} finally {
|
|
2013
2071
|
_effect.f();
|
|
@@ -2015,11 +2073,11 @@ var ViewEditor = ({ view }) => {
|
|
|
2015
2073
|
};
|
|
2016
2074
|
|
|
2017
2075
|
// src/components/index.ts
|
|
2018
|
-
import { lazy } from "react";
|
|
2019
|
-
var CollectionArticle =
|
|
2020
|
-
var ObjectDetailsPanel =
|
|
2021
|
-
var ObjectSettingsContainer =
|
|
2022
|
-
var RecordArticle =
|
|
2076
|
+
import { lazy as lazy2 } from "react";
|
|
2077
|
+
var CollectionArticle = lazy2(() => import("./CollectionArticle-KHXYT3SH.mjs"));
|
|
2078
|
+
var ObjectDetailsPanel = lazy2(() => import("./ObjectDetailsPanel-6OFTT3GG.mjs"));
|
|
2079
|
+
var ObjectSettingsContainer = lazy2(() => import("./ObjectSettings-YXPJQMJ5.mjs"));
|
|
2080
|
+
var RecordArticle = lazy2(() => import("./RecordArticle-SSJ7PULS.mjs"));
|
|
2023
2081
|
|
|
2024
2082
|
export {
|
|
2025
2083
|
AwaitingObject,
|
|
@@ -2054,6 +2112,16 @@ export {
|
|
|
2054
2112
|
CollectionArticle,
|
|
2055
2113
|
ObjectDetailsPanel,
|
|
2056
2114
|
ObjectSettingsContainer,
|
|
2057
|
-
RecordArticle
|
|
2115
|
+
RecordArticle,
|
|
2116
|
+
AppGraphBuilder,
|
|
2117
|
+
AppGraphSerializer,
|
|
2118
|
+
IdentityCreated,
|
|
2119
|
+
IntentResolver,
|
|
2120
|
+
ReactRoot,
|
|
2121
|
+
ReactSurface,
|
|
2122
|
+
Repair,
|
|
2123
|
+
SpaceSettings,
|
|
2124
|
+
SpaceState,
|
|
2125
|
+
SpacesReady
|
|
2058
2126
|
};
|
|
2059
|
-
//# sourceMappingURL=chunk-
|
|
2127
|
+
//# sourceMappingURL=chunk-JAMGJUFU.mjs.map
|