@payloadcms/ui 3.0.0-canary.9beaa28 → 3.0.0-canary.9de3ffd

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 (156) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -0
  2. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.js +98 -82
  3. package/dist/elements/AddNewRelation/index.js.map +1 -0
  4. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.scss +7 -3
  5. package/dist/elements/AddNewRelation/types.d.ts +11 -0
  6. package/dist/elements/AddNewRelation/types.d.ts.map +1 -0
  7. package/dist/elements/AddNewRelation/types.js.map +1 -0
  8. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -0
  9. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.js +1 -1
  10. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -0
  11. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +9 -0
  12. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -0
  13. package/dist/elements/BulkUpload/ActionsBar/index.js +186 -0
  14. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -0
  15. package/dist/elements/BulkUpload/ActionsBar/index.scss +59 -0
  16. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +9 -0
  17. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -0
  18. package/dist/elements/BulkUpload/AddFilesView/index.js +44 -0
  19. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -0
  20. package/dist/elements/BulkUpload/AddFilesView/index.scss +15 -0
  21. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +4 -0
  22. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -0
  23. package/dist/elements/BulkUpload/AddingFilesView/index.js +98 -0
  24. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -0
  25. package/dist/elements/BulkUpload/AddingFilesView/index.scss +23 -0
  26. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts +4 -0
  27. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -0
  28. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +89 -0
  29. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -0
  30. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts +9 -0
  31. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts.map +1 -0
  32. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +38 -0
  33. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -0
  34. package/dist/elements/BulkUpload/DrawerCloseButton/index.scss +27 -0
  35. package/dist/elements/BulkUpload/EditForm/index.d.ts +5 -0
  36. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -0
  37. package/dist/elements/BulkUpload/EditForm/index.js +176 -0
  38. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -0
  39. package/dist/elements/BulkUpload/EditForm/index.scss +9 -0
  40. package/dist/elements/BulkUpload/EditForm/types.d.ts +4 -0
  41. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -0
  42. package/dist/elements/BulkUpload/EditForm/types.js +2 -0
  43. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -0
  44. package/dist/elements/BulkUpload/FileSidebar/index.d.ts +4 -0
  45. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -0
  46. package/dist/elements/BulkUpload/FileSidebar/index.js +242 -0
  47. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -0
  48. package/dist/elements/BulkUpload/FileSidebar/index.scss +275 -0
  49. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +3 -0
  50. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -0
  51. package/dist/elements/BulkUpload/FormsManager/createFormData.js +22 -0
  52. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -0
  53. package/dist/elements/BulkUpload/FormsManager/index.d.ts +35 -0
  54. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -0
  55. package/dist/elements/BulkUpload/FormsManager/index.js +308 -0
  56. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -0
  57. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +30 -0
  58. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -0
  59. package/dist/elements/BulkUpload/FormsManager/reducer.js +69 -0
  60. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -0
  61. package/dist/elements/BulkUpload/Header/index.d.ts +9 -0
  62. package/dist/elements/BulkUpload/Header/index.d.ts.map +1 -0
  63. package/dist/elements/BulkUpload/Header/index.js +22 -0
  64. package/dist/elements/BulkUpload/Header/index.js.map +1 -0
  65. package/dist/elements/BulkUpload/Header/index.scss +12 -0
  66. package/dist/elements/BulkUpload/index.d.ts +10 -0
  67. package/dist/elements/BulkUpload/index.d.ts.map +1 -0
  68. package/dist/elements/BulkUpload/index.js +114 -0
  69. package/dist/elements/BulkUpload/index.js.map +1 -0
  70. package/dist/elements/BulkUpload/index.scss +0 -0
  71. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
  72. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  73. package/dist/elements/DocumentDrawer/index.js +1 -1
  74. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  75. package/dist/elements/Dropzone/index.scss +2 -0
  76. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +20 -0
  77. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -0
  78. package/dist/elements/FileDetails/DraggableFileDetails/index.js +116 -0
  79. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -0
  80. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +33 -0
  81. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +17 -0
  82. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -0
  83. package/dist/elements/FileDetails/StaticFileDetails/index.js +71 -0
  84. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -0
  85. package/dist/elements/FileDetails/{index.scss → StaticFileDetails/index.scss} +1 -1
  86. package/dist/elements/FileDetails/index.d.ts +19 -4
  87. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  88. package/dist/elements/FileDetails/index.js +11 -62
  89. package/dist/elements/FileDetails/index.js.map +1 -1
  90. package/dist/elements/FullscreenModal/index.d.ts +4 -0
  91. package/dist/elements/FullscreenModal/index.d.ts.map +1 -0
  92. package/dist/elements/FullscreenModal/index.js +38 -0
  93. package/dist/elements/FullscreenModal/index.js.map +1 -0
  94. package/dist/elements/ListControls/index.d.ts.map +1 -1
  95. package/dist/elements/ListControls/index.js +15 -10
  96. package/dist/elements/ListControls/index.js.map +1 -1
  97. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  98. package/dist/elements/ListDrawer/DrawerContent.js +42 -31
  99. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  100. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  101. package/dist/elements/ListDrawer/index.js.map +1 -1
  102. package/dist/elements/ListDrawer/types.d.ts +4 -1
  103. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  104. package/dist/elements/ListDrawer/types.js.map +1 -1
  105. package/dist/elements/SelectMany/index.d.ts +6 -0
  106. package/dist/elements/SelectMany/index.d.ts.map +1 -0
  107. package/dist/elements/SelectMany/index.js +29 -0
  108. package/dist/elements/SelectMany/index.js.map +1 -0
  109. package/dist/exports/client/index.d.ts +4 -1
  110. package/dist/exports/client/index.d.ts.map +1 -1
  111. package/dist/exports/client/index.js +19 -19
  112. package/dist/exports/client/index.js.map +4 -4
  113. package/dist/fields/Relationship/index.d.ts.map +1 -1
  114. package/dist/fields/Relationship/index.js +1 -3
  115. package/dist/fields/Relationship/index.js.map +1 -1
  116. package/dist/fields/Upload/HasMany/index.d.ts +4 -0
  117. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -0
  118. package/dist/fields/Upload/HasMany/index.js +468 -0
  119. package/dist/fields/Upload/HasMany/index.js.map +1 -0
  120. package/dist/fields/Upload/HasMany/index.scss +53 -0
  121. package/dist/fields/Upload/{Input.d.ts → HasOne/Input.d.ts} +1 -1
  122. package/dist/fields/Upload/HasOne/Input.d.ts.map +1 -0
  123. package/dist/fields/Upload/{Input.js → HasOne/Input.js} +12 -12
  124. package/dist/fields/Upload/HasOne/Input.js.map +1 -0
  125. package/dist/fields/Upload/HasOne/index.d.ts +12 -0
  126. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -0
  127. package/dist/fields/Upload/HasOne/index.js +131 -0
  128. package/dist/fields/Upload/HasOne/index.js.map +1 -0
  129. package/dist/fields/Upload/{index.scss → HasOne/index.scss} +1 -1
  130. package/dist/fields/Upload/index.d.ts +4 -4
  131. package/dist/fields/Upload/index.d.ts.map +1 -1
  132. package/dist/fields/Upload/index.js +84 -98
  133. package/dist/fields/Upload/index.js.map +1 -1
  134. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  135. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -27
  136. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  137. package/dist/providers/ListInfo/index.d.ts +6 -0
  138. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  139. package/dist/providers/ListInfo/index.js.map +1 -1
  140. package/dist/providers/Selection/index.d.ts +5 -3
  141. package/dist/providers/Selection/index.d.ts.map +1 -1
  142. package/dist/providers/Selection/index.js.map +1 -1
  143. package/dist/styles.css +1 -1
  144. package/package.json +4 -4
  145. package/dist/fields/Relationship/AddNew/index.d.ts.map +0 -1
  146. package/dist/fields/Relationship/AddNew/index.js.map +0 -1
  147. package/dist/fields/Relationship/AddNew/types.d.ts +0 -12
  148. package/dist/fields/Relationship/AddNew/types.d.ts.map +0 -1
  149. package/dist/fields/Relationship/AddNew/types.js.map +0 -1
  150. package/dist/fields/Relationship/AddNew/useRelatedCollections.d.ts.map +0 -1
  151. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +0 -1
  152. package/dist/fields/Upload/Input.d.ts.map +0 -1
  153. package/dist/fields/Upload/Input.js.map +0 -1
  154. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.d.ts +0 -0
  155. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/types.js +0 -0
  156. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.d.ts +0 -0
