@rakun-kit/manager-react 1.4.6 → 1.4.8
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/README.md +196 -196
- package/dist/cjs/components/editor/themes/editor-theme.css +91 -91
- package/dist/cjs/components/ui/sortable.js +4 -4
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +11 -2
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js +53 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js.map +1 -0
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +66 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +97 -25
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +12 -3
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +63 -11
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js +3 -3
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js.map +1 -1
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +13 -7
- package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -1
- package/dist/cjs/state/theme.js +12 -12
- package/dist/esm/components/editor/themes/editor-theme.css +91 -91
- package/dist/esm/components/ui/sortable.js +4 -4
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +11 -2
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.d.ts +2 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.d.ts.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js +49 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js.map +1 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.d.ts +8 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +66 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts +8 -0
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +96 -25
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +13 -4
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +66 -14
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js +3 -3
- package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/ListUI.js.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.d.ts +5 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.d.ts.map +1 -1
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +13 -7
- package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -1
- package/dist/esm/state/theme.js +12 -12
- package/dist/styles.css +43 -7
- package/dist/styles.css.d.ts +3 -3
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +192 -192
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Link2, Unlink } from 'lucide-react';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import { useEditPageContext } from '../_context/EditPageContext.js';
|
|
6
|
+
import { Badge } from '../../../../../components/ui/badge.js';
|
|
7
|
+
import { Button } from '../../../../../components/ui/button.js';
|
|
8
|
+
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '../../../../../components/ui/dialog.js';
|
|
9
|
+
export const LinkedIteratorControl = () => {
|
|
10
|
+
const { contentTypeId, contentTypeName, documentActions, linkedIterator } = useEditPageContext();
|
|
11
|
+
const { state, mode } = linkedIterator;
|
|
12
|
+
const [confirmationAction, setConfirmationAction] = useState(null);
|
|
13
|
+
const handleConfirm = () => {
|
|
14
|
+
const action = confirmationAction;
|
|
15
|
+
setConfirmationAction(null);
|
|
16
|
+
if (action === 'initialize') {
|
|
17
|
+
void documentActions.handleInitializeLinkedIterator();
|
|
18
|
+
}
|
|
19
|
+
else if (action === 'relink') {
|
|
20
|
+
linkedIterator.adoptShared();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const withConfirmationDialog = (content) => (_jsxs(_Fragment, { children: [content, _jsx(Dialog, { open: confirmationAction !== null, onOpenChange: (open) => {
|
|
24
|
+
if (!open)
|
|
25
|
+
setConfirmationAction(null);
|
|
26
|
+
}, children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: confirmationAction === 'initialize'
|
|
27
|
+
? 'Use this as the shared structure?'
|
|
28
|
+
: 'Use the shared structure?' }), _jsx(DialogDescription, { children: confirmationAction === 'initialize'
|
|
29
|
+
? 'This iterator will become the structure for every linked entry. Local entries will not be changed.'
|
|
30
|
+
: "This entry's local iterator will be discarded when you save. The shared structure itself will not be changed." })] }), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Cancel" }) }), _jsxs(Button, { loading: confirmationAction === 'initialize' &&
|
|
31
|
+
(documentActions.pending.create || documentActions.pending.update), onClick: handleConfirm, children: [_jsx(Link2, {}), "Use shared structure"] })] })] }) })] }));
|
|
32
|
+
if (!linkedIterator.enabled || !state)
|
|
33
|
+
return null;
|
|
34
|
+
if (!state.configured && mode === 'unlinked') {
|
|
35
|
+
return withConfirmationDialog(_jsx("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border p-4", children: _jsxs("div", { className: "space-y-1", children: [_jsxs(Badge, { variant: "secondary", children: [_jsx(Unlink, {}), "Local structure"] }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Changes only affect this entry. The shared structure has not been configured yet." })] }) }));
|
|
36
|
+
}
|
|
37
|
+
if (!state.configured) {
|
|
38
|
+
return withConfirmationDialog(_jsxs("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border border-amber-500/40 bg-amber-500/10 p-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx(Badge, { variant: "outline", children: "Shared structure not configured" }) }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Choose this iterator as the initial structure for every linked entry." })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [contentTypeId ? (_jsxs(Button, { variant: "outline", onClick: () => linkedIterator.setMode('unlinked'), children: [_jsx(Unlink, {}), "Keep this entry local"] })) : null, state.canUpdateShared ? (_jsxs(Button, { variant: "outline", loading: documentActions.pending.create || documentActions.pending.update, onClick: () => setConfirmationAction('initialize'), children: [_jsx(Link2, {}), "Use this structure"] })) : (_jsx("p", { className: "text-sm text-muted-foreground", children: contentTypeId
|
|
39
|
+
? 'The update-any permission is required to initialize it.'
|
|
40
|
+
: 'Saving initializes it automatically only when this is the first entry.' }))] })] }));
|
|
41
|
+
}
|
|
42
|
+
if (mode === 'unlinked') {
|
|
43
|
+
return withConfirmationDialog(_jsxs("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border p-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsxs(Badge, { variant: "secondary", children: [_jsx(Unlink, {}), "Local structure"] }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Changes only affect this entry." })] }), _jsxs(Button, { variant: "outline", onClick: () => setConfirmationAction('relink'), children: [_jsx(Link2, {}), "Use shared structure"] })] }));
|
|
44
|
+
}
|
|
45
|
+
return withConfirmationDialog(_jsxs("div", { className: "mb-5 flex flex-wrap items-center justify-between gap-3 rounded-lg border p-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsxs(Badge, { children: [_jsx(Link2, {}), "Shared structure"] }), _jsx("p", { className: "text-sm text-muted-foreground", children: state.canUpdateShared
|
|
46
|
+
? `Iterator changes apply to every linked ${contentTypeName}.`
|
|
47
|
+
: 'This shared iterator is read-only with your current permissions.' })] }), contentTypeId ? (_jsxs(Button, { variant: "outline", onClick: () => linkedIterator.setMode('unlinked'), children: [_jsx(Unlink, {}), "Unlink this entry"] })) : null] }));
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=LinkedIteratorControl.js.map
|
package/dist/esm/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedIteratorControl.js","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_components/LinkedIteratorControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type PropsWithChildren } from 'react';
|
|
2
|
+
import type { LinkedIteratorStateOutput } from '@rakun-kit/core/client';
|
|
2
3
|
import { useContentDocumentActions } from '../_hooks/useContentDocumentActions.js';
|
|
3
4
|
import { useContentPreview } from '../_hooks/useContentPreview.js';
|
|
4
5
|
import { useContentTypeSections } from '../_hooks/useContentTypeSections.js';
|
|
@@ -41,6 +42,13 @@ type EditPageContextValue = {
|
|
|
41
42
|
translation: ReturnType<typeof useTranslationDialogState>;
|
|
42
43
|
translationEnabled: boolean;
|
|
43
44
|
moveToTrashOpen: boolean;
|
|
45
|
+
linkedIterator: {
|
|
46
|
+
enabled: boolean;
|
|
47
|
+
state?: LinkedIteratorStateOutput;
|
|
48
|
+
mode: 'linked' | 'unlinked';
|
|
49
|
+
setMode: (mode: 'linked' | 'unlinked') => void;
|
|
50
|
+
adoptShared: () => void;
|
|
51
|
+
};
|
|
44
52
|
};
|
|
45
53
|
export declare const EditPageProvider: ({ children, contentType, defaultData, preview, onAfterRestore, }: PropsWithChildren<EditPageProps>) => import("react/jsx-runtime").JSX.Element;
|
|
46
54
|
export declare const useEditPageContext: () => EditPageContextValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPageContext.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EAMvB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"EditPageContext.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
|
|
4
|
+
import { ITERATOR_FIELD_NAME } from '@rakun-kit/core/client';
|
|
4
5
|
import { useContentDocumentActions } from '../_hooks/useContentDocumentActions.js';
|
|
5
6
|
import { useContentPreview, } from '../_hooks/useContentPreview.js';
|
|
6
7
|
import { useContentTypeSections } from '../_hooks/useContentTypeSections.js';
|
|
@@ -13,6 +14,7 @@ import { useOptionalManagerNavigation } from '../../../../../state/navigation.js
|
|
|
13
14
|
import { useLanguage } from '../../../../../state/language.js';
|
|
14
15
|
import { useSession } from '../../../../../state/session.js';
|
|
15
16
|
import { useManagerQuery } from '../../../../../client/react.js';
|
|
17
|
+
import { deepEqual } from '../../../../../helpers/deepEqual.js';
|
|
16
18
|
const getDefaultVisibility = (defaultData) => (defaultData?._visibility ??
|
|
17
19
|
'draft');
|
|
18
20
|
const getInitialTab = ({ hasIterables, hasNonIterables, hasSeo, }) => hasNonIterables ? 'info' : hasIterables ? 'content' : hasSeo ? 'seo' : 'versions';
|
|
@@ -95,6 +97,25 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
|
|
|
95
97
|
const sections = useContentTypeSections(contentType);
|
|
96
98
|
const localeVariantRoute = (contentType.routes ?? []).find((route) => route.hasPage);
|
|
97
99
|
const contentTypeId = defaultData?._id;
|
|
100
|
+
const linkedIteratorQuery = useManagerQuery({
|
|
101
|
+
name: 'manager.linkedIterator.get',
|
|
102
|
+
input: {
|
|
103
|
+
contentType: contentType.name,
|
|
104
|
+
...(contentTypeId ? { documentId: contentTypeId } : {}),
|
|
105
|
+
},
|
|
106
|
+
enabled: Boolean(contentType.linkedIterator),
|
|
107
|
+
});
|
|
108
|
+
const linkedIteratorState = linkedIteratorQuery.data;
|
|
109
|
+
const [linkedIteratorMode, setLinkedIteratorMode] = useState('linked');
|
|
110
|
+
const effectiveDefaultData = useMemo(() => {
|
|
111
|
+
if (defaultData)
|
|
112
|
+
return defaultData;
|
|
113
|
+
if (!linkedIteratorState?.iterator)
|
|
114
|
+
return defaultData;
|
|
115
|
+
return {
|
|
116
|
+
[ITERATOR_FIELD_NAME]: linkedIteratorState.iterator,
|
|
117
|
+
};
|
|
118
|
+
}, [defaultData, linkedIteratorState?.iterator]);
|
|
98
119
|
const hasVisibility = Boolean(contentType.documentVisibility);
|
|
99
120
|
const canReadVersions = hasPermissions(['content.ContentVersion.readAny']);
|
|
100
121
|
const canRestoreVersions = hasPermissions(['content.ContentVersion.updateAny']);
|
|
@@ -109,7 +130,7 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
|
|
|
109
130
|
const [moveToTrashOpen, setMoveToTrashOpen] = useState(false);
|
|
110
131
|
const [permanentDeleteOpen, setPermanentDeleteOpen] = useState(false);
|
|
111
132
|
const form = useEditFormController({
|
|
112
|
-
defaultData,
|
|
133
|
+
defaultData: effectiveDefaultData,
|
|
113
134
|
hasVisibility,
|
|
114
135
|
setSaveErrorVisible: setShowSaveErrorTooltip,
|
|
115
136
|
visibility,
|
|
@@ -126,6 +147,29 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
|
|
|
126
147
|
onAfterRestore,
|
|
127
148
|
readFormData: form.readFormData,
|
|
128
149
|
replaceDraft: form.replaceDraft,
|
|
150
|
+
getLinkedIteratorControl: (data, requestedAction) => {
|
|
151
|
+
if (!contentType.linkedIterator || !linkedIteratorState?.enabled)
|
|
152
|
+
return undefined;
|
|
153
|
+
const iteratorChanged = !deepEqual(data[ITERATOR_FIELD_NAME], linkedIteratorState.iterator);
|
|
154
|
+
const action = linkedIteratorMode === 'linked'
|
|
155
|
+
? requestedAction ??
|
|
156
|
+
(linkedIteratorState.configured &&
|
|
157
|
+
iteratorChanged &&
|
|
158
|
+
linkedIteratorState.canUpdateShared
|
|
159
|
+
? 'update'
|
|
160
|
+
: undefined)
|
|
161
|
+
: undefined;
|
|
162
|
+
return {
|
|
163
|
+
mode: linkedIteratorMode,
|
|
164
|
+
...(action ? { action } : {}),
|
|
165
|
+
...(linkedIteratorState.revision !== undefined
|
|
166
|
+
? { revision: linkedIteratorState.revision }
|
|
167
|
+
: {}),
|
|
168
|
+
};
|
|
169
|
+
},
|
|
170
|
+
onLinkedIteratorSaved: async () => {
|
|
171
|
+
await linkedIteratorQuery.refetch();
|
|
172
|
+
},
|
|
129
173
|
setVisibility,
|
|
130
174
|
visibilityBeforeTrash,
|
|
131
175
|
});
|
|
@@ -204,6 +248,11 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
|
|
|
204
248
|
useEffect(() => {
|
|
205
249
|
setVisibility(getDefaultVisibility(defaultData));
|
|
206
250
|
}, [defaultData]);
|
|
251
|
+
useEffect(() => {
|
|
252
|
+
if (linkedIteratorState?.mode) {
|
|
253
|
+
setLinkedIteratorMode(linkedIteratorState.mode);
|
|
254
|
+
}
|
|
255
|
+
}, [linkedIteratorState?.mode]);
|
|
207
256
|
useEffect(() => {
|
|
208
257
|
if (editErrors.length === 0) {
|
|
209
258
|
setShowSaveErrorTooltip(false);
|
|
@@ -227,6 +276,15 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
|
|
|
227
276
|
const handleVisibilityChange = (nextVisibility) => {
|
|
228
277
|
setVisibility(nextVisibility);
|
|
229
278
|
};
|
|
279
|
+
const adoptSharedIterator = () => {
|
|
280
|
+
if (!linkedIteratorState?.iterator)
|
|
281
|
+
return;
|
|
282
|
+
form.replaceDraft({
|
|
283
|
+
...(form.draft.current ?? {}),
|
|
284
|
+
[ITERATOR_FIELD_NAME]: linkedIteratorState.iterator,
|
|
285
|
+
});
|
|
286
|
+
setLinkedIteratorMode('linked');
|
|
287
|
+
};
|
|
230
288
|
return (_jsx(EditPageContext.Provider, { value: {
|
|
231
289
|
activeTab,
|
|
232
290
|
canPreview,
|
|
@@ -245,6 +303,13 @@ export const EditPageProvider = ({ children, contentType, defaultData, preview,
|
|
|
245
303
|
isTrashed,
|
|
246
304
|
languageCode: language.code,
|
|
247
305
|
languageList,
|
|
306
|
+
linkedIterator: {
|
|
307
|
+
enabled: Boolean(contentType.linkedIterator),
|
|
308
|
+
state: linkedIteratorState,
|
|
309
|
+
mode: linkedIteratorMode,
|
|
310
|
+
setMode: setLinkedIteratorMode,
|
|
311
|
+
adoptShared: adoptSharedIterator,
|
|
312
|
+
},
|
|
248
313
|
moveToTrashOpen,
|
|
249
314
|
onAfterRestore,
|
|
250
315
|
openMoveToTrashDialog: () => setMoveToTrashOpen(true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPageContext.js","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditPageContext.js","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_context/EditPageContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,16 @@ type SourceFieldOption = {
|
|
|
16
16
|
value: string;
|
|
17
17
|
kind: SourceFieldKind;
|
|
18
18
|
};
|
|
19
|
+
type CurrentDocumentListSourceOption = {
|
|
20
|
+
label: string;
|
|
21
|
+
value: string;
|
|
22
|
+
contentType: EncodedContentType;
|
|
23
|
+
path: string;
|
|
24
|
+
itemName?: string;
|
|
25
|
+
};
|
|
19
26
|
export declare const isDynamicFieldEnabled: (contentType: EncodedContentType, field: EncodedFieldUnknown) => boolean;
|
|
20
27
|
export declare const sourceFieldOptions: (contentType?: EncodedContentType, targetField?: EncodedFieldUnknown) => SourceFieldOption[];
|
|
28
|
+
export declare const currentDocumentListSourceOptions: (contentType: EncodedContentType) => CurrentDocumentListSourceOption[];
|
|
21
29
|
export declare const readFilterState: (filter: Record<string, unknown> | undefined) => FilterState;
|
|
22
30
|
export declare const buildFilter: (state: FilterState, fieldOptions?: SourceFieldOption[]) => Record<string, unknown> | undefined;
|
|
23
31
|
export declare const DynamicDataControl: ({ contentType, documentContentType, fieldName, field, contentTypes, bindings, onChange, open, onOpenChange, mode, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicDataControl.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,uBAAuB,
|
|
1
|
+
{"version":3,"file":"DynamicDataControl.d.ts","sourceRoot":"","sources":["../../../../../../../src/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,uBAAuB,EAKvB,kBAAkB,EAElB,mBAAmB,EAIpB,MAAM,wBAAwB,CAAA;AAwD/B,KAAK,cAAc,GACf,QAAQ,GACR,WAAW,GACX,UAAU,GACV,IAAI,GACJ,OAAO,GACP,aAAa,GACb,oBAAoB,GACpB,UAAU,GACV,iBAAiB,GACjB,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,CAAA;AACf,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,cAAc,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CACpC,CAAA;AACD,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,KAAK,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B,CAAA;AACD,KAAK,eAAe,GAChB,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,GACP,SAAS,CAAA;AACb,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,eAAe,CAAA;CACtB,CAAA;AACD,KAAK,+BAA+B,GAAG;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,kBAAkB,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AA4CD,eAAO,MAAM,qBAAqB,GAChC,aAAa,kBAAkB,EAC/B,OAAO,mBAAmB,YAM3B,CAAA;AAmLD,eAAO,MAAM,kBAAkB,GAC7B,cAAc,kBAAkB,EAChC,cAAc,mBAAmB,KAChC,iBAAiB,EAWnB,CAAA;AAKD,eAAO,MAAM,gCAAgC,GAC3C,aAAa,kBAAkB,KAC9B,+BAA+B,EAsC9B,CAAA;AAkIJ,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAC1C,WAyBF,CAAA;AAgED,eAAO,MAAM,WAAW,GACtB,OAAO,WAAW,EAClB,eAAc,iBAAiB,EAAO,wCAavC,CAAA;AAk4CD,eAAO,MAAM,kBAAkB,GAAI,qHAWhC;IACD,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mBAAmB,CAAC,EAAE,kBAAkB,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAClC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,CAAA;IAC7C,QAAQ,EAAE,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,KAAK,IAAI,CAAA;IACjE,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;CAC/C,mDAmOA,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { DYNAMIC_QUERY_CURRENT_VALUE_KEY, getListField, isDynamicDataSourceContentTypeAllowed, isTranslatableObject, } from '@rakun-kit/core/client';
|
|
3
|
+
import { DYNAMIC_QUERY_CURRENT_VALUE_KEY, ITERATOR_FIELD_NAME, getListField, isDynamicDataSourceContentTypeAllowed, isTranslatableObject, } from '@rakun-kit/core/client';
|
|
4
4
|
import { Cable, ChevronRight, HelpCircle, Link2, ListFilter, Plus, Trash2, X, } from 'lucide-react';
|
|
5
5
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
6
6
|
import { Badge } from '../../../../../components/ui/badge.js';
|
|
@@ -30,6 +30,7 @@ const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArr
|
|
|
30
30
|
const isListField = (field) => field.config.ui === 'List' || field.config.ui === 'Iterator';
|
|
31
31
|
const isRelatedCollectionSource = (source) => !!source && 'kind' in source && source.kind === 'relatedCollection';
|
|
32
32
|
const isDynamicVisibleField = (field) => (field.visibility ?? 'all') === 'all' && field.isDynamic !== false;
|
|
33
|
+
const isSelectableDynamicField = (name, field) => name !== ITERATOR_FIELD_NAME && isDynamicVisibleField(field);
|
|
33
34
|
export const isDynamicFieldEnabled = (contentType, field) => {
|
|
34
35
|
return (contentType.dynamicData !== false &&
|
|
35
36
|
isDynamicVisibleField(field));
|
|
@@ -122,7 +123,7 @@ const fileFieldOptions = (path, targetField) => {
|
|
|
122
123
|
return options.filter((option) => isCompatibleSourceKind(option.kind, targetField));
|
|
123
124
|
};
|
|
124
125
|
const nestedSourceFieldOptions = ({ contentType, prefix = '', targetField, depth = 0, }) => Object.entries(contentType.fields).flatMap(([name, field]) => {
|
|
125
|
-
if (!
|
|
126
|
+
if (!isSelectableDynamicField(name, field))
|
|
126
127
|
return [];
|
|
127
128
|
const path = prefix ? `${prefix}.${name}` : name;
|
|
128
129
|
const kind = getFieldKind(field);
|
|
@@ -183,6 +184,38 @@ export const sourceFieldOptions = (contentType, targetField) => {
|
|
|
183
184
|
? [{ label: 'href', value: '$href', kind: 'string' }, ...fields]
|
|
184
185
|
: fields;
|
|
185
186
|
};
|
|
187
|
+
const currentDocumentListSourceValue = (path, itemName) => `current-document:${path}:${itemName ?? ''}`;
|
|
188
|
+
export const currentDocumentListSourceOptions = (contentType) => Object.entries(contentType.fields).flatMap(([name, field]) => {
|
|
189
|
+
if (!isSelectableDynamicField(name, field) || field.isTranslatable)
|
|
190
|
+
return [];
|
|
191
|
+
if (field.config.ui === 'List' || field.config.ui === 'Iterator') {
|
|
192
|
+
const relationEntries = field.fields.filter((entry) => entry.name !== ITERATOR_FIELD_NAME &&
|
|
193
|
+
entry.field.config.type === 'Relation');
|
|
194
|
+
return relationEntries.map((entry) => ({
|
|
195
|
+
label: relationEntries.length === 1
|
|
196
|
+
? `Current document · ${name}`
|
|
197
|
+
: `Current document · ${name} (${entry.name})`,
|
|
198
|
+
value: currentDocumentListSourceValue(name, entry.name),
|
|
199
|
+
contentType: entry.field.contentType,
|
|
200
|
+
path: name,
|
|
201
|
+
itemName: entry.name,
|
|
202
|
+
}));
|
|
203
|
+
}
|
|
204
|
+
if (field.config.ui === 'SimpleList') {
|
|
205
|
+
const itemField = field.field;
|
|
206
|
+
if (itemField.config.type !== 'Relation')
|
|
207
|
+
return [];
|
|
208
|
+
return [
|
|
209
|
+
{
|
|
210
|
+
label: `Current document · ${name}`,
|
|
211
|
+
value: currentDocumentListSourceValue(name),
|
|
212
|
+
contentType: itemField.contentType,
|
|
213
|
+
path: name,
|
|
214
|
+
},
|
|
215
|
+
];
|
|
216
|
+
}
|
|
217
|
+
return [];
|
|
218
|
+
});
|
|
186
219
|
const createSource = (contentType, value, id) => value === '$href'
|
|
187
220
|
? { contentType, id, virtual: 'href' }
|
|
188
221
|
: { contentType, id, path: value };
|
|
@@ -389,12 +422,15 @@ const bindingSummary = ({ list, fieldBinding, listBinding, documentContentTypeNa
|
|
|
389
422
|
if (list) {
|
|
390
423
|
if (!listBinding)
|
|
391
424
|
return '';
|
|
425
|
+
const source = listBinding.source
|
|
426
|
+
? `Current document.${listBinding.source.path}`
|
|
427
|
+
: listBinding.contentType;
|
|
392
428
|
const limit = listBinding.query?.options?.limit ?? 10;
|
|
393
429
|
const filter = filterSummary(listBinding.query?.filter);
|
|
394
430
|
return [
|
|
395
|
-
`${
|
|
396
|
-
`limit ${limit}`,
|
|
397
|
-
filter,
|
|
431
|
+
`${source} -> ${listBinding.itemName}`,
|
|
432
|
+
listBinding.source ? '' : `limit ${limit}`,
|
|
433
|
+
listBinding.source ? '' : filter,
|
|
398
434
|
]
|
|
399
435
|
.filter(Boolean)
|
|
400
436
|
.join(' · ');
|
|
@@ -495,14 +531,14 @@ const getRelationContentType = (field) => {
|
|
|
495
531
|
return undefined;
|
|
496
532
|
};
|
|
497
533
|
const getRelatedRelationOptions = (contentType, currentSource) => Object.entries(contentType.fields).flatMap(([name, field]) => {
|
|
498
|
-
if (!
|
|
534
|
+
if (!isSelectableDynamicField(name, field))
|
|
499
535
|
return [];
|
|
500
536
|
const relationContentType = getRelationContentType(field);
|
|
501
537
|
return relationContentType?.name === currentSource.name ? [name] : [];
|
|
502
538
|
});
|
|
503
539
|
const getRelatedPathOptions = (contentType, targetField) => sourceFieldOptions(contentType, targetField).filter((option) => option.kind === 'array' && option.value !== '$href');
|
|
504
540
|
const getSortFieldOptions = (contentType) => Object.entries(contentType.fields).flatMap(([name, field]) => {
|
|
505
|
-
if (!
|
|
541
|
+
if (!isSelectableDynamicField(name, field) ||
|
|
506
542
|
field.isTranslatable ||
|
|
507
543
|
name.startsWith('_') ||
|
|
508
544
|
isSeoPath(name)) {
|
|
@@ -649,15 +685,25 @@ const MappingSourceEditor = ({ contentTypes, currentSource, targetField, source,
|
|
|
649
685
|
})
|
|
650
686
|
: undefined, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: 'asc', children: "Ascending" }), _jsx(SelectItem, { value: 'desc', children: "Descending" })] })] })] })] })] }));
|
|
651
687
|
};
|
|
652
|
-
const ListBindingEditor = ({ contentTypes, documentContentType, field, binding, onChange, }) => {
|
|
653
|
-
const
|
|
654
|
-
const
|
|
688
|
+
const ListBindingEditor = ({ contentTypes, documentContentType, currentDocumentSourceEnabled, field, binding, onChange, }) => {
|
|
689
|
+
const itemOptions = field.fields.filter((item) => item.name !== ITERATOR_FIELD_NAME);
|
|
690
|
+
const documentSourceOptions = currentDocumentSourceEnabled
|
|
691
|
+
? currentDocumentListSourceOptions(documentContentType)
|
|
692
|
+
: [];
|
|
693
|
+
const initialDocumentSource = binding?.source
|
|
694
|
+
? documentSourceOptions.find((option) => option.path === binding.source?.path &&
|
|
695
|
+
option.itemName === binding.source?.itemName)
|
|
696
|
+
: undefined;
|
|
697
|
+
const [sourceType, setSourceType] = useState(initialDocumentSource?.value || binding?.contentType || '');
|
|
698
|
+
const [itemName, setItemName] = useState(binding?.itemName || itemOptions[0]?.name || '');
|
|
655
699
|
const [filterState, setFilterState] = useState(readFilterState(binding?.query?.filter));
|
|
656
700
|
const [openMappingField, setOpenMappingField] = useState(null);
|
|
657
|
-
const
|
|
701
|
+
const selectedDocumentSource = documentSourceOptions.find((option) => option.value === sourceType);
|
|
702
|
+
const selectedSource = selectedDocumentSource?.contentType ??
|
|
703
|
+
contentTypes.find((ct) => ct.name === sourceType);
|
|
658
704
|
const targetContentType = getListTargetContentType(field, itemName);
|
|
659
705
|
const targetFields = useMemo(() => targetContentType
|
|
660
|
-
? Object.entries(targetContentType.fields).filter(([, targetField]) =>
|
|
706
|
+
? Object.entries(targetContentType.fields).filter(([targetFieldName, targetField]) => isSelectableDynamicField(targetFieldName, targetField))
|
|
661
707
|
: [], [targetContentType]);
|
|
662
708
|
const sortFieldOptions = selectedSource
|
|
663
709
|
? getSortFieldOptions(selectedSource)
|
|
@@ -675,11 +721,22 @@ const ListBindingEditor = ({ contentTypes, documentContentType, field, binding,
|
|
|
675
721
|
const sortField = sortEntry?.[0] ?? '';
|
|
676
722
|
const sortDirection = sortEntry?.[1] ?? 'desc';
|
|
677
723
|
const emit = (patch) => {
|
|
724
|
+
const source = selectedDocumentSource
|
|
725
|
+
? {
|
|
726
|
+
kind: 'currentDocument',
|
|
727
|
+
contentType: documentContentType.name,
|
|
728
|
+
path: selectedDocumentSource.path,
|
|
729
|
+
itemName: selectedDocumentSource.itemName,
|
|
730
|
+
}
|
|
731
|
+
: undefined;
|
|
678
732
|
const next = {
|
|
679
|
-
contentType:
|
|
733
|
+
contentType: selectedSource?.name ?? '',
|
|
734
|
+
source,
|
|
680
735
|
itemName,
|
|
681
736
|
map: binding?.map ?? {},
|
|
682
|
-
query:
|
|
737
|
+
query: source
|
|
738
|
+
? undefined
|
|
739
|
+
: (binding?.query ?? { options: { limit: 10 } }),
|
|
683
740
|
...patch,
|
|
684
741
|
};
|
|
685
742
|
if (!next.contentType || !next.itemName) {
|
|
@@ -702,26 +759,40 @@ const ListBindingEditor = ({ contentTypes, documentContentType, field, binding,
|
|
|
702
759
|
conditions[index] = nextCondition;
|
|
703
760
|
updateFilter({ ...filterState, conditions });
|
|
704
761
|
};
|
|
705
|
-
return (_jsxs("div", { className: 'grid gap-3', children: [_jsx(PanelSection, { title: 'Collection', children: _jsxs("div", { className: 'grid gap-3 md:grid-cols-2', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Source", _jsxs(Select, { disabled: contentTypes.length === 0, value: sourceType, onValueChange: (value) => {
|
|
762
|
+
return (_jsxs("div", { className: 'grid gap-3', children: [_jsx(PanelSection, { title: 'Collection', children: _jsxs("div", { className: 'grid gap-3 md:grid-cols-2', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Source", _jsxs(Select, { disabled: contentTypes.length === 0 && documentSourceOptions.length === 0, value: sourceType, onValueChange: (value) => {
|
|
763
|
+
const documentSource = documentSourceOptions.find((option) => option.value === value);
|
|
706
764
|
setSourceType(value);
|
|
707
765
|
const nextFilterState = {
|
|
708
766
|
combinator: 'and',
|
|
709
767
|
conditions: [],
|
|
710
768
|
};
|
|
711
769
|
setFilterState(nextFilterState);
|
|
712
|
-
|
|
713
|
-
contentType: value,
|
|
770
|
+
onChange({
|
|
771
|
+
contentType: documentSource?.contentType.name ?? value,
|
|
772
|
+
source: documentSource
|
|
773
|
+
? {
|
|
774
|
+
kind: 'currentDocument',
|
|
775
|
+
contentType: documentContentType.name,
|
|
776
|
+
path: documentSource.path,
|
|
777
|
+
itemName: documentSource.itemName,
|
|
778
|
+
}
|
|
779
|
+
: undefined,
|
|
780
|
+
itemName,
|
|
714
781
|
map: {},
|
|
715
|
-
query:
|
|
716
|
-
|
|
717
|
-
|
|
782
|
+
query: documentSource
|
|
783
|
+
? undefined
|
|
784
|
+
: {
|
|
785
|
+
options: {
|
|
786
|
+
limit: binding?.query?.options?.limit ?? 10,
|
|
787
|
+
},
|
|
718
788
|
},
|
|
719
|
-
},
|
|
720
789
|
});
|
|
721
|
-
}, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: contentTypes.length > 0
|
|
790
|
+
}, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: contentTypes.length > 0 || documentSourceOptions.length > 0
|
|
791
|
+
? 'Content type or document list'
|
|
792
|
+
: 'No compatible sources' }) }), _jsx(SelectContent, { children: _jsxs(SelectGroup, { children: [documentSourceOptions.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))), contentTypes.map((ct) => (_jsx(SelectItem, { value: ct.name, children: ct.name }, ct.name)))] }) })] })] }), _jsxs(Label, { className: 'grid gap-1.5', children: ["Item", _jsxs(Select, { disabled: !sourceType || itemOptions.length === 0, value: itemName, onValueChange: (value) => {
|
|
722
793
|
setItemName(value);
|
|
723
794
|
emit({ itemName: value, map: {} });
|
|
724
|
-
}, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder:
|
|
795
|
+
}, children: [_jsx(SelectTrigger, { className: 'w-full', children: _jsx(SelectValue, { placeholder: itemOptions.length > 0 ? 'Item type' : 'No item types' }) }), _jsx(SelectContent, { children: _jsx(SelectGroup, { children: itemOptions.map((item) => (_jsx(SelectItem, { value: item.name, children: item.name }, item.name))) }) })] })] })] }) }), selectedDocumentSource ? null : (_jsxs(PanelSection, { title: 'Query', children: [_jsxs("div", { className: 'grid grid-cols-[minmax(5rem,0.4fr)_minmax(0,1.2fr)_minmax(8rem,0.6fr)] items-end gap-3', children: [_jsxs(Label, { className: 'grid gap-1.5', children: ["Limit", _jsx(Input, { type: 'number', min: 1, max: 100, value: String(binding?.query?.options?.limit ?? 10), onChange: (event) => emit({
|
|
725
796
|
query: {
|
|
726
797
|
...binding?.query,
|
|
727
798
|
options: {
|
|
@@ -810,7 +881,7 @@ const ListBindingEditor = ({ contentTypes, documentContentType, field, binding,
|
|
|
810
881
|
...filterState,
|
|
811
882
|
conditions: filterState.conditions.filter((_, conditionIndex) => conditionIndex !== index),
|
|
812
883
|
}), children: [_jsx(Trash2, { className: 'h-4 w-4' }), _jsx("span", { className: 'sr-only', children: "Remove condition" })] })] }, `${index}-${condition.field}`));
|
|
813
|
-
}) }))] })] }), _jsx(PanelSection, { title: 'Mapping', children: _jsx("div", { className: 'grid gap-2', children: targetFields.map(([targetField, targetFieldConfig]) => {
|
|
884
|
+
}) }))] })] })), _jsx(PanelSection, { title: 'Mapping', children: _jsx("div", { className: 'grid gap-2', children: targetFields.map(([targetField, targetFieldConfig]) => {
|
|
814
885
|
const source = binding?.map?.[targetField];
|
|
815
886
|
const summary = mappingSourceSummary(source, selectedSource?.name ?? 'Source');
|
|
816
887
|
const isOpen = openMappingField === targetField;
|
|
@@ -909,7 +980,7 @@ export const DynamicDataControl = ({ contentType, documentContentType, fieldName
|
|
|
909
980
|
setOpen(false);
|
|
910
981
|
};
|
|
911
982
|
const trigger = (_jsxs("div", { className: 'flex min-w-0 items-center gap-1.5', children: [_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: 'button', className: 'min-w-0 cursor-pointer rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', onClick: () => setOpen((value) => !value), children: bound && summary ? (_jsxs(Badge, { variant: 'secondary', className: 'max-w-80 min-w-0 gap-1.5 rounded-md px-2 py-1 hover:bg-secondary/80', children: [list ? (_jsx(ListFilter, { className: 'h-3.5 w-3.5 shrink-0' })) : (_jsx(Link2, { className: 'h-3.5 w-3.5 shrink-0' })), _jsx("span", { className: 'truncate', children: summary })] })) : (_jsxs(Badge, { variant: 'outline', className: 'gap-1.5 rounded-md px-2 py-1 text-muted-foreground', children: [_jsx(Cable, { className: 'h-3.5 w-3.5' }), "Not linked"] })) }) }), _jsx(TooltipContent, { side: 'top', sideOffset: 6, children: triggerLabel })] }), bound ? (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(Button, { type: 'button', size: 'icon', variant: 'ghost', className: 'size-6', onClick: clearBinding, children: [_jsx(X, { className: 'h-4 w-4' }), _jsx("span", { className: 'sr-only', children: "Clear dynamic data" })] }) }), _jsx(TooltipContent, { side: 'top', sideOffset: 6, children: "Clear dynamic data link" })] })) : null] }));
|
|
912
|
-
const editor = list ? (_jsx(ListBindingEditor, { contentTypes: sourceContentTypes, documentContentType: currentDocumentContentType, field: field, binding: listBinding, onChange: updateListBinding })) : (_jsx(FieldBindingEditor, { contentTypes: fieldSourceContentTypes, documentContentType: currentDocumentContentType, currentDocumentSourceEnabled: currentDocumentSourceEnabled, targetField: field, binding: fieldBinding, onChange: updateFieldBinding }));
|
|
983
|
+
const editor = list ? (_jsx(ListBindingEditor, { contentTypes: sourceContentTypes, documentContentType: currentDocumentContentType, currentDocumentSourceEnabled: currentDocumentSourceEnabled, field: field, binding: listBinding, onChange: updateListBinding })) : (_jsx(FieldBindingEditor, { contentTypes: fieldSourceContentTypes, documentContentType: currentDocumentContentType, currentDocumentSourceEnabled: currentDocumentSourceEnabled, targetField: field, binding: fieldBinding, onChange: updateFieldBinding }));
|
|
913
984
|
const panel = isOpen ? (_jsx("div", { className: 'rounded-md border border-border bg-background p-4 shadow-sm', children: editor })) : null;
|
|
914
985
|
const dialog = (_jsx(Dialog, { open: isOpen, onOpenChange: (value) => {
|
|
915
986
|
if (value) {
|