@payloadcms/next 3.73.0 → 3.74.0-internal.097fb57
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EAEvB,gBAAgB,EAGjB,MAAM,SAAS,CAAA;AAehB,OAAO,KAAmB,MAAM,OAAO,CAAA;AASvC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EACd,gBAAgB,GAChB,KAAK,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CAAC,CAAA;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,GAAG,oBAAoB,CAAA;AAExB;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIpB,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EAEvB,gBAAgB,EAGjB,MAAM,SAAS,CAAA;AAehB,OAAO,KAAmB,MAAM,OAAO,CAAA;AASvC;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,iBAAiB,CAAC,EACd,gBAAgB,GAChB,KAAK,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CAAC,CAAA;IAC9F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,GAAG,oBAAoB,CAAA;AAExB;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC;IACT,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;CACtB,CAiWA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAYjD,CAAA"}
|
package/dist/views/List/index.js
CHANGED
|
@@ -56,7 +56,7 @@ export const renderListView = async args => {
|
|
|
56
56
|
},
|
|
57
57
|
visibleEntities
|
|
58
58
|
} = initPageResult;
|
|
59
|
-
if (!permissions?.collections?.[collectionSlug]?.read) {
|
|
59
|
+
if (!collectionConfig || !permissions?.collections?.[collectionSlug]?.read || !visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {
|
|
60
60
|
throw new Error('not-found');
|
|
61
61
|
}
|
|
62
62
|
const query = queryFromArgs || queryFromReq;
|
|
@@ -84,257 +84,251 @@ export const renderListView = async args => {
|
|
|
84
84
|
admin: adminRoute
|
|
85
85
|
}
|
|
86
86
|
} = config;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
whereWithMergedSearch = {
|
|
106
|
-
and: [whereWithMergedSearch, {
|
|
107
|
-
deletedAt: {
|
|
108
|
-
exists: true
|
|
109
|
-
}
|
|
110
|
-
}]
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
if (collectionPreferences?.preset) {
|
|
114
|
-
try {
|
|
115
|
-
queryPreset = await payload.findByID({
|
|
116
|
-
id: collectionPreferences?.preset,
|
|
117
|
-
collection: 'payload-query-presets',
|
|
118
|
-
depth: 0,
|
|
119
|
-
overrideAccess: false,
|
|
120
|
-
user
|
|
121
|
-
});
|
|
122
|
-
if (queryPreset) {
|
|
123
|
-
queryPresetPermissions = await getDocumentPermissions({
|
|
124
|
-
id: queryPreset.id,
|
|
125
|
-
collectionConfig: config.collections.find(c => c.slug === 'payload-query-presets'),
|
|
126
|
-
data: queryPreset,
|
|
127
|
-
req
|
|
128
|
-
})?.then(({
|
|
129
|
-
docPermissions
|
|
130
|
-
}) => docPermissions);
|
|
87
|
+
const baseFilterConstraint = await (collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter)?.({
|
|
88
|
+
limit: query.limit,
|
|
89
|
+
page: query.page,
|
|
90
|
+
req,
|
|
91
|
+
sort: query.sort
|
|
92
|
+
});
|
|
93
|
+
let queryPreset;
|
|
94
|
+
let queryPresetPermissions;
|
|
95
|
+
let whereWithMergedSearch = mergeListSearchAndWhere({
|
|
96
|
+
collectionConfig,
|
|
97
|
+
search: typeof query?.search === 'string' ? query.search : undefined,
|
|
98
|
+
where: combineWhereConstraints([query?.where, baseFilterConstraint])
|
|
99
|
+
});
|
|
100
|
+
if (trash === true) {
|
|
101
|
+
whereWithMergedSearch = {
|
|
102
|
+
and: [whereWithMergedSearch, {
|
|
103
|
+
deletedAt: {
|
|
104
|
+
exists: true
|
|
131
105
|
}
|
|
132
|
-
}
|
|
133
|
-
req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
let Table = null;
|
|
137
|
-
let columnState = [];
|
|
138
|
-
let data = {
|
|
139
|
-
// no results default
|
|
140
|
-
docs: [],
|
|
141
|
-
hasNextPage: false,
|
|
142
|
-
hasPrevPage: false,
|
|
143
|
-
limit: query.limit,
|
|
144
|
-
nextPage: null,
|
|
145
|
-
page: 1,
|
|
146
|
-
pagingCounter: 0,
|
|
147
|
-
prevPage: null,
|
|
148
|
-
totalDocs: 0,
|
|
149
|
-
totalPages: 0
|
|
106
|
+
}]
|
|
150
107
|
};
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
clientConfig,
|
|
154
|
-
collectionConfig: clientCollectionConfig,
|
|
155
|
-
collectionSlug,
|
|
156
|
-
columns: collectionPreferences?.columns,
|
|
157
|
-
i18n,
|
|
158
|
-
permissions
|
|
159
|
-
});
|
|
160
|
-
const select = collectionConfig.admin.enableListViewSelectAPI ? transformColumnsToSelect(columns) : undefined;
|
|
161
|
-
/** Force select image fields for list view thumbnails */
|
|
162
|
-
appendUploadSelectFields({
|
|
163
|
-
collectionConfig,
|
|
164
|
-
select
|
|
165
|
-
});
|
|
108
|
+
}
|
|
109
|
+
if (collectionPreferences?.preset) {
|
|
166
110
|
try {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
drawerSlug,
|
|
180
|
-
enableRowSelections,
|
|
181
|
-
fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,
|
|
182
|
-
query,
|
|
183
|
-
req,
|
|
184
|
-
select,
|
|
185
|
-
trash,
|
|
186
|
-
user,
|
|
187
|
-
viewType,
|
|
188
|
-
where: whereWithMergedSearch
|
|
189
|
-
}));
|
|
190
|
-
// Enrich documents with correct display status for drafts
|
|
191
|
-
data = await enrichDocsWithVersionStatus({
|
|
192
|
-
collectionConfig,
|
|
193
|
-
data,
|
|
111
|
+
queryPreset = await payload.findByID({
|
|
112
|
+
id: collectionPreferences?.preset,
|
|
113
|
+
collection: 'payload-query-presets',
|
|
114
|
+
depth: 0,
|
|
115
|
+
overrideAccess: false,
|
|
116
|
+
user
|
|
117
|
+
});
|
|
118
|
+
if (queryPreset) {
|
|
119
|
+
queryPresetPermissions = await getDocumentPermissions({
|
|
120
|
+
id: queryPreset.id,
|
|
121
|
+
collectionConfig: config.collections.find(c => c.slug === 'payload-query-presets'),
|
|
122
|
+
data: queryPreset,
|
|
194
123
|
req
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
collection: collectionSlug,
|
|
199
|
-
depth: 0,
|
|
200
|
-
draft: true,
|
|
201
|
-
fallbackLocale: false,
|
|
202
|
-
includeLockStatus: true,
|
|
203
|
-
limit: query?.limit ? Number(query.limit) : undefined,
|
|
204
|
-
locale: req.locale,
|
|
205
|
-
overrideAccess: false,
|
|
206
|
-
page: query?.page ? Number(query.page) : undefined,
|
|
207
|
-
req,
|
|
208
|
-
select,
|
|
209
|
-
sort: query?.sort,
|
|
210
|
-
trash,
|
|
211
|
-
user,
|
|
212
|
-
where: whereWithMergedSearch
|
|
213
|
-
});
|
|
214
|
-
// Enrich documents with correct display status for drafts
|
|
215
|
-
data = await enrichDocsWithVersionStatus({
|
|
216
|
-
collectionConfig,
|
|
217
|
-
data,
|
|
218
|
-
req
|
|
219
|
-
});
|
|
220
|
-
({
|
|
221
|
-
columnState,
|
|
222
|
-
Table
|
|
223
|
-
} = renderTable({
|
|
224
|
-
clientCollectionConfig,
|
|
225
|
-
collectionConfig,
|
|
226
|
-
columns,
|
|
227
|
-
customCellProps,
|
|
228
|
-
data,
|
|
229
|
-
drawerSlug,
|
|
230
|
-
enableRowSelections,
|
|
231
|
-
fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,
|
|
232
|
-
i18n: req.i18n,
|
|
233
|
-
orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
|
|
234
|
-
payload: req.payload,
|
|
235
|
-
query,
|
|
236
|
-
req,
|
|
237
|
-
useAsTitle: collectionConfig.admin.useAsTitle,
|
|
238
|
-
viewType
|
|
239
|
-
}));
|
|
124
|
+
})?.then(({
|
|
125
|
+
docPermissions
|
|
126
|
+
}) => docPermissions);
|
|
240
127
|
}
|
|
241
128
|
} catch (err) {
|
|
242
|
-
|
|
243
|
-
// QueryErrors are expected when a user filters by a field they do not have access to
|
|
244
|
-
req.payload.logger.error({
|
|
245
|
-
err,
|
|
246
|
-
msg: `There was an error fetching the list view data for collection ${collectionSlug}`
|
|
247
|
-
});
|
|
248
|
-
throw err;
|
|
249
|
-
}
|
|
129
|
+
req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`);
|
|
250
130
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
131
|
+
}
|
|
132
|
+
let Table = null;
|
|
133
|
+
let columnState = [];
|
|
134
|
+
let data = {
|
|
135
|
+
// no results default
|
|
136
|
+
docs: [],
|
|
137
|
+
hasNextPage: false,
|
|
138
|
+
hasPrevPage: false,
|
|
139
|
+
limit: query.limit,
|
|
140
|
+
nextPage: null,
|
|
141
|
+
page: 1,
|
|
142
|
+
pagingCounter: 0,
|
|
143
|
+
prevPage: null,
|
|
144
|
+
totalDocs: 0,
|
|
145
|
+
totalPages: 0
|
|
146
|
+
};
|
|
147
|
+
const clientCollectionConfig = clientConfig.collections.find(c => c.slug === collectionSlug);
|
|
148
|
+
const columns = getColumns({
|
|
149
|
+
clientConfig,
|
|
150
|
+
collectionConfig: clientCollectionConfig,
|
|
151
|
+
collectionSlug,
|
|
152
|
+
columns: collectionPreferences?.columns,
|
|
153
|
+
i18n,
|
|
154
|
+
permissions
|
|
155
|
+
});
|
|
156
|
+
const select = collectionConfig.admin.enableListViewSelectAPI ? transformColumnsToSelect(columns) : undefined;
|
|
157
|
+
/** Force select image fields for list view thumbnails */
|
|
158
|
+
appendUploadSelectFields({
|
|
159
|
+
collectionConfig,
|
|
160
|
+
select
|
|
161
|
+
});
|
|
162
|
+
try {
|
|
163
|
+
if (collectionConfig.admin.groupBy && query.groupBy) {
|
|
164
|
+
({
|
|
165
|
+
columnState,
|
|
166
|
+
data,
|
|
167
|
+
Table
|
|
168
|
+
} = await handleGroupBy({
|
|
169
|
+
clientCollectionConfig,
|
|
170
|
+
clientConfig,
|
|
171
|
+
collectionConfig,
|
|
283
172
|
collectionSlug,
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
173
|
+
columns,
|
|
174
|
+
customCellProps,
|
|
175
|
+
drawerSlug,
|
|
176
|
+
enableRowSelections,
|
|
177
|
+
fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,
|
|
178
|
+
query,
|
|
179
|
+
req,
|
|
180
|
+
select,
|
|
181
|
+
trash,
|
|
182
|
+
user,
|
|
183
|
+
viewType,
|
|
184
|
+
where: whereWithMergedSearch
|
|
185
|
+
}));
|
|
186
|
+
// Enrich documents with correct display status for drafts
|
|
187
|
+
data = await enrichDocsWithVersionStatus({
|
|
188
|
+
collectionConfig,
|
|
189
|
+
data,
|
|
190
|
+
req
|
|
191
|
+
});
|
|
192
|
+
} else {
|
|
193
|
+
data = await req.payload.find({
|
|
194
|
+
collection: collectionSlug,
|
|
195
|
+
depth: 0,
|
|
196
|
+
draft: true,
|
|
197
|
+
fallbackLocale: false,
|
|
198
|
+
includeLockStatus: true,
|
|
199
|
+
limit: query?.limit ? Number(query.limit) : undefined,
|
|
200
|
+
locale: req.locale,
|
|
201
|
+
overrideAccess: false,
|
|
202
|
+
page: query?.page ? Number(query.page) : undefined,
|
|
203
|
+
req,
|
|
204
|
+
select,
|
|
205
|
+
sort: query?.sort,
|
|
206
|
+
trash,
|
|
207
|
+
user,
|
|
208
|
+
where: whereWithMergedSearch
|
|
209
|
+
});
|
|
210
|
+
// Enrich documents with correct display status for drafts
|
|
211
|
+
data = await enrichDocsWithVersionStatus({
|
|
212
|
+
collectionConfig,
|
|
213
|
+
data,
|
|
214
|
+
req
|
|
215
|
+
});
|
|
216
|
+
({
|
|
217
|
+
columnState,
|
|
218
|
+
Table
|
|
219
|
+
} = renderTable({
|
|
220
|
+
clientCollectionConfig,
|
|
221
|
+
collectionConfig,
|
|
222
|
+
columns,
|
|
223
|
+
customCellProps,
|
|
224
|
+
data,
|
|
225
|
+
drawerSlug,
|
|
226
|
+
enableRowSelections,
|
|
227
|
+
fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,
|
|
228
|
+
i18n: req.i18n,
|
|
229
|
+
orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
|
|
230
|
+
payload: req.payload,
|
|
231
|
+
query,
|
|
232
|
+
req,
|
|
233
|
+
useAsTitle: collectionConfig.admin.useAsTitle,
|
|
234
|
+
viewType
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
} catch (err) {
|
|
238
|
+
if (err.name !== 'QueryError') {
|
|
239
|
+
// QueryErrors are expected when a user filters by a field they do not have access to
|
|
240
|
+
req.payload.logger.error({
|
|
241
|
+
err,
|
|
242
|
+
msg: `There was an error fetching the list view data for collection ${collectionSlug}`
|
|
243
|
+
});
|
|
244
|
+
throw err;
|
|
245
|
+
}
|
|
336
246
|
}
|
|
337
|
-
|
|
247
|
+
const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap);
|
|
248
|
+
const resolvedFilterOptions = await resolveAllFilterOptions({
|
|
249
|
+
fields: collectionConfig.fields,
|
|
250
|
+
req
|
|
251
|
+
});
|
|
252
|
+
const staticDescription = typeof collectionConfig.admin.description === 'function' ? collectionConfig.admin.description({
|
|
253
|
+
t: i18n.t
|
|
254
|
+
}) : collectionConfig.admin.description;
|
|
255
|
+
const newDocumentURL = formatAdminURL({
|
|
256
|
+
adminRoute,
|
|
257
|
+
path: `/collections/${collectionSlug}/create`
|
|
258
|
+
});
|
|
259
|
+
const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create;
|
|
260
|
+
const hasDeletePermission = permissions?.collections?.[collectionSlug]?.delete;
|
|
261
|
+
// Check if there's a notFound query parameter (document ID that wasn't found)
|
|
262
|
+
const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null;
|
|
263
|
+
const serverProps = {
|
|
264
|
+
collectionConfig,
|
|
265
|
+
data,
|
|
266
|
+
i18n,
|
|
267
|
+
limit: query.limit,
|
|
268
|
+
listPreferences: collectionPreferences,
|
|
269
|
+
listSearchableFields: collectionConfig.admin.listSearchableFields,
|
|
270
|
+
locale: fullLocale,
|
|
271
|
+
params,
|
|
272
|
+
payload,
|
|
273
|
+
permissions,
|
|
274
|
+
searchParams,
|
|
275
|
+
user
|
|
276
|
+
};
|
|
277
|
+
const listViewSlots = renderListViewSlots({
|
|
278
|
+
clientProps: {
|
|
279
|
+
collectionSlug,
|
|
280
|
+
hasCreatePermission,
|
|
281
|
+
hasDeletePermission,
|
|
282
|
+
newDocumentURL
|
|
283
|
+
},
|
|
284
|
+
collectionConfig,
|
|
285
|
+
description: staticDescription,
|
|
286
|
+
notFoundDocId,
|
|
287
|
+
payload,
|
|
288
|
+
serverProps
|
|
289
|
+
});
|
|
290
|
+
const isInDrawer = Boolean(drawerSlug);
|
|
291
|
+
// Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.
|
|
292
|
+
// Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.
|
|
293
|
+
query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined;
|
|
294
|
+
return {
|
|
295
|
+
List: /*#__PURE__*/_jsxs(Fragment, {
|
|
296
|
+
children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
|
|
297
|
+
permissions: permissions
|
|
298
|
+
}), /*#__PURE__*/_jsx(ListQueryProvider, {
|
|
299
|
+
collectionSlug: collectionSlug,
|
|
300
|
+
data: data,
|
|
301
|
+
modifySearchParams: !isInDrawer,
|
|
302
|
+
orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,
|
|
303
|
+
query: query,
|
|
304
|
+
children: RenderServerComponent({
|
|
305
|
+
clientProps: {
|
|
306
|
+
...listViewSlots,
|
|
307
|
+
collectionSlug,
|
|
308
|
+
columnState,
|
|
309
|
+
disableBulkDelete,
|
|
310
|
+
disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,
|
|
311
|
+
disableQueryPresets,
|
|
312
|
+
enableRowSelections,
|
|
313
|
+
hasCreatePermission,
|
|
314
|
+
hasDeletePermission,
|
|
315
|
+
listPreferences: collectionPreferences,
|
|
316
|
+
newDocumentURL,
|
|
317
|
+
queryPreset,
|
|
318
|
+
queryPresetPermissions,
|
|
319
|
+
renderedFilters,
|
|
320
|
+
resolvedFilterOptions,
|
|
321
|
+
Table,
|
|
322
|
+
viewType
|
|
323
|
+
},
|
|
324
|
+
Component: ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,
|
|
325
|
+
Fallback: DefaultListView,
|
|
326
|
+
importMap: payload.importMap,
|
|
327
|
+
serverProps
|
|
328
|
+
})
|
|
329
|
+
})]
|
|
330
|
+
})
|
|
331
|
+
};
|
|
338
332
|
};
|
|
339
333
|
export const ListView = async args => {
|
|
340
334
|
try {
|
|
@@ -346,6 +340,7 @@ export const ListView = async args => {
|
|
|
346
340
|
});
|
|
347
341
|
return RenderedList;
|
|
348
342
|
} catch (error) {
|
|
343
|
+
// Pass through Next.js errors
|
|
349
344
|
if (error.message === 'not-found') {
|
|
350
345
|
notFound();
|
|
351
346
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","page","admin","pagination","defaultLimit","defaultSort","routes","adminRoute","includes","baseFilterConstraint","baseFilter","baseListFilter","queryPreset","queryPresetPermissions","whereWithMergedSearch","search","where","and","deletedAt","exists","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","delete","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n query.preset = collectionPreferences?.preset\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n query.groupBy = collectionPreferences?.groupBy\n\n query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || [])\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility) {\n throw new Error('not-found')\n }\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: collectionPreferences?.columns,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n const hasDeletePermission = permissions?.collections?.[collectionSlug]?.delete\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","getColumns","renderFilters","renderTable","upsertPreferences","notFound","appendUploadSelectFields","combineWhereConstraints","formatAdminURL","isNumber","mergeListSearchAndWhere","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","getDocumentPermissions","enrichDocsWithVersionStatus","handleGroupBy","renderListViewSlots","resolveAllFilterOptions","transformColumnsToSelect","renderListView","args","clientConfig","ComponentOverride","customCellProps","disableBulkDelete","disableBulkEdit","disableQueryPresets","drawerSlug","enableRowSelections","initPageResult","overrideEntityVisibility","params","query","queryFromArgs","searchParams","trash","viewType","collectionConfig","slug","collectionSlug","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","includes","Error","columnsFromQuery","columns","queryByGroup","JSON","parse","collectionPreferences","key","value","groupBy","limit","Number","undefined","preset","sort","page","admin","pagination","defaultLimit","defaultSort","routes","adminRoute","baseFilterConstraint","baseFilter","baseListFilter","queryPreset","queryPresetPermissions","whereWithMergedSearch","search","where","and","deletedAt","exists","findByID","id","collection","depth","overrideAccess","find","c","data","then","docPermissions","err","logger","error","Table","columnState","docs","hasNextPage","hasPrevPage","nextPage","pagingCounter","prevPage","totalDocs","totalPages","clientCollectionConfig","select","enableListViewSelectAPI","fieldPermissions","fields","draft","fallbackLocale","includeLockStatus","orderableFieldName","orderable","useAsTitle","name","msg","renderedFilters","importMap","resolvedFilterOptions","staticDescription","description","t","newDocumentURL","path","hasCreatePermission","create","hasDeletePermission","delete","notFoundDocId","serverProps","listPreferences","listSearchableFields","listViewSlots","clientProps","isInDrawer","Boolean","stringify","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","ListView","RenderedList","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Column,\n ColumnPreference,\n ListQuery,\n ListViewClientProps,\n ListViewServerPropsOnly,\n PaginatedDocs,\n PayloadComponent,\n QueryPreset,\n SanitizedCollectionPermission,\n} from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { getColumns, renderFilters, renderTable, upsertPreferences } from '@payloadcms/ui/rsc'\nimport { notFound } from 'next/navigation.js'\nimport {\n appendUploadSelectFields,\n combineWhereConstraints,\n formatAdminURL,\n isNumber,\n mergeListSearchAndWhere,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { getDocumentPermissions } from '../Document/getDocumentPermissions.js'\nimport { enrichDocsWithVersionStatus } from './enrichDocsWithVersionStatus.js'\nimport { handleGroupBy } from './handleGroupBy.js'\nimport { renderListViewSlots } from './renderListViewSlots.js'\nimport { resolveAllFilterOptions } from './resolveAllFilterOptions.js'\nimport { transformColumnsToSelect } from './transformColumnsToSelect.js'\n\n/**\n * @internal\n */\nexport type RenderListViewArgs = {\n /**\n * Allows providing your own list view component. This will override the default list view component and\n * the collection's configured list view component (if any).\n */\n ComponentOverride?:\n | PayloadComponent\n | React.ComponentType<ListViewClientProps | (ListViewClientProps & ListViewServerPropsOnly)>\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n disableQueryPresets?: boolean\n drawerSlug?: string\n enableRowSelections: boolean\n overrideEntityVisibility?: boolean\n /**\n * If not ListQuery is provided, `req.query` will be used.\n */\n query?: ListQuery\n redirectAfterDelete?: boolean\n redirectAfterDuplicate?: boolean\n /**\n * @experimental This prop is subject to change in future releases.\n */\n trash?: boolean\n} & AdminViewServerProps\n\n/**\n * This function is responsible for rendering\n * the list view on the server for both:\n * - default list view\n * - list view within drawers\n *\n * @internal\n */\nexport const renderListView = async (\n args: RenderListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n ComponentOverride,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n overrideEntityVisibility,\n params,\n query: queryFromArgs,\n searchParams,\n trash,\n viewType,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: { slug: collectionSlug },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (\n !collectionConfig ||\n !permissions?.collections?.[collectionSlug]?.read ||\n (!visibleEntities.collections.includes(collectionSlug) && !overrideEntityVisibility)\n ) {\n throw new Error('not-found')\n }\n\n const query: ListQuery = queryFromArgs || queryFromReq\n\n const columnsFromQuery: ColumnPreference[] = transformColumnsToPreferences(query?.columns)\n\n query.queryByGroup =\n query?.queryByGroup && typeof query.queryByGroup === 'string'\n ? JSON.parse(query.queryByGroup)\n : query?.queryByGroup\n\n const collectionPreferences = await upsertPreferences<CollectionPreferences>({\n key: `collection-${collectionSlug}`,\n req,\n value: {\n columns: columnsFromQuery,\n groupBy: query?.groupBy,\n limit: isNumber(query?.limit) ? Number(query.limit) : undefined,\n preset: query?.preset,\n sort: query?.sort as string,\n },\n })\n\n query.preset = collectionPreferences?.preset\n\n query.page = isNumber(query?.page) ? Number(query.page) : 0\n\n query.limit = collectionPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n query.sort =\n collectionPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined)\n\n query.groupBy = collectionPreferences?.groupBy\n\n query.columns = transformColumnsToSearchParams(collectionPreferences?.columns || [])\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const baseFilterConstraint = await (\n collectionConfig.admin?.baseFilter ?? collectionConfig.admin?.baseListFilter\n )?.({\n limit: query.limit,\n page: query.page,\n req,\n sort: query.sort,\n })\n\n let queryPreset: QueryPreset | undefined\n let queryPresetPermissions: SanitizedCollectionPermission | undefined\n\n let whereWithMergedSearch = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: combineWhereConstraints([query?.where, baseFilterConstraint]),\n })\n\n if (trash === true) {\n whereWithMergedSearch = {\n and: [\n whereWithMergedSearch,\n {\n deletedAt: {\n exists: true,\n },\n },\n ],\n }\n }\n\n if (collectionPreferences?.preset) {\n try {\n queryPreset = (await payload.findByID({\n id: collectionPreferences?.preset,\n collection: 'payload-query-presets',\n depth: 0,\n overrideAccess: false,\n user,\n })) as QueryPreset\n\n if (queryPreset) {\n queryPresetPermissions = await getDocumentPermissions({\n id: queryPreset.id,\n collectionConfig: config.collections.find((c) => c.slug === 'payload-query-presets'),\n data: queryPreset,\n req,\n })?.then(({ docPermissions }) => docPermissions)\n }\n } catch (err) {\n req.payload.logger.error(`Error fetching query preset or preset permissions: ${err}`)\n }\n }\n\n let Table: React.ReactNode | React.ReactNode[] = null\n let columnState: Column[] = []\n let data: PaginatedDocs = {\n // no results default\n docs: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: query.limit,\n nextPage: null,\n page: 1,\n pagingCounter: 0,\n prevPage: null,\n totalDocs: 0,\n totalPages: 0,\n }\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const columns = getColumns({\n clientConfig,\n collectionConfig: clientCollectionConfig,\n collectionSlug,\n columns: collectionPreferences?.columns,\n i18n,\n permissions,\n })\n\n const select = collectionConfig.admin.enableListViewSelectAPI\n ? transformColumnsToSelect(columns)\n : undefined\n\n /** Force select image fields for list view thumbnails */\n appendUploadSelectFields({\n collectionConfig,\n select,\n })\n\n try {\n if (collectionConfig.admin.groupBy && query.groupBy) {\n ;({ columnState, data, Table } = await handleGroupBy({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collectionSlug,\n columns,\n customCellProps,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n query,\n req,\n select,\n trash,\n user,\n viewType,\n where: whereWithMergedSearch,\n }))\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n } else {\n data = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n includeLockStatus: true,\n limit: query?.limit ? Number(query.limit) : undefined,\n locale: req.locale,\n overrideAccess: false,\n page: query?.page ? Number(query.page) : undefined,\n req,\n select,\n sort: query?.sort,\n trash,\n user,\n where: whereWithMergedSearch,\n })\n\n // Enrich documents with correct display status for drafts\n data = await enrichDocsWithVersionStatus({\n collectionConfig,\n data,\n req,\n })\n ;({ columnState, Table } = renderTable({\n clientCollectionConfig,\n collectionConfig,\n columns,\n customCellProps,\n data,\n drawerSlug,\n enableRowSelections,\n fieldPermissions: permissions?.collections?.[collectionSlug]?.fields,\n i18n: req.i18n,\n orderableFieldName: collectionConfig.orderable === true ? '_order' : undefined,\n payload: req.payload,\n query,\n req,\n useAsTitle: collectionConfig.admin.useAsTitle,\n viewType,\n }))\n }\n } catch (err) {\n if (err.name !== 'QueryError') {\n // QueryErrors are expected when a user filters by a field they do not have access to\n req.payload.logger.error({\n err,\n msg: `There was an error fetching the list view data for collection ${collectionSlug}`,\n })\n throw err\n }\n }\n\n const renderedFilters = renderFilters(collectionConfig.fields, req.payload.importMap)\n\n const resolvedFilterOptions = await resolveAllFilterOptions({\n fields: collectionConfig.fields,\n req,\n })\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const newDocumentURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })\n\n const hasCreatePermission = permissions?.collections?.[collectionSlug]?.create\n const hasDeletePermission = permissions?.collections?.[collectionSlug]?.delete\n\n // Check if there's a notFound query parameter (document ID that wasn't found)\n const notFoundDocId = typeof searchParams?.notFound === 'string' ? searchParams.notFound : null\n\n const serverProps: ListViewServerPropsOnly = {\n collectionConfig,\n data,\n i18n,\n limit: query.limit,\n listPreferences: collectionPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }\n\n const listViewSlots = renderListViewSlots({\n clientProps: {\n collectionSlug,\n hasCreatePermission,\n hasDeletePermission,\n newDocumentURL,\n },\n collectionConfig,\n description: staticDescription,\n notFoundDocId,\n payload,\n serverProps,\n })\n\n const isInDrawer = Boolean(drawerSlug)\n\n // Needed to prevent: Only plain objects can be passed to Client Components from Server Components. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.\n // Is there a way to avoid this? The `where` object is already seemingly plain, but is not bc it originates from the params.\n query.where = query?.where ? JSON.parse(JSON.stringify(query?.where || {})) : undefined\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n modifySearchParams={!isInDrawer}\n orderableFieldName={collectionConfig.orderable === true ? '_order' : undefined}\n query={query}\n >\n {RenderServerComponent({\n clientProps: {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit: collectionConfig.disableBulkEdit ?? disableBulkEdit,\n disableQueryPresets,\n enableRowSelections,\n hasCreatePermission,\n hasDeletePermission,\n listPreferences: collectionPreferences,\n newDocumentURL,\n queryPreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n Table,\n viewType,\n } satisfies ListViewClientProps,\n Component:\n ComponentOverride ?? collectionConfig?.admin?.components?.views?.list?.Component,\n Fallback: DefaultListView,\n importMap: payload.importMap,\n serverProps,\n })}\n </ListQueryProvider>\n </Fragment>\n ),\n }\n}\n\nexport const ListView: React.FC<RenderListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n // Pass through Next.js errors\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":";AAcA,SAASA,eAAe,EAAEC,mBAAmB,EAAEC,iBAAiB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,EAAEC,aAAa,EAAEC,WAAW,EAAEC,iBAAiB,QAAQ;AAC1E,SAASC,QAAQ,QAAQ;AACzB,SACEC,wBAAwB,EACxBC,uBAAuB,EACvBC,cAAc,EACdC,QAAQ,EACRC,uBAAuB,EACvBC,6BAA6B,EAC7BC,8BAA8B,QACzB;AACP,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,aAAa,QAAQ;AAC9B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,wBAAwB,QAAQ;AAgCzC;;;;;;;;AAQA,OAAO,MAAMC,cAAA,GAAiB,MAC5BC,IAAA;EAIA,MAAM;IACJC,YAAY;IACZC,iBAAiB;IACjBC,eAAe;IACfC,iBAAiB;IACjBC,eAAe;IACfC,mBAAmB;IACnBC,UAAU;IACVC,mBAAmB;IACnBC,cAAc;IACdC,wBAAwB;IACxBC,MAAM;IACNC,KAAA,EAAOC,aAAa;IACpBC,YAAY;IACZC,KAAK;IACLC;EAAQ,CACT,GAAGhB,IAAA;EAEJ,MAAM;IACJiB,gBAAgB;IAChBA,gBAAA,EAAkB;MAAEC,IAAA,EAAMC;IAAc,CAAE;IAC1CC,MAAA,EAAQC,UAAU;IAClBC,WAAW;IACXC,GAAG;IACHA,GAAA,EAAK;MACHC,IAAI;MACJC,OAAO;MACPA,OAAA,EAAS;QAAEC;MAAM,CAAE;MACnBd,KAAA,EAAOe,YAAY;MACnBC;IAAI,CACL;IACDC;EAAe,CAChB,GAAGpB,cAAA;EAEJ,IACE,CAACQ,gBAAA,IACD,CAACK,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAEY,IAAA,IAC5C,CAACF,eAAA,CAAgBC,WAAW,CAACE,QAAQ,CAACb,cAAA,KAAmB,CAACT,wBAAA,EAC3D;IACA,MAAM,IAAIuB,KAAA,CAAM;EAClB;EAEA,MAAMrB,KAAA,GAAmBC,aAAA,IAAiBc,YAAA;EAE1C,MAAMO,gBAAA,GAAuC7C,6BAAA,CAA8BuB,KAAA,EAAOuB,OAAA;EAElFvB,KAAA,CAAMwB,YAAY,GAChBxB,KAAA,EAAOwB,YAAA,IAAgB,OAAOxB,KAAA,CAAMwB,YAAY,KAAK,WACjDC,IAAA,CAAKC,KAAK,CAAC1B,KAAA,CAAMwB,YAAY,IAC7BxB,KAAA,EAAOwB,YAAA;EAEb,MAAMG,qBAAA,GAAwB,MAAMzD,iBAAA,CAAyC;IAC3E0D,GAAA,EAAK,cAAcrB,cAAA,EAAgB;IACnCI,GAAA;IACAkB,KAAA,EAAO;MACLN,OAAA,EAASD,gBAAA;MACTQ,OAAA,EAAS9B,KAAA,EAAO8B,OAAA;MAChBC,KAAA,EAAOxD,QAAA,CAASyB,KAAA,EAAO+B,KAAA,IAASC,MAAA,CAAOhC,KAAA,CAAM+B,KAAK,IAAIE,SAAA;MACtDC,MAAA,EAAQlC,KAAA,EAAOkC,MAAA;MACfC,IAAA,EAAMnC,KAAA,EAAOmC;IACf;EACF;EAEAnC,KAAA,CAAMkC,MAAM,GAAGP,qBAAA,EAAuBO,MAAA;EAEtClC,KAAA,CAAMoC,IAAI,GAAG7D,QAAA,CAASyB,KAAA,EAAOoC,IAAA,IAAQJ,MAAA,CAAOhC,KAAA,CAAMoC,IAAI,IAAI;EAE1DpC,KAAA,CAAM+B,KAAK,GAAGJ,qBAAA,EAAuBI,KAAA,IAAS1B,gBAAA,CAAiBgC,KAAK,CAACC,UAAU,CAACC,YAAY;EAE5FvC,KAAA,CAAMmC,IAAI,GACRR,qBAAA,EAAuBQ,IAAA,KACtB,OAAO9B,gBAAA,CAAiBmC,WAAW,KAAK,WAAWnC,gBAAA,CAAiBmC,WAAW,GAAGP,SAAQ;EAE7FjC,KAAA,CAAM8B,OAAO,GAAGH,qBAAA,EAAuBG,OAAA;EAEvC9B,KAAA,CAAMuB,OAAO,GAAG7C,8BAAA,CAA+BiD,qBAAA,EAAuBJ,OAAA,IAAW,EAAE;EAEnF,MAAM;IACJkB,MAAA,EAAQ;MAAEJ,KAAA,EAAOK;IAAU;EAAE,CAC9B,GAAG5B,MAAA;EAEJ,MAAM6B,oBAAA,GAAuB,MAC3B,CAAAtC,gBAAA,CAAiBgC,KAAK,EAAEO,UAAA,IAAcvC,gBAAA,CAAiBgC,KAAK,EAAEQ,cAAa,IACzE;IACFd,KAAA,EAAO/B,KAAA,CAAM+B,KAAK;IAClBK,IAAA,EAAMpC,KAAA,CAAMoC,IAAI;IAChBzB,GAAA;IACAwB,IAAA,EAAMnC,KAAA,CAAMmC;EACd;EAEA,IAAIW,WAAA;EACJ,IAAIC,sBAAA;EAEJ,IAAIC,qBAAA,GAAwBxE,uBAAA,CAAwB;IAClD6B,gBAAA;IACA4C,MAAA,EAAQ,OAAOjD,KAAA,EAAOiD,MAAA,KAAW,WAAWjD,KAAA,CAAMiD,MAAM,GAAGhB,SAAA;IAC3DiB,KAAA,EAAO7E,uBAAA,CAAwB,CAAC2B,KAAA,EAAOkD,KAAA,EAAOP,oBAAA,CAAqB;EACrE;EAEA,IAAIxC,KAAA,KAAU,MAAM;IAClB6C,qBAAA,GAAwB;MACtBG,GAAA,EAAK,CACHH,qBAAA,EACA;QACEI,SAAA,EAAW;UACTC,MAAA,EAAQ;QACV;MACF;IAEJ;EACF;EAEA,IAAI1B,qBAAA,EAAuBO,MAAA,EAAQ;IACjC,IAAI;MACFY,WAAA,GAAe,MAAMjC,OAAA,CAAQyC,QAAQ,CAAC;QACpCC,EAAA,EAAI5B,qBAAA,EAAuBO,MAAA;QAC3BsB,UAAA,EAAY;QACZC,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChB1C;MACF;MAEA,IAAI8B,WAAA,EAAa;QACfC,sBAAA,GAAyB,MAAMlE,sBAAA,CAAuB;UACpD0E,EAAA,EAAIT,WAAA,CAAYS,EAAE;UAClBlD,gBAAA,EAAkBS,MAAA,CAAOI,WAAW,CAACyC,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEtD,IAAI,KAAK;UAC5DuD,IAAA,EAAMf,WAAA;UACNnC;QACF,IAAImD,IAAA,CAAK,CAAC;UAAEC;QAAc,CAAE,KAAKA,cAAA;MACnC;IACF,EAAE,OAAOC,GAAA,EAAK;MACZrD,GAAA,CAAIE,OAAO,CAACoD,MAAM,CAACC,KAAK,CAAC,sDAAsDF,GAAA,EAAK;IACtF;EACF;EAEA,IAAIG,KAAA,GAA6C;EACjD,IAAIC,WAAA,GAAwB,EAAE;EAC9B,IAAIP,IAAA,GAAsB;IACxB;IACAQ,IAAA,EAAM,EAAE;IACRC,WAAA,EAAa;IACbC,WAAA,EAAa;IACbxC,KAAA,EAAO/B,KAAA,CAAM+B,KAAK;IAClByC,QAAA,EAAU;IACVpC,IAAA,EAAM;IACNqC,aAAA,EAAe;IACfC,QAAA,EAAU;IACVC,SAAA,EAAW;IACXC,UAAA,EAAY;EACd;EAEA,MAAMC,sBAAA,GAAyBxF,YAAA,CAAa6B,WAAW,CAACyC,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEtD,IAAI,KAAKC,cAAA;EAE/E,MAAMgB,OAAA,GAAUxD,UAAA,CAAW;IACzBsB,YAAA;IACAgB,gBAAA,EAAkBwE,sBAAA;IAClBtE,cAAA;IACAgB,OAAA,EAASI,qBAAA,EAAuBJ,OAAA;IAChCX,IAAA;IACAF;EACF;EAEA,MAAMoE,MAAA,GAASzE,gBAAA,CAAiBgC,KAAK,CAAC0C,uBAAuB,GACzD7F,wBAAA,CAAyBqC,OAAA,IACzBU,SAAA;EAEJ;EACA7D,wBAAA,CAAyB;IACvBiC,gBAAA;IACAyE;EACF;EAEA,IAAI;IACF,IAAIzE,gBAAA,CAAiBgC,KAAK,CAACP,OAAO,IAAI9B,KAAA,CAAM8B,OAAO,EAAE;MACjD;QAAEsC,WAAW;QAAEP,IAAI;QAAEM;MAAK,CAAE,GAAG,MAAMpF,aAAA,CAAc;QACnD8F,sBAAA;QACAxF,YAAA;QACAgB,gBAAA;QACAE,cAAA;QACAgB,OAAA;QACAhC,eAAA;QACAI,UAAA;QACAC,mBAAA;QACAoF,gBAAA,EAAkBtE,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAE0E,MAAA;QAC9DjF,KAAA;QACAW,GAAA;QACAmE,MAAA;QACA3E,KAAA;QACAa,IAAA;QACAZ,QAAA;QACA8C,KAAA,EAAOF;MACT,EAAC;MAED;MACAa,IAAA,GAAO,MAAM/E,2BAAA,CAA4B;QACvCuB,gBAAA;QACAwD,IAAA;QACAlD;MACF;IACF,OAAO;MACLkD,IAAA,GAAO,MAAMlD,GAAA,CAAIE,OAAO,CAAC8C,IAAI,CAAC;QAC5BH,UAAA,EAAYjD,cAAA;QACZkD,KAAA,EAAO;QACPyB,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChBC,iBAAA,EAAmB;QACnBrD,KAAA,EAAO/B,KAAA,EAAO+B,KAAA,GAAQC,MAAA,CAAOhC,KAAA,CAAM+B,KAAK,IAAIE,SAAA;QAC5CzB,MAAA,EAAQG,GAAA,CAAIH,MAAM;QAClBkD,cAAA,EAAgB;QAChBtB,IAAA,EAAMpC,KAAA,EAAOoC,IAAA,GAAOJ,MAAA,CAAOhC,KAAA,CAAMoC,IAAI,IAAIH,SAAA;QACzCtB,GAAA;QACAmE,MAAA;QACA3C,IAAA,EAAMnC,KAAA,EAAOmC,IAAA;QACbhC,KAAA;QACAa,IAAA;QACAkC,KAAA,EAAOF;MACT;MAEA;MACAa,IAAA,GAAO,MAAM/E,2BAAA,CAA4B;QACvCuB,gBAAA;QACAwD,IAAA;QACAlD;MACF;MACE;QAAEyD,WAAW;QAAED;MAAK,CAAE,GAAGlG,WAAA,CAAY;QACrC4G,sBAAA;QACAxE,gBAAA;QACAkB,OAAA;QACAhC,eAAA;QACAsE,IAAA;QACAlE,UAAA;QACAC,mBAAA;QACAoF,gBAAA,EAAkBtE,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAE0E,MAAA;QAC9DrE,IAAA,EAAMD,GAAA,CAAIC,IAAI;QACdyE,kBAAA,EAAoBhF,gBAAA,CAAiBiF,SAAS,KAAK,OAAO,WAAWrD,SAAA;QACrEpB,OAAA,EAASF,GAAA,CAAIE,OAAO;QACpBb,KAAA;QACAW,GAAA;QACA4E,UAAA,EAAYlF,gBAAA,CAAiBgC,KAAK,CAACkD,UAAU;QAC7CnF;MACF,EAAC;IACH;EACF,EAAE,OAAO4D,GAAA,EAAK;IACZ,IAAIA,GAAA,CAAIwB,IAAI,KAAK,cAAc;MAC7B;MACA7E,GAAA,CAAIE,OAAO,CAACoD,MAAM,CAACC,KAAK,CAAC;QACvBF,GAAA;QACAyB,GAAA,EAAK,iEAAiElF,cAAA;MACxE;MACA,MAAMyD,GAAA;IACR;EACF;EAEA,MAAM0B,eAAA,GAAkB1H,aAAA,CAAcqC,gBAAA,CAAiB4E,MAAM,EAAEtE,GAAA,CAAIE,OAAO,CAAC8E,SAAS;EAEpF,MAAMC,qBAAA,GAAwB,MAAM3G,uBAAA,CAAwB;IAC1DgG,MAAA,EAAQ5E,gBAAA,CAAiB4E,MAAM;IAC/BtE;EACF;EAEA,MAAMkF,iBAAA,GACJ,OAAOxF,gBAAA,CAAiBgC,KAAK,CAACyD,WAAW,KAAK,aAC1CzF,gBAAA,CAAiBgC,KAAK,CAACyD,WAAW,CAAC;IAAEC,CAAA,EAAGnF,IAAA,CAAKmF;EAAE,KAC/C1F,gBAAA,CAAiBgC,KAAK,CAACyD,WAAW;EAExC,MAAME,cAAA,GAAiB1H,cAAA,CAAe;IACpCoE,UAAA;IACAuD,IAAA,EAAM,gBAAgB1F,cAAA;EACxB;EAEA,MAAM2F,mBAAA,GAAsBxF,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAE4F,MAAA;EACxE,MAAMC,mBAAA,GAAsB1F,WAAA,EAAaQ,WAAA,GAAcX,cAAA,CAAe,EAAE8F,MAAA;EAExE;EACA,MAAMC,aAAA,GAAgB,OAAOpG,YAAA,EAAc/B,QAAA,KAAa,WAAW+B,YAAA,CAAa/B,QAAQ,GAAG;EAE3F,MAAMoI,WAAA,GAAuC;IAC3ClG,gBAAA;IACAwD,IAAA;IACAjD,IAAA;IACAmB,KAAA,EAAO/B,KAAA,CAAM+B,KAAK;IAClByE,eAAA,EAAiB7E,qBAAA;IACjB8E,oBAAA,EAAsBpG,gBAAA,CAAiBgC,KAAK,CAACoE,oBAAoB;IACjEjG,MAAA,EAAQC,UAAA;IACRV,MAAA;IACAc,OAAA;IACAH,WAAA;IACAR,YAAA;IACAc;EACF;EAEA,MAAM0F,aAAA,GAAgB1H,mBAAA,CAAoB;IACxC2H,WAAA,EAAa;MACXpG,cAAA;MACA2F,mBAAA;MACAE,mBAAA;MACAJ;IACF;IACA3F,gBAAA;IACAyF,WAAA,EAAaD,iBAAA;IACbS,aAAA;IACAzF,OAAA;IACA0F;EACF;EAEA,MAAMK,UAAA,GAAaC,OAAA,CAAQlH,UAAA;EAE3B;EACA;EACAK,KAAA,CAAMkD,KAAK,GAAGlD,KAAA,EAAOkD,KAAA,GAAQzB,IAAA,CAAKC,KAAK,CAACD,IAAA,CAAKqF,SAAS,CAAC9G,KAAA,EAAOkD,KAAA,IAAS,CAAC,MAAMjB,SAAA;EAE9E,OAAO;IACL8E,IAAA,eACEC,KAAA,CAACpI,QAAA;8BACCqI,IAAA,CAACrJ,mBAAA;QAAoB8C,WAAA,EAAaA;uBAClCuG,IAAA,CAACpJ,iBAAA;QACC0C,cAAA,EAAgBA,cAAA;QAChBsD,IAAA,EAAMA,IAAA;QACNqD,kBAAA,EAAoB,CAACN,UAAA;QACrBvB,kBAAA,EAAoBhF,gBAAA,CAAiBiF,SAAS,KAAK,OAAO,WAAWrD,SAAA;QACrEjC,KAAA,EAAOA,KAAA;kBAENlC,qBAAA,CAAsB;UACrB6I,WAAA,EAAa;YACX,GAAGD,aAAa;YAChBnG,cAAA;YACA6D,WAAA;YACA5E,iBAAA;YACAC,eAAA,EAAiBY,gBAAA,CAAiBZ,eAAe,IAAIA,eAAA;YACrDC,mBAAA;YACAE,mBAAA;YACAsG,mBAAA;YACAE,mBAAA;YACAI,eAAA,EAAiB7E,qBAAA;YACjBqE,cAAA;YACAlD,WAAA;YACAC,sBAAA;YACA2C,eAAA;YACAE,qBAAA;YACAzB,KAAA;YACA/D;UACF;UACA+G,SAAA,EACE7H,iBAAA,IAAqBe,gBAAA,EAAkBgC,KAAA,EAAO+E,UAAA,EAAYC,KAAA,EAAOC,IAAA,EAAMH,SAAA;UACzEI,QAAA,EAAU5J,eAAA;UACVgI,SAAA,EAAW9E,OAAA,CAAQ8E,SAAS;UAC5BY;QACF;;;EAIR;AACF;AAEA,OAAO,MAAMiB,QAAA,GAAyC,MAAOpI,IAAA;EAC3D,IAAI;IACF,MAAM;MAAE2H,IAAA,EAAMU;IAAY,CAAE,GAAG,MAAMtI,cAAA,CAAe;MAAE,GAAGC,IAAI;MAAEQ,mBAAA,EAAqB;IAAK;IACzF,OAAO6H,YAAA;EACT,EAAE,OAAOvD,KAAA,EAAO;IACd;IACA,IAAIA,KAAA,CAAMwD,OAAO,KAAK,aAAa;MACjCvJ,QAAA;IACF,OAAO;MACLwJ,OAAA,CAAQzD,KAAK,CAACA,KAAA,GAAO;IACvB;EACF;AACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.74.0-internal.097fb57",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -99,9 +99,9 @@
|
|
|
99
99
|
"qs-esm": "7.0.2",
|
|
100
100
|
"sass": "1.77.4",
|
|
101
101
|
"uuid": "10.0.0",
|
|
102
|
-
"@payloadcms/graphql": "3.
|
|
103
|
-
"@payloadcms/
|
|
104
|
-
"@payloadcms/
|
|
102
|
+
"@payloadcms/graphql": "3.74.0-internal.097fb57",
|
|
103
|
+
"@payloadcms/ui": "3.74.0-internal.097fb57",
|
|
104
|
+
"@payloadcms/translations": "3.74.0-internal.097fb57"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
107
|
"@babel/cli": "7.27.2",
|
|
@@ -118,13 +118,13 @@
|
|
|
118
118
|
"esbuild": "0.27.1",
|
|
119
119
|
"esbuild-sass-plugin": "3.3.1",
|
|
120
120
|
"swc-plugin-transform-remove-imports": "8.3.0",
|
|
121
|
-
"
|
|
122
|
-
"
|
|
121
|
+
"@payloadcms/eslint-config": "3.28.0",
|
|
122
|
+
"payload": "3.74.0-internal.097fb57"
|
|
123
123
|
},
|
|
124
124
|
"peerDependencies": {
|
|
125
125
|
"graphql": "^16.8.1",
|
|
126
126
|
"next": "^15.4.10 || >=16.1.1-canary.35 <16.2.0 || ^16.2.0",
|
|
127
|
-
"payload": "3.
|
|
127
|
+
"payload": "3.74.0-internal.097fb57"
|
|
128
128
|
},
|
|
129
129
|
"engines": {
|
|
130
130
|
"node": "^18.20.2 || >=20.9.0"
|