@@ -0,0 +1,468 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import * as qs from 'qs-esm';
6
+ import { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
7
+ import { AddNewRelation } from '../../../elements/AddNewRelation/index.js';
8
+ import { Button } from '../../../elements/Button/index.js';
9
+ import { DraggableSortable } from '../../../elements/DraggableSortable/index.js';
10
+ import { FileDetails } from '../../../elements/FileDetails/index.js';
11
+ import { useListDrawer } from '../../../elements/ListDrawer/index.js';
12
+ import { useConfig } from '../../../providers/Config/index.js';
13
+ import { useLocale } from '../../../providers/Locale/index.js';
14
+ import { useTranslation } from '../../../providers/Translation/index.js';
15
+ import { FieldLabel } from '../../FieldLabel/index.js';
16
+ const baseClass = 'upload upload--has-many';
17
+ import './index.scss';
18
+ export const UploadComponentHasMany = props => {
19
+ const $ = _c(85);
20
+ const {
21
+ canCreate,
22
+ field,
23
+ field: t0,
24
+ fieldHookResult: t1,
25
+ readOnly
26
+ } = 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
+ const {
47
+ i18n,
48
+ t
49
+ } = useTranslation();
50
+ const {
51
+ config: t4
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;
122
+ }
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);
134
+ const [missingFiles, setMissingFiles] = useState(false);
135
+ const {
136
+ code
137
+ } = 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);
284
+ }
285
+ };
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]);
359
+ } else {
360
+ setValue([selection.docID]);
361
+ }
362
+ };
363
+ $[82] = value;
364
+ $[83] = setValue;
365
+ $[84] = t24;
366
+ } else {
367
+ t24 = $[84];
368
+ }
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
+ })
408
+ })
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
+ })
425
+ })
426
+ })]
427
+ }), _jsx("button", {
428
+ className: `${baseClass}__clear-all`,
429
+ onClick: t23,
430
+ type: "button",
431
+ children: "Clear all"
432
+ })]
433
+ })]
434
+ }), _jsx(ListDrawer, {
435
+ enableRowSelections: true,
436
+ onBulkSelect,
437
+ onSelect: t24
438
+ })]
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;
464
+ };
465
+ function _temp(collection) {
466
+ return collection.slug;
467
+ }
468
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","qs","Fragment","useCallback","useEffect","useMemo","useState","AddNewRelation","Button","DraggableSortable","FileDetails","useListDrawer","useConfig","useLocale","useTranslation","FieldLabel","baseClass","UploadComponentHasMany","props","$","canCreate","field","t0","fieldHookResult","t1","readOnly","_path","admin","t2","hasMany","label","relationTo","components","t3","isSortable","Label","filterOptions","filterOptionsFromProps","setValue","value","i18n","t","config","t4","collections","routes","t5","serverURL","api","t6","bb0","t7","t8","id","t9","not_in","t10","t11","t12","undefined","Symbol","for","fileDocs","setFileDocs","missingFiles","setMissingFiles","code","language","length","query","depth","draft","locale","where","and","in","fetchFile","response","fetch","body","stringify","credentials","headers","method","ok","json","docs","moveItemInArray","array","moveFromIndex","moveToIndex","newArray","item","splice","moveFromIndex_0","moveToIndex_0","updatedArray","moveRow","index","updatedArray_0","removeItem","t13","map","_temp","t14","collectionSlugs","ListDrawer","ListDrawerToggler","t15","t16","coll","slug","collection_0","find","t17","selections","selectedIDs","Object","entries","reduce","acc","t18","key","value_0","onBulkSelect","t20","t21","t22","_jsx","className","join","children","buttonStyle","el","icon","iconPosition","iconStyle","unstyled","t23","t24","selection","docID","_jsxs","ids","onDragEnd","t19","moveFromIndex_1","moveToIndex_1","Boolean","index_0","doc_0","doc","uploadConfig","collection","upload","collectionSlug","rowIndex","disabled","onClick","type","enableRowSelections","onSelect"],"sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"sourcesContent":["'use client'\nimport type { FilterOptionsResult, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { useSelection } from '../../../providers/Selection/index.js'\nimport type { UploadFieldPropsWithContext } from '../HasOne/index.js'\n\nimport { AddNewRelation } from '../../../elements/AddNewRelation/index.js'\nimport { Button } from '../../../elements/Button/index.js'\nimport { DraggableSortable } from '../../../elements/DraggableSortable/index.js'\nimport { FileDetails } from '../../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { FieldLabel } from '../../FieldLabel/index.js'\n\nconst baseClass = 'upload upload--has-many'\n\nimport './index.scss'\n\nexport const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string[]>> = (props) => {\n const {\n canCreate,\n field,\n field: {\n _path,\n admin: {\n components: { Label },\n isSortable,\n },\n hasMany,\n label,\n relationTo,\n },\n fieldHookResult: { filterOptions: filterOptionsFromProps, setValue, value },\n readOnly,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n if (typeof relationTo === 'string') {\n return {\n ...filterOptionsFromProps,\n [relationTo]: {\n ...((filterOptionsFromProps?.[relationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[relationTo] as any)?.id || {}),\n not_in: (filterOptionsFromProps?.[relationTo] as any)?.id?.not_in || value,\n },\n },\n }\n }\n }, [value, relationTo, filterOptionsFromProps])\n\n const [fileDocs, setFileDocs] = useState([])\n const [missingFiles, setMissingFiles] = useState(false)\n\n const { code } = useLocale()\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value.length !== 0) {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: value,\n },\n },\n ],\n },\n }\n\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n setFileDocs(json.docs)\n } else {\n setMissingFiles(true)\n setFileDocs([])\n }\n }\n\n void fetchFile()\n }\n }, [value, relationTo, api, serverURL, i18n, code])\n\n function moveItemInArray<T>(array: T[], moveFromIndex: number, moveToIndex: number): T[] {\n const newArray = [...array]\n const [item] = newArray.splice(moveFromIndex, 1)\n\n newArray.splice(moveToIndex, 0, item)\n\n return newArray\n }\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n const updatedArray = moveItemInArray(value, moveFromIndex, moveToIndex)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const removeItem = useCallback(\n (index: number) => {\n const updatedArray = [...value]\n updatedArray.splice(index, 1)\n setValue(updatedArray)\n },\n [value, setValue],\n )\n\n const [ListDrawer, ListDrawerToggler] = useListDrawer({\n collectionSlugs:\n typeof relationTo === 'string'\n ? [relationTo]\n : collections.map((collection) => collection.slug),\n filterOptions,\n })\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n const onBulkSelect = useCallback(\n (selections: ReturnType<typeof useSelection>['selected']) => {\n const selectedIDs = Object.entries(selections).reduce(\n (acc, [key, value]) => (value ? [...acc, key] : acc),\n [] as string[],\n )\n if (value?.length) setValue([...value, ...selectedIDs])\n else setValue(selectedIDs)\n },\n [setValue, value],\n )\n\n return (\n <Fragment>\n <div className={[baseClass].join(' ')}>\n <FieldLabel Label={Label} field={field} label={label} />\n\n <div>\n {missingFiles || !value?.length ? (\n <div className={[`${baseClass}__no-data`].join(' ')}>\n {t('version:noRowsFound', { label: relationTo })}\n </div>\n ) : (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={value}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {Boolean(value.length) &&\n value.map((id, index) => {\n const doc = fileDocs.find((doc) => doc.id === id)\n const uploadConfig = collection?.upload\n\n if (!doc) {\n return null\n }\n\n return (\n <FileDetails\n collectionSlug={relationTo}\n doc={doc}\n hasMany={true}\n isSortable={isSortable}\n key={id}\n removeItem={removeItem}\n rowIndex={index}\n uploadConfig={uploadConfig}\n />\n )\n })}\n </DraggableSortable>\n )}\n </div>\n\n <div className={[`${baseClass}__controls`].join(' ')}>\n <div className={[`${baseClass}__buttons`].join(' ')}>\n {canCreate && (\n <div className={[`${baseClass}__add-new`].join(' ')}>\n <AddNewRelation\n Button={\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addNew')}\n </Button>\n }\n hasMany={hasMany}\n path={_path}\n relationTo={relationTo}\n setValue={setValue}\n unstyled\n value={value}\n />\n </div>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <div>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n </div>\n </ListDrawerToggler>\n </div>\n <button className={`${baseClass}__clear-all`} onClick={() => setValue([])} type=\"button\">\n Clear all\n </button>\n </div>\n </div>\n <ListDrawer\n enableRowSelections\n onBulkSelect={onBulkSelect}\n onSelect={(selection) => {\n if (value?.length) setValue([...value, selection.docID])\n else setValue([selection.docID])\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ .upload--has-many {
4
+ position: relative;
5
+ max-width: 100%;
6
+
7
+ &__controls {
8
+ display: flex;
9
+ gap: base(2);
10
+ margin-top: base(1);
11
+ }
12
+
13
+ &__buttons {
14
+ display: flex;
15
+ gap: base(1);
16
+ }
17
+
18
+ &__add-new {
19
+ display: flex;
20
+ gap: base(0.5);
21
+ }
22
+
23
+ &__clear-all {
24
+ all: unset;
25
+ flex-shrink: 0;
26
+ font-size: inherit;
27
+ font-family: inherit;
28
+ color: inherit;
29
+ cursor: pointer;
30
+ }
31
+
32
+ &__draggable-rows {
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: 0.25rem;
36
+ }
37
+
38
+ &__no-data {
39
+ background: var(--theme-elevation-50);
40
+ padding: 0.5rem 0.75rem;
41
+ border-radius: 3px;
42
+ }
43
+ }
44
+
45
+ html[data-theme='light'] {
46
+ .upload {
47
+ }
48
+ }
49
+
50
+ html[data-theme='dark'] {
51
+ .upload {
52
+ }
53
+ }
@@ -31,5 +31,5 @@ export type UploadInputProps = {
31
31
  readonly value?: string;
32
32
  readonly width?: string;
33
33
  };
