@payloadcms/ui 3.0.0-beta.90 → 3.0.0-beta.92

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.
Files changed (67) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js +1 -1
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/AddNewRelation/index.scss +14 -4
  5. package/dist/elements/AppHeader/index.js +41 -80
  6. package/dist/elements/AppHeader/index.js.map +1 -1
  7. package/dist/elements/Autosave/index.js +148 -231
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.js +86 -218
  10. package/dist/elements/Button/index.js.map +1 -1
  11. package/dist/elements/Collapsible/index.js +44 -62
  12. package/dist/elements/Collapsible/index.js.map +1 -1
  13. package/dist/elements/Collapsible/index.scss +15 -28
  14. package/dist/elements/CopyToClipboard/index.js +20 -54
  15. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  16. package/dist/elements/Dropzone/index.js +59 -119
  17. package/dist/elements/Dropzone/index.js.map +1 -1
  18. package/dist/elements/EditMany/index.js +124 -230
  19. package/dist/elements/EditMany/index.js.map +1 -1
  20. package/dist/elements/EditUpload/index.js +133 -206
  21. package/dist/elements/EditUpload/index.js.map +1 -1
  22. package/dist/elements/ListControls/index.js +82 -188
  23. package/dist/elements/ListControls/index.js.map +1 -1
  24. package/dist/elements/Nav/context.js +47 -83
  25. package/dist/elements/Nav/context.js.map +1 -1
  26. package/dist/elements/SaveButton/index.js +30 -81
  27. package/dist/elements/SaveButton/index.js.map +1 -1
  28. package/dist/elements/SaveDraftButton/index.js +54 -116
  29. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  30. package/dist/elements/SearchFilter/index.js +21 -77
  31. package/dist/elements/SearchFilter/index.js.map +1 -1
  32. package/dist/elements/Upload/index.js +130 -280
  33. package/dist/elements/Upload/index.js.map +1 -1
  34. package/dist/exports/client/{CodeEditor-C4FLUUO7.js → CodeEditor-MTP455NO.js} +2 -2
  35. package/dist/exports/client/chunk-NJHSEGFB.js +14 -0
  36. package/dist/exports/client/{chunk-UGBVRIVY.js.map → chunk-NJHSEGFB.js.map} +2 -2
  37. package/dist/exports/client/index.d.ts +1 -1
  38. package/dist/exports/client/index.d.ts.map +1 -1
  39. package/dist/exports/client/index.js +19 -19
  40. package/dist/exports/client/index.js.map +3 -3
  41. package/dist/fields/Relationship/index.js +318 -504
  42. package/dist/fields/Relationship/index.js.map +1 -1
  43. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  44. package/dist/fields/Upload/HasMany/index.js +192 -422
  45. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  46. package/dist/fields/Upload/HasMany/index.scss +19 -1
  47. package/dist/forms/Submit/index.js +12 -28
  48. package/dist/forms/Submit/index.js.map +1 -1
  49. package/dist/hooks/useDelay.js +15 -48
  50. package/dist/hooks/useDelay.js.map +1 -1
  51. package/dist/hooks/useDelayedRender.js +32 -71
  52. package/dist/hooks/useDelayedRender.js.map +1 -1
  53. package/dist/hooks/useIntersect.js +14 -20
  54. package/dist/hooks/useIntersect.js.map +1 -1
  55. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  56. package/dist/providers/Config/createClientConfig/collections.js +8 -6
  57. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  58. package/dist/providers/Preferences/index.js +1 -3
  59. package/dist/providers/Preferences/index.js.map +1 -1
  60. package/dist/providers/Selection/index.js +102 -190
  61. package/dist/providers/Selection/index.js.map +1 -1
  62. package/dist/scss/app.scss +6 -6
  63. package/dist/scss/type.scss +4 -4
  64. package/dist/styles.css +1 -1
  65. package/package.json +9 -9
  66. package/dist/exports/client/chunk-UGBVRIVY.js +0 -14
  67. /package/dist/exports/client/{CodeEditor-C4FLUUO7.js.map → CodeEditor-MTP455NO.js.map} +0 -0
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  import * as qs from 'qs-esm';
6
5
  import { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
@@ -16,453 +15,224 @@ import { FieldLabel } from '../../FieldLabel/index.js';
16
15
  const baseClass = 'upload upload--has-many';
17
16
  import './index.scss';
18
17
  export const UploadComponentHasMany = props => {
19
- const $ = _c(85);
20
18
  const {
21
19
  canCreate,
22
20
  field,
23
- field: t0,
24
- fieldHookResult: t1,
21
+ field: {
22
+ _path,
23
+ admin: {
24
+ components: {
25
+ Label
26
+ },
27
+ isSortable
28
+ },
29
+ hasMany,
30
+ label,
31
+ relationTo
32
+ },
33
+ fieldHookResult: {
34
+ filterOptions: filterOptionsFromProps,
35
+ setValue,
36
+ value
37
+ },
25
38
  readOnly
26
39
  } = props;
27
- const {
28
- _path,
29
- admin: t2,
30
- hasMany,
31
- label,
32
- relationTo
33
- } = t0;
34
- const {
35
- components: t3,
36
- isSortable
37
- } = t2;
38
- const {
39
- Label
40
- } = t3;
41
- const {
42
- filterOptions: filterOptionsFromProps,
43
- setValue,
44
- value
45
- } = t1;
46
40
  const {
47
41
  i18n,
48
42
  t
49
43
  } = useTranslation();
50
44
  const {
51
- config: t4
45
+ config: {
46
+ collections,
47
+ routes: {
48
+ api
49
+ },
50
+ serverURL
51
+ }
52
52
  } = useConfig();
53
- const {
54
- collections,
55
- routes: t5,
56
- serverURL
57
- } = t4;
58
- const {
59
- api
60
- } = t5;
61
- let t6;
62
- bb0: {
63
- if (typeof relationTo === "string") {
64
- let t7;
65
- if ($[0] !== filterOptionsFromProps || $[1] !== relationTo) {
66
- t7 = filterOptionsFromProps?.[relationTo] || {};
67
- $[0] = filterOptionsFromProps;
68
- $[1] = relationTo;
69
- $[2] = t7;
70
- } else {
71
- t7 = $[2];
72
- }
73
- let t8;
74
- if ($[3] !== filterOptionsFromProps || $[4] !== relationTo) {
75
- t8 = filterOptionsFromProps?.[relationTo]?.id || {};
76
- $[3] = filterOptionsFromProps;
77
- $[4] = relationTo;
78
- $[5] = t8;
79
- } else {
80
- t8 = $[5];
81
- }
82
- const t9 = filterOptionsFromProps?.[relationTo]?.id?.not_in || value;
83
- let t10;
84
- if ($[6] !== t8 || $[7] !== t9) {
85
- t10 = {
86
- ...t8,
87
- not_in: t9
88
- };
89
- $[6] = t8;
90
- $[7] = t9;
91
- $[8] = t10;
92
- } else {
93
- t10 = $[8];
94
- }
95
- let t11;
96
- if ($[9] !== t7 || $[10] !== t10) {
97
- t11 = {
98
- ...t7,
99
- id: t10
100
- };
101
- $[9] = t7;
102
- $[10] = t10;
103
- $[11] = t11;
104
- } else {
105
- t11 = $[11];
106
- }
107
- let t12;
108
- if ($[12] !== filterOptionsFromProps || $[13] !== relationTo || $[14] !== t11) {
109
- t12 = {
110
- ...filterOptionsFromProps,
111
- [relationTo]: t11
112
- };
113
- $[12] = filterOptionsFromProps;
114
- $[13] = relationTo;
115
- $[14] = t11;
116
- $[15] = t12;
117
- } else {
118
- t12 = $[15];
119
- }
120
- t6 = t12;
121
- break bb0;
53
+ const filterOptions = useMemo(() => {
54
+ if (typeof relationTo === 'string') {
55
+ return {
56
+ ...filterOptionsFromProps,
57
+ [relationTo]: {
58
+ ...(filterOptionsFromProps?.[relationTo] || {}),
59
+ id: {
60
+ ...(filterOptionsFromProps?.[relationTo]?.id || {}),
61
+ not_in: filterOptionsFromProps?.[relationTo]?.id?.not_in || value
62
+ }
63
+ }
64
+ };
122
65
  }
123
- t6 = undefined;
124
- }
125
- const filterOptions = t6;
126
- let t7;
127
- if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
128
- t7 = [];
129
- $[16] = t7;
130
- } else {
131
- t7 = $[16];
132
- }
133
- const [fileDocs, setFileDocs] = useState(t7);
66
+ }, [value, relationTo, filterOptionsFromProps]);
67
+ const [fileDocs, setFileDocs] = useState([]);
134
68
  const [missingFiles, setMissingFiles] = useState(false);
135
69
  const {
136
70
  code
137
71
  } = useLocale();
138
- let t8;
139
- if ($[17] !== value || $[18] !== code || $[19] !== serverURL || $[20] !== api || $[21] !== relationTo || $[22] !== i18n.language) {
140
- t8 = () => {
141
- if (value !== null && typeof value !== "undefined" && value.length !== 0) {
142
- const query = {
143
- depth: 0,
144
- draft: true,
145
- locale: code,
146
- where: {
147
- and: [{
148
- id: {
149
- in: value
150
- }
151
- }]
152
- }
153
- };
154
- const fetchFile = async () => {
155
- const response = await fetch(`${serverURL}${api}/${relationTo}`, {
156
- body: qs.stringify(query),
157
- credentials: "include",
158
- headers: {
159
- "Accept-Language": i18n.language,
160
- "Content-Type": "application/x-www-form-urlencoded",
161
- "X-HTTP-Method-Override": "GET"
162
- },
163
- method: "POST"
164
- });
165
- if (response.ok) {
166
- const json = await response.json();
167
- setFileDocs(json.docs);
168
- } else {
169
- setMissingFiles(true);
170
- setFileDocs([]);
171
- }
172
- };
173
- fetchFile();
174
- }
175
- };
176
- $[17] = value;
177
- $[18] = code;
178
- $[19] = serverURL;
179
- $[20] = api;
180
- $[21] = relationTo;
181
- $[22] = i18n.language;
182
- $[23] = t8;
183
- } else {
184
- t8 = $[23];
185
- }
186
- let t9;
187
- if ($[24] !== value || $[25] !== relationTo || $[26] !== api || $[27] !== serverURL || $[28] !== i18n || $[29] !== code) {
188
- t9 = [value, relationTo, api, serverURL, i18n, code];
189
- $[24] = value;
190
- $[25] = relationTo;
191
- $[26] = api;
192
- $[27] = serverURL;
193
- $[28] = i18n;
194
- $[29] = code;
195
- $[30] = t9;
196
- } else {
197
- t9 = $[30];
198
- }
199
- useEffect(t8, t9);
200
- let t10;
201
- if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
202
- t10 = function moveItemInArray(array, moveFromIndex, moveToIndex) {
203
- const newArray = [...array];
204
- const [item] = newArray.splice(moveFromIndex, 1);
205
- newArray.splice(moveToIndex, 0, item);
206
- return newArray;
207
- };
208
- $[31] = t10;
209
- } else {
210
- t10 = $[31];
211
- }
212
- const moveItemInArray = t10;
213
- let t11;
214
- if ($[32] !== value || $[33] !== setValue) {
215
- t11 = (moveFromIndex_0, moveToIndex_0) => {
216
- const updatedArray = moveItemInArray(value, moveFromIndex_0, moveToIndex_0);
217
- setValue(updatedArray);
218
- };
219
- $[32] = value;
220
- $[33] = setValue;
221
- $[34] = t11;
222
- } else {
223
- t11 = $[34];
224
- }
225
- const moveRow = t11;
226
- let t12;
227
- if ($[35] !== value || $[36] !== setValue) {
228
- t12 = index => {
229
- const updatedArray_0 = [...value];
230
- updatedArray_0.splice(index, 1);
231
- setValue(updatedArray_0);
232
- };
233
- $[35] = value;
234
- $[36] = setValue;
235
- $[37] = t12;
236
- } else {
237
- t12 = $[37];
238
- }
239
- const removeItem = t12;
240
- let t13;
241
- if ($[38] !== relationTo || $[39] !== collections) {
242
- t13 = typeof relationTo === "string" ? [relationTo] : collections.map(_temp);
243
- $[38] = relationTo;
244
- $[39] = collections;
245
- $[40] = t13;
246
- } else {
247
- t13 = $[40];
248
- }
249
- let t14;
250
- if ($[41] !== t13 || $[42] !== filterOptions) {
251
- t14 = {
252
- collectionSlugs: t13,
253
- filterOptions
254
- };
255
- $[41] = t13;
256
- $[42] = filterOptions;
257
- $[43] = t14;
258
- } else {
259
- t14 = $[43];
260
- }
261
- const [ListDrawer, ListDrawerToggler] = useListDrawer(t14);
262
- let t15;
263
- if ($[44] !== relationTo || $[45] !== collections || $[46] !== setValue || $[47] !== value || $[48] !== Label || $[49] !== field || $[50] !== label || $[51] !== missingFiles || $[52] !== t || $[53] !== moveRow || $[54] !== fileDocs || $[55] !== isSortable || $[56] !== removeItem || $[57] !== canCreate || $[58] !== hasMany || $[59] !== _path || $[60] !== readOnly || $[61] !== ListDrawerToggler || $[62] !== ListDrawer) {
264
- let t16;
265
- if ($[64] !== relationTo) {
266
- t16 = coll => coll.slug === relationTo;
267
- $[64] = relationTo;
268
- $[65] = t16;
269
- } else {
270
- t16 = $[65];
271
- }
272
- const collection_0 = collections.find(t16);
273
- let t17;
274
- if ($[66] !== value || $[67] !== setValue) {
275
- t17 = selections => {
276
- const selectedIDs = Object.entries(selections).reduce((acc, t18) => {
277
- const [key, value_0] = t18;
278
- return value_0 ? [...acc, key] : acc;
279
- }, []);
280
- if (value?.length) {
281
- setValue([...value, ...selectedIDs]);
282
- } else {
283
- setValue(selectedIDs);
72
+ useEffect(() => {
73
+ if (value !== null && typeof value !== 'undefined' && value.length !== 0) {
74
+ const query = {
75
+ depth: 0,
76
+ draft: true,
77
+ locale: code,
78
+ where: {
79
+ and: [{
80
+ id: {
81
+ in: value
82
+ }
83
+ }]
284
84
  }
285
85
  };
286
- $[66] = value;
287
- $[67] = setValue;
288
- $[68] = t17;
289
- } else {
290
- t17 = $[68];
291
- }
292
- const onBulkSelect = t17;
293
- let t18;
294
- if ($[69] === Symbol.for("react.memo_cache_sentinel")) {
295
- t18 = [baseClass];
296
- $[69] = t18;
297
- } else {
298
- t18 = $[69];
299
- }
300
- let t20;
301
- if ($[70] === Symbol.for("react.memo_cache_sentinel")) {
302
- t20 = [`${baseClass}__controls`];
303
- $[70] = t20;
304
- } else {
305
- t20 = $[70];
306
- }
307
- let t21;
308
- if ($[71] === Symbol.for("react.memo_cache_sentinel")) {
309
- t21 = [`${baseClass}__buttons`];
310
- $[71] = t21;
311
- } else {
312
- t21 = $[71];
313
- }
314
- let t22;
315
- if ($[72] !== canCreate || $[73] !== t || $[74] !== hasMany || $[75] !== _path || $[76] !== relationTo || $[77] !== setValue || $[78] !== value) {
316
- t22 = canCreate && _jsx("div", {
317
- className: [`${baseClass}__add-new`].join(" "),
318
- children: _jsx(AddNewRelation, {
319
- Button: _jsx(Button, {
320
- buttonStyle: "icon-label",
321
- el: "span",
322
- icon: "plus",
323
- iconPosition: "left",
324
- iconStyle: "with-border",
325
- children: t("fields:addNew")
326
- }),
327
- hasMany,
328
- path: _path,
329
- relationTo,
330
- setValue,
331
- unstyled: true,
332
- value
333
- })
334
- });
335
- $[72] = canCreate;
336
- $[73] = t;
337
- $[74] = hasMany;
338
- $[75] = _path;
339
- $[76] = relationTo;
340
- $[77] = setValue;
341
- $[78] = value;
342
- $[79] = t22;
343
- } else {
344
- t22 = $[79];
345
- }
346
- let t23;
347
- if ($[80] !== setValue) {
348
- t23 = () => setValue([]);
349
- $[80] = setValue;
350
- $[81] = t23;
351
- } else {
352
- t23 = $[81];
353
- }
354
- let t24;
355
- if ($[82] !== value || $[83] !== setValue) {
356
- t24 = selection => {
357
- if (value?.length) {
358
- setValue([...value, selection.docID]);
86
+ const fetchFile = async () => {
87
+ const response = await fetch(`${serverURL}${api}/${relationTo}`, {
88
+ body: qs.stringify(query),
89
+ credentials: 'include',
90
+ headers: {
91
+ 'Accept-Language': i18n.language,
92
+ 'Content-Type': 'application/x-www-form-urlencoded',
93
+ 'X-HTTP-Method-Override': 'GET'
94
+ },
95
+ method: 'POST'
96
+ });
97
+ if (response.ok) {
98
+ const json = await response.json();
99
+ setFileDocs(json.docs);
359
100
  } else {
360
- setValue([selection.docID]);
101
+ setMissingFiles(true);
102
+ setFileDocs([]);
361
103
  }
362
104
  };
363
- $[82] = value;
364
- $[83] = setValue;
365
- $[84] = t24;
366
- } else {
367
- t24 = $[84];
105
+ void fetchFile();
368
106
  }
369
- t15 = _jsxs(Fragment, {
370
- children: [_jsxs("div", {
371
- className: t18.join(" "),
372
- children: [_jsx(FieldLabel, {
373
- Label,
374
- field,
375
- label
376
- }), _jsx("div", {
377
- children: missingFiles || !value?.length ? _jsx("div", {
378
- className: [`${baseClass}__no-data`].join(" "),
379
- children: t("version:noRowsFound", {
380
- label: relationTo
381
- })
382
- }) : _jsx(DraggableSortable, {
383
- className: `${baseClass}__draggable-rows`,
384
- ids: value,
385
- onDragEnd: t19 => {
386
- const {
387
- moveFromIndex: moveFromIndex_1,
388
- moveToIndex: moveToIndex_1
389
- } = t19;
390
- return moveRow(moveFromIndex_1, moveToIndex_1);
391
- },
392
- children: Boolean(value.length) && value.map((id, index_0) => {
393
- const doc_0 = fileDocs.find(doc => doc.id === id);
394
- const uploadConfig = collection_0?.upload;
395
- if (!doc_0) {
396
- return null;
397
- }
398
- return _jsx(FileDetails, {
399
- collectionSlug: relationTo,
400
- doc: doc_0,
401
- hasMany: true,
402
- isSortable,
403
- removeItem,
404
- rowIndex: index_0,
405
- uploadConfig
406
- }, id);
407
- })
107
+ }, [value, relationTo, api, serverURL, i18n, code]);
108
+ function moveItemInArray(array, moveFromIndex, moveToIndex) {
109
+ const newArray = [...array];
110
+ const [item] = newArray.splice(moveFromIndex, 1);
111
+ newArray.splice(moveToIndex, 0, item);
112
+ return newArray;
113
+ }
114
+ const moveRow = useCallback((moveFromIndex_0, moveToIndex_0) => {
115
+ const updatedArray = moveItemInArray(value, moveFromIndex_0, moveToIndex_0);
116
+ setValue(updatedArray);
117
+ }, [value, setValue]);
118
+ const removeItem = useCallback(index => {
119
+ const updatedArray_0 = [...value];
120
+ updatedArray_0.splice(index, 1);
121
+ setValue(updatedArray_0);
122
+ }, [value, setValue]);
123
+ const [ListDrawer, ListDrawerToggler] = useListDrawer({
124
+ collectionSlugs: typeof relationTo === 'string' ? [relationTo] : collections.map(collection => collection.slug),
125
+ filterOptions
126
+ });
127
+ const collection_0 = collections.find(coll => coll.slug === relationTo);
128
+ // Get the labels of the collections that the relation is to
129
+ const labels_0 = useMemo(() => {
130
+ function joinWithCommaAndOr(items) {
131
+ const or = t('general:or');
132
+ if (items.length === 0) return '';
133
+ if (items.length === 1) return items[0];
134
+ if (items.length === 2) return items.join(` ${or} `);
135
+ return items.slice(0, -1).join(', ') + ` ${or} ` + items[items.length - 1];
136
+ }
137
+ const labels = [];
138
+ collections.forEach(collection_1 => {
139
+ if (relationTo.includes(collection_1.slug)) {
140
+ labels.push(collection_1.labels?.singular || collection_1.slug);
141
+ }
142
+ });
143
+ return joinWithCommaAndOr(labels);
144
+ }, [collections, relationTo, t]);
145
+ const onBulkSelect = useCallback(selections => {
146
+ const selectedIDs = Object.entries(selections).reduce((acc, [key, value_0]) => value_0 ? [...acc, key] : acc, []);
147
+ if (value?.length) setValue([...value, ...selectedIDs]);else setValue(selectedIDs);
148
+ }, [setValue, value]);
149
+ return /*#__PURE__*/_jsxs(Fragment, {
150
+ children: [/*#__PURE__*/_jsxs("div", {
151
+ className: [baseClass].join(' '),
152
+ children: [/*#__PURE__*/_jsx(FieldLabel, {
153
+ Label: Label,
154
+ field: field,
155
+ label: label
156
+ }), /*#__PURE__*/_jsx("div", {
157
+ children: missingFiles || !value?.length ? /*#__PURE__*/_jsx("div", {
158
+ className: [`${baseClass}__no-data`].join(' '),
159
+ children: t('version:noRowsSelected', {
160
+ label: labels_0
161
+ })
162
+ }) : /*#__PURE__*/_jsx(DraggableSortable, {
163
+ className: `${baseClass}__draggable-rows`,
164
+ ids: value,
165
+ onDragEnd: ({
166
+ moveFromIndex: moveFromIndex_1,
167
+ moveToIndex: moveToIndex_1
168
+ }) => moveRow(moveFromIndex_1, moveToIndex_1),
169
+ children: Boolean(value.length) && value.map((id, index_0) => {
170
+ const doc_0 = fileDocs.find(doc => doc.id === id);
171
+ const uploadConfig = collection_0?.upload;
172
+ if (!doc_0) {
173
+ return null;
174
+ }
175
+ return /*#__PURE__*/_jsx(FileDetails, {
176
+ collectionSlug: relationTo,
177
+ doc: doc_0,
178
+ hasMany: true,
179
+ isSortable: isSortable,
180
+ removeItem: removeItem,
181
+ rowIndex: index_0,
182
+ uploadConfig: uploadConfig
183
+ }, id);
408
184
  })
409
- }), _jsxs("div", {
410
- className: t20.join(" "),
411
- children: [_jsxs("div", {
412
- className: t21.join(" "),
413
- children: [t22, _jsx(ListDrawerToggler, {
414
- className: `${baseClass}__toggler`,
415
- disabled: readOnly,
416
- children: _jsx("div", {
417
- children: _jsx(Button, {
418
- buttonStyle: "icon-label",
419
- el: "span",
420
- icon: "plus",
421
- iconPosition: "left",
422
- iconStyle: "with-border",
423
- children: t("fields:chooseFromExisting")
424
- })
185
+ })
186
+ }), /*#__PURE__*/_jsxs("div", {
187
+ className: [`${baseClass}__controls`].join(' '),
188
+ children: [/*#__PURE__*/_jsxs("div", {
189
+ className: [`${baseClass}__buttons`].join(' '),
190
+ children: [canCreate && /*#__PURE__*/_jsx("div", {
191
+ className: [`${baseClass}__add-new`].join(' '),
192
+ children: /*#__PURE__*/_jsx(AddNewRelation, {
193
+ Button: /*#__PURE__*/_jsx(Button, {
194
+ buttonStyle: "icon-label",
195
+ el: "span",
196
+ icon: "plus",
197
+ iconPosition: "left",
198
+ iconStyle: "with-border",
199
+ children: t('fields:addNew')
200
+ }),
201
+ hasMany: hasMany,
202
+ path: _path,
203
+ relationTo: relationTo,
204
+ setValue: setValue,
205
+ unstyled: true,
206
+ value: value
207
+ })
208
+ }), /*#__PURE__*/_jsx(ListDrawerToggler, {
209
+ className: `${baseClass}__toggler`,
210
+ disabled: readOnly,
211
+ children: /*#__PURE__*/_jsx("div", {
212
+ children: /*#__PURE__*/_jsx(Button, {
213
+ buttonStyle: "icon-label",
214
+ el: "span",
215
+ icon: "plus",
216
+ iconPosition: "left",
217
+ iconStyle: "with-border",
218
+ children: t('fields:chooseFromExisting')
425
219
  })
426
- })]
427
- }), _jsx("button", {
428
- className: `${baseClass}__clear-all`,
429
- onClick: t23,
430
- type: "button",
431
- children: "Clear all"
220
+ })
432
221
  })]
222
+ }), Boolean(value.length) && /*#__PURE__*/_jsx("button", {
223
+ className: `${baseClass}__clear-all`,
224
+ onClick: () => setValue([]),
225
+ type: "button",
226
+ children: t('general:clearAll')
433
227
  })]
434
- }), _jsx(ListDrawer, {
435
- enableRowSelections: true,
436
- onBulkSelect,
437
- onSelect: t24
438
228
  })]
439
- });
440
- $[44] = relationTo;
441
- $[45] = collections;
442
- $[46] = setValue;
443
- $[47] = value;
444
- $[48] = Label;
445
- $[49] = field;
446
- $[50] = label;
447
- $[51] = missingFiles;
448
- $[52] = t;
449
- $[53] = moveRow;
450
- $[54] = fileDocs;
451
- $[55] = isSortable;
452
- $[56] = removeItem;
453
- $[57] = canCreate;
454
- $[58] = hasMany;
455
- $[59] = _path;
456
- $[60] = readOnly;
457
- $[61] = ListDrawerToggler;
458
- $[62] = ListDrawer;
459
- $[63] = t15;
460
- } else {
461
- t15 = $[63];
462
- }
463
- return t15;
229
+ }), /*#__PURE__*/_jsx(ListDrawer, {
230
+ enableRowSelections: true,
231
+ onBulkSelect: onBulkSelect,
232
+ onSelect: selection => {
233
+ if (value?.length) setValue([...value, selection.docID]);else setValue([selection.docID]);
234
+ }
235
+ })]
236
+ });
464
237
  };
465
- function _temp(collection) {
466
- return collection.slug;
467
- }
468
238
  //# sourceMappingURL=index.js.map