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