@payloadcms/ui 3.17.1 → 3.18.0-canary.030d28e
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/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts +9 -0
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -0
- package/dist/elements/EditMany/DrawerContent.js +388 -0
- package/dist/elements/EditMany/DrawerContent.js.map +1 -0
- package/dist/elements/EditMany/index.d.ts +1 -0
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +53 -374
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/exports/client/{DatePicker-KBQ2BMRY.js → DatePicker-THCU4KZJ.js} +2 -2
- package/dist/exports/client/{chunk-KVIFHJCL.js → chunk-EG3ZOHFS.js} +1 -1
- package/dist/exports/client/{chunk-KVIFHJCL.js.map → chunk-EG3ZOHFS.js.map} +2 -2
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +4 -4
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +1 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +82 -62
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +18 -12
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/providers/ListQuery/index.js +3 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts +2 -2
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/Translation/index.d.ts +3 -3
- package/dist/providers/Translation/index.d.ts.map +1 -1
- package/dist/providers/Translation/index.js.map +1 -1
- package/package.json +5 -5
- /package/dist/exports/client/{DatePicker-KBQ2BMRY.js.map → DatePicker-THCU4KZJ.js.map} +0 -0
|
@@ -2,406 +2,85 @@
|
|
|
2
2
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
-
import {
|
|
6
|
-
import { getTranslation } from '@payloadcms/translations';
|
|
7
|
-
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
8
|
-
import * as qs from 'qs-esm';
|
|
9
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
10
|
-
import { useForm } from '../../forms/Form/context.js';
|
|
11
|
-
import { Form } from '../../forms/Form/index.js';
|
|
12
|
-
import { RenderFields } from '../../forms/RenderFields/index.js';
|
|
13
|
-
import { FormSubmit } from '../../forms/Submit/index.js';
|
|
14
|
-
import { XIcon } from '../../icons/X/index.js';
|
|
5
|
+
import React, { useState } from 'react';
|
|
15
6
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
16
|
-
import { useConfig } from '../../providers/Config/index.js';
|
|
17
|
-
import { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js';
|
|
18
7
|
import { EditDepthProvider } from '../../providers/EditDepth/index.js';
|
|
19
|
-
import { OperationContext } from '../../providers/Operation/index.js';
|
|
20
|
-
import { useRouteCache } from '../../providers/RouteCache/index.js';
|
|
21
8
|
import { SelectAllStatus, useSelection } from '../../providers/Selection/index.js';
|
|
22
|
-
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
23
9
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
24
|
-
import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
|
|
25
|
-
import { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js';
|
|
26
|
-
import { parseSearchParams } from '../../utilities/parseSearchParams.js';
|
|
27
10
|
import './index.scss';
|
|
28
11
|
import { Drawer, DrawerToggler } from '../Drawer/index.js';
|
|
29
|
-
import {
|
|
30
|
-
const baseClass = 'edit-many';
|
|
31
|
-
const sanitizeUnselectedFields = (formState, selected) => {
|
|
32
|
-
const filteredData = selected.reduce((acc, field) => {
|
|
33
|
-
const foundState = formState?.[field.path];
|
|
34
|
-
if (foundState) {
|
|
35
|
-
acc[field.path] = formState?.[field.path]?.value;
|
|
36
|
-
}
|
|
37
|
-
return acc;
|
|
38
|
-
}, {});
|
|
39
|
-
return filteredData;
|
|
40
|
-
};
|
|
41
|
-
const Submit = t0 => {
|
|
42
|
-
const $ = _c(8);
|
|
43
|
-
const {
|
|
44
|
-
action,
|
|
45
|
-
disabled,
|
|
46
|
-
selected
|
|
47
|
-
} = t0;
|
|
48
|
-
const {
|
|
49
|
-
submit
|
|
50
|
-
} = useForm();
|
|
51
|
-
const {
|
|
52
|
-
t
|
|
53
|
-
} = useTranslation();
|
|
54
|
-
let t1;
|
|
55
|
-
if ($[0] !== action || $[1] !== selected || $[2] !== submit) {
|
|
56
|
-
t1 = () => {
|
|
57
|
-
submit({
|
|
58
|
-
action,
|
|
59
|
-
method: "PATCH",
|
|
60
|
-
overrides: formState => sanitizeUnselectedFields(formState, selected),
|
|
61
|
-
skipValidation: true
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
$[0] = action;
|
|
65
|
-
$[1] = selected;
|
|
66
|
-
$[2] = submit;
|
|
67
|
-
$[3] = t1;
|
|
68
|
-
} else {
|
|
69
|
-
t1 = $[3];
|
|
70
|
-
}
|
|
71
|
-
const save = t1;
|
|
72
|
-
let t2;
|
|
73
|
-
if ($[4] !== disabled || $[5] !== save || $[6] !== t) {
|
|
74
|
-
t2 = _jsx(FormSubmit, {
|
|
75
|
-
className: `${baseClass}__save`,
|
|
76
|
-
disabled,
|
|
77
|
-
onClick: save,
|
|
78
|
-
children: t("general:save")
|
|
79
|
-
});
|
|
80
|
-
$[4] = disabled;
|
|
81
|
-
$[5] = save;
|
|
82
|
-
$[6] = t;
|
|
83
|
-
$[7] = t2;
|
|
84
|
-
} else {
|
|
85
|
-
t2 = $[7];
|
|
86
|
-
}
|
|
87
|
-
return t2;
|
|
88
|
-
};
|
|
89
|
-
const PublishButton = t0 => {
|
|
90
|
-
const $ = _c(8);
|
|
91
|
-
const {
|
|
92
|
-
action,
|
|
93
|
-
disabled,
|
|
94
|
-
selected
|
|
95
|
-
} = t0;
|
|
96
|
-
const {
|
|
97
|
-
submit
|
|
98
|
-
} = useForm();
|
|
99
|
-
const {
|
|
100
|
-
t
|
|
101
|
-
} = useTranslation();
|
|
102
|
-
let t1;
|
|
103
|
-
if ($[0] !== action || $[1] !== selected || $[2] !== submit) {
|
|
104
|
-
t1 = () => {
|
|
105
|
-
submit({
|
|
106
|
-
action,
|
|
107
|
-
method: "PATCH",
|
|
108
|
-
overrides: formState => ({
|
|
109
|
-
...sanitizeUnselectedFields(formState, selected),
|
|
110
|
-
_status: "published"
|
|
111
|
-
}),
|
|
112
|
-
skipValidation: true
|
|
113
|
-
});
|
|
114
|
-
};
|
|
115
|
-
$[0] = action;
|
|
116
|
-
$[1] = selected;
|
|
117
|
-
$[2] = submit;
|
|
118
|
-
$[3] = t1;
|
|
119
|
-
} else {
|
|
120
|
-
t1 = $[3];
|
|
121
|
-
}
|
|
122
|
-
const save = t1;
|
|
123
|
-
let t2;
|
|
124
|
-
if ($[4] !== disabled || $[5] !== save || $[6] !== t) {
|
|
125
|
-
t2 = _jsx(FormSubmit, {
|
|
126
|
-
className: `${baseClass}__publish`,
|
|
127
|
-
disabled,
|
|
128
|
-
onClick: save,
|
|
129
|
-
children: t("version:publishChanges")
|
|
130
|
-
});
|
|
131
|
-
$[4] = disabled;
|
|
132
|
-
$[5] = save;
|
|
133
|
-
$[6] = t;
|
|
134
|
-
$[7] = t2;
|
|
135
|
-
} else {
|
|
136
|
-
t2 = $[7];
|
|
137
|
-
}
|
|
138
|
-
return t2;
|
|
139
|
-
};
|
|
140
|
-
const SaveDraftButton = t0 => {
|
|
141
|
-
const $ = _c(8);
|
|
142
|
-
const {
|
|
143
|
-
action,
|
|
144
|
-
disabled,
|
|
145
|
-
selected
|
|
146
|
-
} = t0;
|
|
147
|
-
const {
|
|
148
|
-
submit
|
|
149
|
-
} = useForm();
|
|
150
|
-
const {
|
|
151
|
-
t
|
|
152
|
-
} = useTranslation();
|
|
153
|
-
let t1;
|
|
154
|
-
if ($[0] !== action || $[1] !== selected || $[2] !== submit) {
|
|
155
|
-
t1 = () => {
|
|
156
|
-
submit({
|
|
157
|
-
action,
|
|
158
|
-
method: "PATCH",
|
|
159
|
-
overrides: formState => ({
|
|
160
|
-
...sanitizeUnselectedFields(formState, selected),
|
|
161
|
-
_status: "draft"
|
|
162
|
-
}),
|
|
163
|
-
skipValidation: true
|
|
164
|
-
});
|
|
165
|
-
};
|
|
166
|
-
$[0] = action;
|
|
167
|
-
$[1] = selected;
|
|
168
|
-
$[2] = submit;
|
|
169
|
-
$[3] = t1;
|
|
170
|
-
} else {
|
|
171
|
-
t1 = $[3];
|
|
172
|
-
}
|
|
173
|
-
const save = t1;
|
|
174
|
-
let t2;
|
|
175
|
-
if ($[4] !== disabled || $[5] !== save || $[6] !== t) {
|
|
176
|
-
t2 = _jsx(FormSubmit, {
|
|
177
|
-
buttonStyle: "secondary",
|
|
178
|
-
className: `${baseClass}__draft`,
|
|
179
|
-
disabled,
|
|
180
|
-
onClick: save,
|
|
181
|
-
children: t("version:saveDraft")
|
|
182
|
-
});
|
|
183
|
-
$[4] = disabled;
|
|
184
|
-
$[5] = save;
|
|
185
|
-
$[6] = t;
|
|
186
|
-
$[7] = t2;
|
|
187
|
-
} else {
|
|
188
|
-
t2 = $[7];
|
|
189
|
-
}
|
|
190
|
-
return t2;
|
|
191
|
-
};
|
|
12
|
+
import { EditManyDrawerContent } from './DrawerContent.js';
|
|
13
|
+
export const baseClass = 'edit-many';
|
|
192
14
|
export const EditMany = props => {
|
|
15
|
+
const $ = _c(7);
|
|
193
16
|
const {
|
|
194
|
-
collection:
|
|
195
|
-
slug,
|
|
196
|
-
fields,
|
|
197
|
-
labels: {
|
|
198
|
-
plural
|
|
199
|
-
}
|
|
200
|
-
} = {},
|
|
201
|
-
collection
|
|
17
|
+
collection: t0
|
|
202
18
|
} = props;
|
|
203
19
|
const {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
} = useAuth();
|
|
207
|
-
const {
|
|
208
|
-
closeModal
|
|
209
|
-
} = useModal();
|
|
210
|
-
const {
|
|
211
|
-
config: {
|
|
212
|
-
routes: {
|
|
213
|
-
api: apiRoute
|
|
214
|
-
},
|
|
215
|
-
serverURL
|
|
216
|
-
}
|
|
217
|
-
} = useConfig();
|
|
20
|
+
slug
|
|
21
|
+
} = t0;
|
|
218
22
|
const {
|
|
219
|
-
|
|
220
|
-
} =
|
|
23
|
+
permissions
|
|
24
|
+
} = useAuth();
|
|
221
25
|
const {
|
|
222
|
-
count,
|
|
223
|
-
getQueryParams,
|
|
224
26
|
selectAll
|
|
225
27
|
} = useSelection();
|
|
226
28
|
const {
|
|
227
|
-
i18n,
|
|
228
29
|
t
|
|
229
30
|
} = useTranslation();
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
} = useRouteCache();
|
|
31
|
+
let t1;
|
|
32
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
33
|
+
t1 = [];
|
|
34
|
+
$[0] = t1;
|
|
35
|
+
} else {
|
|
36
|
+
t1 = $[0];
|
|
37
|
+
}
|
|
38
|
+
const [selected, setSelected] = useState(t1);
|
|
239
39
|
const collectionPermissions = permissions?.collections?.[slug];
|
|
240
40
|
const hasUpdatePermission = collectionPermissions?.update;
|
|
241
41
|
const drawerSlug = `edit-${slug}`;
|
|
242
|
-
React.useEffect(() => {
|
|
243
|
-
const controller = new AbortController();
|
|
244
|
-
if (!hasInitializedState.current) {
|
|
245
|
-
const getInitialState = async () => {
|
|
246
|
-
const {
|
|
247
|
-
state: result
|
|
248
|
-
} = await getFormState({
|
|
249
|
-
collectionSlug: slug,
|
|
250
|
-
data: {},
|
|
251
|
-
docPermissions: collectionPermissions,
|
|
252
|
-
docPreferences: null,
|
|
253
|
-
operation: 'update',
|
|
254
|
-
schemaPath: slug,
|
|
255
|
-
signal: controller.signal
|
|
256
|
-
});
|
|
257
|
-
setInitialState(result);
|
|
258
|
-
hasInitializedState.current = true;
|
|
259
|
-
};
|
|
260
|
-
void getInitialState();
|
|
261
|
-
}
|
|
262
|
-
return () => {
|
|
263
|
-
abortAndIgnore(controller);
|
|
264
|
-
};
|
|
265
|
-
}, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions]);
|
|
266
|
-
const onChange = useCallback(async ({
|
|
267
|
-
formState: prevFormState
|
|
268
|
-
}) => {
|
|
269
|
-
const controller_0 = handleAbortRef(abortFormStateRef);
|
|
270
|
-
const {
|
|
271
|
-
state
|
|
272
|
-
} = await getFormState({
|
|
273
|
-
collectionSlug: slug,
|
|
274
|
-
docPermissions: collectionPermissions,
|
|
275
|
-
docPreferences: null,
|
|
276
|
-
formState: prevFormState,
|
|
277
|
-
operation: 'update',
|
|
278
|
-
schemaPath: slug,
|
|
279
|
-
signal: controller_0.signal
|
|
280
|
-
});
|
|
281
|
-
abortFormStateRef.current = null;
|
|
282
|
-
return state;
|
|
283
|
-
}, [getFormState, slug, collectionPermissions]);
|
|
284
|
-
useEffect(() => {
|
|
285
|
-
const abortFormState = abortFormStateRef.current;
|
|
286
|
-
return () => {
|
|
287
|
-
abortAndIgnore(abortFormState);
|
|
288
|
-
};
|
|
289
|
-
}, []);
|
|
290
|
-
const queryString = useMemo(() => {
|
|
291
|
-
const queryWithSearch = mergeListSearchAndWhere({
|
|
292
|
-
collectionConfig: collection,
|
|
293
|
-
search: searchParams.get('search')
|
|
294
|
-
});
|
|
295
|
-
return getQueryParams(queryWithSearch);
|
|
296
|
-
}, [collection, searchParams, getQueryParams]);
|
|
297
|
-
const onSuccess = () => {
|
|
298
|
-
router.replace(qs.stringify({
|
|
299
|
-
...parseSearchParams(searchParams),
|
|
300
|
-
page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined
|
|
301
|
-
}, {
|
|
302
|
-
addQueryPrefix: true
|
|
303
|
-
}));
|
|
304
|
-
clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this
|
|
305
|
-
;
|
|
306
|
-
closeModal(drawerSlug);
|
|
307
|
-
};
|
|
308
42
|
if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {
|
|
309
43
|
return null;
|
|
310
44
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
onClick: () => {
|
|
45
|
+
let t2;
|
|
46
|
+
if ($[1] !== drawerSlug || $[2] !== props.collection || $[3] !== selected || $[4] !== t) {
|
|
47
|
+
let t3;
|
|
48
|
+
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
|
|
49
|
+
t3 = () => {
|
|
317
50
|
setSelected([]);
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
51
|
+
};
|
|
52
|
+
$[6] = t3;
|
|
53
|
+
} else {
|
|
54
|
+
t3 = $[6];
|
|
55
|
+
}
|
|
56
|
+
t2 = _jsxs("div", {
|
|
57
|
+
className: baseClass,
|
|
58
|
+
children: [_jsx(DrawerToggler, {
|
|
59
|
+
"aria-label": t("general:edit"),
|
|
60
|
+
className: `${baseClass}__toggle`,
|
|
61
|
+
onClick: t3,
|
|
324
62
|
slug: drawerSlug,
|
|
325
|
-
children:
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
mostRecentVersionIsAutosaved: false,
|
|
335
|
-
unpublishedVersionCount: 0,
|
|
336
|
-
versionCount: 0,
|
|
337
|
-
children: /*#__PURE__*/_jsx(OperationContext.Provider, {
|
|
338
|
-
value: "update",
|
|
339
|
-
children: /*#__PURE__*/_jsxs("div", {
|
|
340
|
-
className: `${baseClass}__main`,
|
|
341
|
-
children: [/*#__PURE__*/_jsxs("div", {
|
|
342
|
-
className: `${baseClass}__header`,
|
|
343
|
-
children: [/*#__PURE__*/_jsx("h2", {
|
|
344
|
-
className: `${baseClass}__header__title`,
|
|
345
|
-
children: t('general:editingLabel', {
|
|
346
|
-
count,
|
|
347
|
-
label: getTranslation(plural, i18n)
|
|
348
|
-
})
|
|
349
|
-
}), /*#__PURE__*/_jsx("button", {
|
|
350
|
-
"aria-label": t('general:close'),
|
|
351
|
-
className: `${baseClass}__header__close`,
|
|
352
|
-
id: `close-drawer__${drawerSlug}`,
|
|
353
|
-
onClick: () => closeModal(drawerSlug),
|
|
354
|
-
type: "button",
|
|
355
|
-
children: /*#__PURE__*/_jsx(XIcon, {})
|
|
356
|
-
})]
|
|
357
|
-
}), /*#__PURE__*/_jsxs(Form, {
|
|
358
|
-
className: `${baseClass}__form`,
|
|
359
|
-
initialState: initialState,
|
|
360
|
-
onChange: [onChange],
|
|
361
|
-
onSuccess: onSuccess,
|
|
362
|
-
children: [/*#__PURE__*/_jsx(FieldSelect, {
|
|
363
|
-
fields: fields,
|
|
364
|
-
setSelected: setSelected
|
|
365
|
-
}), selected.length === 0 ? null : /*#__PURE__*/_jsx(RenderFields, {
|
|
366
|
-
fields: selected,
|
|
367
|
-
parentIndexPath: "",
|
|
368
|
-
parentPath: "",
|
|
369
|
-
parentSchemaPath: slug,
|
|
370
|
-
permissions: collectionPermissions?.fields,
|
|
371
|
-
readOnly: false
|
|
372
|
-
}), /*#__PURE__*/_jsx("div", {
|
|
373
|
-
className: `${baseClass}__sidebar-wrap`,
|
|
374
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
375
|
-
className: `${baseClass}__sidebar`,
|
|
376
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
377
|
-
className: `${baseClass}__sidebar-sticky-wrap`,
|
|
378
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
379
|
-
className: `${baseClass}__document-actions`,
|
|
380
|
-
children: collection?.versions?.drafts ? /*#__PURE__*/_jsxs(React.Fragment, {
|
|
381
|
-
children: [/*#__PURE__*/_jsx(SaveDraftButton, {
|
|
382
|
-
action: `${serverURL}${apiRoute}/${slug}${queryString}&draft=true`,
|
|
383
|
-
disabled: selected.length === 0,
|
|
384
|
-
selected: selected
|
|
385
|
-
}), /*#__PURE__*/_jsx(PublishButton, {
|
|
386
|
-
action: `${serverURL}${apiRoute}/${slug}${queryString}&draft=true`,
|
|
387
|
-
disabled: selected.length === 0,
|
|
388
|
-
selected: selected
|
|
389
|
-
})]
|
|
390
|
-
}) : /*#__PURE__*/_jsx(Submit, {
|
|
391
|
-
action: `${serverURL}${apiRoute}/${slug}${queryString}`,
|
|
392
|
-
disabled: selected.length === 0,
|
|
393
|
-
selected: selected
|
|
394
|
-
})
|
|
395
|
-
})
|
|
396
|
-
})
|
|
397
|
-
})
|
|
398
|
-
})]
|
|
399
|
-
})]
|
|
400
|
-
})
|
|
63
|
+
children: t("general:edit")
|
|
64
|
+
}), _jsx(EditDepthProvider, {
|
|
65
|
+
children: _jsx(Drawer, {
|
|
66
|
+
Header: null,
|
|
67
|
+
slug: drawerSlug,
|
|
68
|
+
children: _jsx(EditManyDrawerContent, {
|
|
69
|
+
collection: props.collection,
|
|
70
|
+
drawerSlug,
|
|
71
|
+
selected
|
|
401
72
|
})
|
|
402
73
|
})
|
|
403
|
-
})
|
|
404
|
-
})
|
|
405
|
-
|
|
74
|
+
})]
|
|
75
|
+
});
|
|
76
|
+
$[1] = drawerSlug;
|
|
77
|
+
$[2] = props.collection;
|
|
78
|
+
$[3] = selected;
|
|
79
|
+
$[4] = t;
|
|
80
|
+
$[5] = t2;
|
|
81
|
+
} else {
|
|
82
|
+
t2 = $[5];
|
|
83
|
+
}
|
|
84
|
+
return t2;
|
|
406
85
|
};
|
|
407
86
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","EditDepthProvider","OperationContext","useRouteCache","SelectAllStatus","useSelection","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","mergeListSearchAndWhere","parseSearchParams","Drawer","DrawerToggler","FieldSelect","baseClass","sanitizeUnselectedFields","formState","selected","filteredData","reduce","acc","field","foundState","path","value","Submit","t0","$","action","disabled","submit","t","t1","method","overrides","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","_status","SaveDraftButton","buttonStyle","EditMany","props","collection","slug","fields","labels","plural","permissions","user","closeModal","config","routes","api","apiRoute","serverURL","getFormState","count","getQueryParams","selectAll","i18n","setSelected","searchParams","router","initialState","setInitialState","hasInitializedState","useRef","abortFormStateRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","controller","AbortController","current","getInitialState","state","result","collectionSlug","data","docPermissions","docPreferences","operation","schemaPath","signal","onChange","prevFormState","abortFormState","queryString","queryWithSearch","collectionConfig","search","get","onSuccess","replace","stringify","page","AllAvailable","undefined","addQueryPrefix","None","_jsxs","Header","currentEditor","hasPublishedDoc","id","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","Provider","label","type","length","parentIndexPath","parentPath","parentSchemaPath","readOnly","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport './index.scss'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\n\nconst baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nconst sanitizeUnselectedFields = (formState: FormState, selected: FieldWithPathClient[]) => {\n const filteredData = selected.reduce((acc, field) => {\n const foundState = formState?.[field.path]\n\n if (foundState) {\n acc[field.path] = formState?.[field.path]?.value\n }\n\n return acc\n }, {} as FormData)\n\n return filteredData\n}\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n readonly selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => sanitizeUnselectedFields(formState, selected),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'published',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'draft',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { collection: { slug, fields, labels: { plural } } = {}, collection } = props\n\n const { permissions, user } = useAuth()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n const searchParams = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n const controller = new AbortController()\n\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const { state: result } = await getFormState({\n collectionSlug: slug,\n data: {},\n docPermissions: collectionPermissions,\n docPreferences: null,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, slug, collectionPermissions],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo(() => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n return getQueryParams(queryWithSearch)\n }, [collection, searchParams, getQueryParams])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n closeModal(drawerSlug)\n }\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider\n collectionSlug={slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n initialState={initialState}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fields={fields} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields\n fields={selected}\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={slug}\n permissions={collectionPermissions?.fields}\n readOnly={false}\n />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${queryString}`}\n disabled={selected.length === 0}\n selected={selected}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","DrawerToggler","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","selectAll","t","t1","Symbol","for","selected","setSelected","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","None","t2","t3","_jsxs","className","children","_jsx","onClick","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selected={selected}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,OAAO;AACP,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBf,OAAA;EAExB;IAAAgB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAP,CAAA,QAAAQ,MAAA,CAAAC,GAAA;IACkDF,EAAA;IAAEP,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAlE,OAAAU,QAAA,EAAAC,WAAA,IAAgCvB,QAAA,CAAgCmB,EAAE;EAElE,MAAAK,qBAAA,GAA8BR,WAAA,EAAAS,WAAA,GAA2BV,IAAA;EACzD,MAAAW,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQb,IAAA,EAAM;EAAA,IAE7BE,SAAA,KAAAd,eAAA,CAAA0B,IAAkC,KAAKH,mBAAA;IAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAU,QAAA,IAAAV,CAAA,QAAAM,CAAA;IAAA,IAAAa,EAAA;IAAA,IAAAnB,CAAA,QAAAQ,MAAA,CAAAC,GAAA;MAS5BU,EAAA,GAAAA,CAAA;QACPR,WAAA,GAAc;MAAA;MAChBX,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IANJkB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAxB,SAAA;MAAAyB,QAAA,GACCC,IAAA,CAAA5B,aAAA;QAAA,cACcW,CAAA,CAAE;QAAAe,SAAA,EACH,GAAAxB,SAAA,UAAsB;QAAA2B,OAAA,EACxBL,EAET;QAAAhB,IAAA,EACMa,UAAA;QAAAM,QAAA,EAELhB,CAAA,CAAE;MAAA,C,GAELiB,IAAA,CAAAjC,iBAAA;QAAAgC,QAAA,EACEC,IAAA,CAAA7B,MAAA;UAAA+B,MAAA;UAAAtB,IAAA,EAA4Ba,UAAA;UAAAM,QAAA,EAC1BC,IAAA,CAAA3B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAe,UAAA;YAAAN;UAAA,C;;;;;;;;;;;;SAdpBQ,E;CAsBJ","ignoreList":[]}
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{n as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=DatePicker-
|
|
13
|
+
import{n as a}from"./chunk-EG3ZOHFS.js";import"./chunk-5LKBKI4T.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=DatePicker-THCU4KZJ.js.map
|