34
- export declare const UploadInput: React.FC<UploadInputProps>;
34
+ export declare const UploadInputHasOne: React.FC<UploadInputProps>;
35
35
  //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/HasOne/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAA;IAC5C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,2BAA2B,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;IAChG,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAuKxD,CAAA"}
@@ -4,18 +4,18 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import React, { useCallback, useEffect, useState } from 'react';
7
- import { Button } from '../../elements/Button/index.js';
8
- import { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js';
9
- import { FileDetails } from '../../elements/FileDetails/index.js';
10
- import { useListDrawer } from '../../elements/ListDrawer/index.js';
11
- import { useTranslation } from '../../providers/Translation/index.js';
12
- import { FieldDescription } from '../FieldDescription/index.js';
13
- import { FieldError } from '../FieldError/index.js';
14
- import { FieldLabel } from '../FieldLabel/index.js';
15
- import { fieldBaseClass } from '../shared/index.js';
7
+ import { Button } from '../../../elements/Button/index.js';
8
+ import { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js';
9
+ import { FileDetails } from '../../../elements/FileDetails/index.js';
10
+ import { useListDrawer } from '../../../elements/ListDrawer/index.js';
11
+ import { useTranslation } from '../../../providers/Translation/index.js';
12
+ import { FieldDescription } from '../../FieldDescription/index.js';
13
+ import { FieldError } from '../../FieldError/index.js';
14
+ import { FieldLabel } from '../../FieldLabel/index.js';
15
+ import { fieldBaseClass } from '../../shared/index.js';
16
+ import { baseClass } from '../index.js';
16
17
  import './index.scss';
17
- const baseClass = 'upload';
18
- export const UploadInput = props => {
18
+ export const UploadInputHasOne = props => {
19
19
  const $ = _c(78);
20
20
  const {
21
21
  Description,
@@ -166,7 +166,7 @@ export const UploadInput = props => {
166
166
  t11 = $[24];
167
167
  }
168
168
  const onSelect = t11;
169
- if (collection.upload) {
169
+ if (collection.upload && typeof relationTo === "string") {
170
170
  const t12 = showError && "error";
171
171
  const t13 = readOnly && "read-only";
172
172
  let t14;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","useCallback","useEffect","useState","Button","useDocumentDrawer","FileDetails","useListDrawer","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","baseClass","UploadInputHasOne","props","$","Description","Error","Label","allowNewUpload","api","t0","className","collection","customUploadActions","descriptionProps","errorProps","field","filterOptions","label","labelProps","onChange","readOnly","relationTo","required","serverURL","showError","style","value","width","undefined","i18n","t","fileDoc","setFileDoc","missingFile","setMissingFile","t1","slug","t2","collectionSlugs","t3","t4","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t5","closeDrawer","t6","ListDrawer","ListDrawerToggler","t7","closeListDrawer","t8","language","fetchFile","response","fetch","credentials","headers","ok","json","t9","t10","args","doc","onSave","t11","args_0","id","docID","onSelect","upload","t12","t13","t14","filter","Boolean","t15","join","t16","t17","t18","t19","_jsxs","Fragment","children","_jsx","handleRemove","uploadConfig","disabled","buttonStyle","el","labels","singular","CustomError"],"sources":["../../../../src/fields/Upload/HasOne/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldDescriptionClientProps,\n FieldErrorClientProps,\n FieldLabelClientProps,\n FilterOptionsResult,\n MappedComponent,\n StaticDescription,\n StaticLabel,\n UploadField,\n UploadFieldClient,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../../elements/DocumentDrawer/types.js'\nimport type { ListDrawerProps } from '../../../elements/ListDrawer/types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js'\nimport { FileDetails } from '../../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { FieldDescription } from '../../FieldDescription/index.js'\nimport { FieldError } from '../../FieldError/index.js'\nimport { FieldLabel } from '../../FieldLabel/index.js'\nimport { fieldBaseClass } from '../../shared/index.js'\nimport { baseClass } from '../index.js'\nimport './index.scss'\n\nexport type UploadInputProps = {\n readonly Description?: MappedComponent\n readonly Error?: MappedComponent\n readonly Label?: MappedComponent\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly allowNewUpload?: boolean\n readonly api?: string\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly description?: StaticDescription\n readonly descriptionProps?: FieldDescriptionClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly errorProps?: FieldErrorClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly field?: MarkOptional<UploadFieldClient, 'type'>\n readonly filterOptions?: FilterOptionsResult\n readonly label: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly onChange?: (e) => void\n readonly readOnly?: boolean\n readonly relationTo?: UploadField['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly width?: string\n}\n\nexport const UploadInputHasOne: React.FC<UploadInputProps> = (props) => {\n const {\n Description,\n Error,\n Label,\n allowNewUpload,\n api = '/api',\n className,\n collection,\n customUploadActions,\n descriptionProps,\n errorProps,\n field,\n filterOptions,\n label,\n labelProps,\n onChange,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const [fileDoc, setFileDoc] = useState(undefined)\n const [missingFile, setMissingFile] = useState(false)\n const [collectionSlugs] = useState([collection?.slug])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n collectionSlug: collectionSlugs[0],\n })\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer: closeListDrawer }] = useListDrawer({\n collectionSlugs,\n filterOptions,\n })\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value !== '') {\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n if (response.ok) {\n const json = await response.json()\n setFileDoc(json)\n } else {\n setMissingFile(true)\n setFileDoc(undefined)\n }\n }\n\n void fetchFile()\n } else {\n setFileDoc(undefined)\n }\n }, [value, relationTo, api, serverURL, i18n])\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setMissingFile(false)\n onChange(args.doc)\n closeDrawer()\n },\n [onChange, closeDrawer],\n )\n\n const onSelect = useCallback<ListDrawerProps['onSelect']>(\n (args) => {\n setMissingFile(false)\n onChange({\n id: args.docID,\n })\n closeListDrawer()\n },\n [onChange, closeListDrawer],\n )\n\n if (collection.upload && typeof relationTo === 'string') {\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n Label={Label}\n field={field}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={Error} field={field} {...(errorProps || {})} />\n {collection?.upload && (\n <React.Fragment>\n {fileDoc && !missingFile && (\n <FileDetails\n collectionSlug={relationTo}\n customUploadActions={customUploadActions}\n doc={fileDoc}\n handleRemove={\n readOnly\n ? undefined\n : () => {\n onChange(null)\n }\n }\n uploadConfig={collection.upload}\n />\n )}\n {(!fileDoc || missingFile) && (\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__buttons`}>\n {allowNewUpload && (\n <DocumentDrawerToggler\n className={`${baseClass}__toggler`}\n disabled={readOnly}\n >\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:uploadNewLabel', {\n label: getTranslation(collection.labels.singular, i18n),\n })}\n </Button>\n </DocumentDrawerToggler>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:chooseFromExisting')}\n </Button>\n </ListDrawerToggler>\n </div>\n </div>\n )}\n <FieldDescription\n Description={Description}\n field={field}\n {...(descriptionProps || {})}\n />\n </React.Fragment>\n )}\n {!readOnly && <DocumentDrawer onSave={onSave} />}\n {!readOnly && <ListDrawer onSelect={onSelect} />}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import type { UploadFieldProps } from 'payload';
2
+ import React from 'react';
3
+ import type { useField } from '../../../forms/useField/index.js';
4
+ import './index.scss';
5
+ export type UploadFieldPropsWithContext<TValue extends string | string[] = string> = {
6
+ readonly canCreate: boolean;
7
+ readonly disabled: boolean;
8
+ readonly fieldHookResult: ReturnType<typeof useField<TValue>>;
9
+ readonly onChange: (value: unknown) => void;
10
+ } & UploadFieldProps;
11
+ export declare const UploadComponentHasOne: React.FC<UploadFieldPropsWithContext>;
12
+ //# sourceMappingURL=index.d.ts.map