@payloadcms/ui 3.0.0-beta.88 → 3.0.0-beta.89

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 (189) 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/Button/index.d.ts.map +1 -1
  72. package/dist/elements/Button/index.js +127 -79
  73. package/dist/elements/Button/index.js.map +1 -1
  74. package/dist/elements/Button/index.scss +109 -43
  75. package/dist/elements/Button/types.d.ts +2 -1
  76. package/dist/elements/Button/types.d.ts.map +1 -1
  77. package/dist/elements/Button/types.js.map +1 -1
  78. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
  79. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  80. package/dist/elements/DocumentDrawer/index.js +1 -1
  81. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  82. package/dist/elements/Dropzone/index.scss +2 -0
  83. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +20 -0
  84. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -0
  85. package/dist/elements/FileDetails/DraggableFileDetails/index.js +116 -0
  86. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -0
  87. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +33 -0
  88. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +17 -0
  89. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -0
  90. package/dist/elements/FileDetails/StaticFileDetails/index.js +71 -0
  91. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -0
  92. package/dist/elements/FileDetails/{index.scss → StaticFileDetails/index.scss} +1 -1
  93. package/dist/elements/FileDetails/index.d.ts +19 -4
  94. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  95. package/dist/elements/FileDetails/index.js +11 -62
  96. package/dist/elements/FileDetails/index.js.map +1 -1
  97. package/dist/elements/FullscreenModal/index.d.ts +4 -0
  98. package/dist/elements/FullscreenModal/index.d.ts.map +1 -0
  99. package/dist/elements/FullscreenModal/index.js +38 -0
  100. package/dist/elements/FullscreenModal/index.js.map +1 -0
  101. package/dist/elements/ListControls/index.d.ts.map +1 -1
  102. package/dist/elements/ListControls/index.js +15 -10
  103. package/dist/elements/ListControls/index.js.map +1 -1
  104. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  105. package/dist/elements/ListDrawer/DrawerContent.js +45 -33
  106. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  107. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  108. package/dist/elements/ListDrawer/index.js.map +1 -1
  109. package/dist/elements/ListDrawer/types.d.ts +4 -1
  110. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  111. package/dist/elements/ListDrawer/types.js.map +1 -1
  112. package/dist/elements/ListHeader/index.d.ts +10 -0
  113. package/dist/elements/ListHeader/index.d.ts.map +1 -0
  114. package/dist/elements/ListHeader/index.js +17 -0
  115. package/dist/elements/ListHeader/index.js.map +1 -0
  116. package/dist/elements/ListHeader/index.scss +10 -0
  117. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
  118. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  119. package/dist/elements/Popup/PopupButtonList/index.js +4 -4
  120. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  121. package/dist/elements/Popup/PopupTrigger/index.d.ts +2 -0
  122. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  123. package/dist/elements/Popup/PopupTrigger/index.js +5 -2
  124. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  125. package/dist/elements/Popup/PopupTrigger/index.scss +4 -1
  126. package/dist/elements/Popup/index.d.ts +2 -0
  127. package/dist/elements/Popup/index.d.ts.map +1 -1
  128. package/dist/elements/Popup/index.js +6 -0
  129. package/dist/elements/Popup/index.js.map +1 -1
  130. package/dist/elements/SelectMany/index.d.ts +6 -0
  131. package/dist/elements/SelectMany/index.d.ts.map +1 -0
  132. package/dist/elements/SelectMany/index.js +29 -0
  133. package/dist/elements/SelectMany/index.js.map +1 -0
  134. package/dist/elements/ViewDescription/index.d.ts +3 -2
  135. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  136. package/dist/elements/ViewDescription/index.js +39 -16
  137. package/dist/elements/ViewDescription/index.js.map +1 -1
  138. package/dist/exports/client/index.d.ts +4 -0
  139. package/dist/exports/client/index.d.ts.map +1 -1
  140. package/dist/exports/client/index.js +19 -19
  141. package/dist/exports/client/index.js.map +4 -4
  142. package/dist/fields/Blocks/SectionTitle/index.scss +1 -1
  143. package/dist/fields/Relationship/index.d.ts.map +1 -1
  144. package/dist/fields/Relationship/index.js +1 -3
  145. package/dist/fields/Relationship/index.js.map +1 -1
  146. package/dist/fields/Upload/HasMany/index.d.ts +4 -0
  147. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -0
  148. package/dist/fields/Upload/HasMany/index.js +474 -0
  149. package/dist/fields/Upload/HasMany/index.js.map +1 -0
  150. package/dist/fields/Upload/HasMany/index.scss +47 -0
  151. package/dist/fields/Upload/{Input.d.ts → HasOne/Input.d.ts} +1 -1
  152. package/dist/fields/Upload/HasOne/Input.d.ts.map +1 -0
  153. package/dist/fields/Upload/{Input.js → HasOne/Input.js} +12 -12
  154. package/dist/fields/Upload/HasOne/Input.js.map +1 -0
  155. package/dist/fields/Upload/HasOne/index.d.ts +12 -0
  156. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -0
  157. package/dist/fields/Upload/HasOne/index.js +131 -0
  158. package/dist/fields/Upload/HasOne/index.js.map +1 -0
  159. package/dist/fields/Upload/{index.scss → HasOne/index.scss} +1 -1
  160. package/dist/fields/Upload/index.d.ts +4 -4
  161. package/dist/fields/Upload/index.d.ts.map +1 -1
  162. package/dist/fields/Upload/index.js +84 -98
  163. package/dist/fields/Upload/index.js.map +1 -1
  164. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  165. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -27
  166. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  167. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  168. package/dist/providers/Config/createClientConfig/collections.js +3 -4
  169. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  170. package/dist/providers/ListInfo/index.d.ts +6 -0
  171. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  172. package/dist/providers/ListInfo/index.js.map +1 -1
  173. package/dist/providers/Selection/index.d.ts +5 -3
  174. package/dist/providers/Selection/index.d.ts.map +1 -1
  175. package/dist/providers/Selection/index.js.map +1 -1
  176. package/dist/styles.css +1 -1
  177. package/package.json +4 -4
  178. package/dist/fields/Relationship/AddNew/index.d.ts.map +0 -1
  179. package/dist/fields/Relationship/AddNew/index.js.map +0 -1
  180. package/dist/fields/Relationship/AddNew/types.d.ts +0 -12
  181. package/dist/fields/Relationship/AddNew/types.d.ts.map +0 -1
  182. package/dist/fields/Relationship/AddNew/types.js.map +0 -1
  183. package/dist/fields/Relationship/AddNew/useRelatedCollections.d.ts.map +0 -1
  184. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +0 -1
  185. package/dist/fields/Upload/Input.d.ts.map +0 -1
  186. package/dist/fields/Upload/Input.js.map +0 -1
  187. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.d.ts +0 -0
  188. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/types.js +0 -0
  189. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.d.ts +0 -0
@@ -0,0 +1,474 @@
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(87);
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
+ } else {
175
+ setFileDocs([]);
176
+ }
177
+ };
178
+ $[17] = value;
179
+ $[18] = code;
180
+ $[19] = serverURL;
181
+ $[20] = api;
182
+ $[21] = relationTo;
183
+ $[22] = i18n.language;
184
+ $[23] = t8;
185
+ } else {
186
+ t8 = $[23];
187
+ }
188
+ let t9;
189
+ if ($[24] !== value || $[25] !== relationTo || $[26] !== api || $[27] !== serverURL || $[28] !== i18n || $[29] !== code) {
190
+ t9 = [value, relationTo, api, serverURL, i18n, code];
191
+ $[24] = value;
192
+ $[25] = relationTo;
193
+ $[26] = api;
194
+ $[27] = serverURL;
195
+ $[28] = i18n;
196
+ $[29] = code;
197
+ $[30] = t9;
198
+ } else {
199
+ t9 = $[30];
200
+ }
201
+ useEffect(t8, t9);
202
+ let t10;
203
+ if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
204
+ t10 = function moveItemInArray(array, moveFromIndex, moveToIndex) {
205
+ const newArray = [...array];
206
+ const [item] = newArray.splice(moveFromIndex, 1);
207
+ newArray.splice(moveToIndex, 0, item);
208
+ return newArray;
209
+ };
210
+ $[31] = t10;
211
+ } else {
212
+ t10 = $[31];
213
+ }
214
+ const moveItemInArray = t10;
215
+ let t11;
216
+ if ($[32] !== value || $[33] !== setValue) {
217
+ t11 = (moveFromIndex_0, moveToIndex_0) => {
218
+ const updatedArray = moveItemInArray(value, moveFromIndex_0, moveToIndex_0);
219
+ setValue(updatedArray);
220
+ };
221
+ $[32] = value;
222
+ $[33] = setValue;
223
+ $[34] = t11;
224
+ } else {
225
+ t11 = $[34];
226
+ }
227
+ const moveRow = t11;
228
+ let t12;
229
+ if ($[35] !== value || $[36] !== setValue) {
230
+ t12 = index => {
231
+ const updatedArray_0 = [...value];
232
+ updatedArray_0.splice(index, 1);
233
+ setValue(updatedArray_0);
234
+ };
235
+ $[35] = value;
236
+ $[36] = setValue;
237
+ $[37] = t12;
238
+ } else {
239
+ t12 = $[37];
240
+ }
241
+ const removeItem = t12;
242
+ let t13;
243
+ if ($[38] !== relationTo || $[39] !== collections) {
244
+ t13 = typeof relationTo === "string" ? [relationTo] : collections.map(_temp);
245
+ $[38] = relationTo;
246
+ $[39] = collections;
247
+ $[40] = t13;
248
+ } else {
249
+ t13 = $[40];
250
+ }
251
+ let t14;
252
+ if ($[41] !== t13 || $[42] !== filterOptions) {
253
+ t14 = {
254
+ collectionSlugs: t13,
255
+ filterOptions
256
+ };
257
+ $[41] = t13;
258
+ $[42] = filterOptions;
259
+ $[43] = t14;
260
+ } else {
261
+ t14 = $[43];
262
+ }
263
+ const [ListDrawer, ListDrawerToggler] = useListDrawer(t14);
264
+ let t15;
265
+ if ($[44] !== relationTo || $[45] !== collections || $[46] !== setValue || $[47] !== value || $[48] !== Label || $[49] !== field || $[50] !== label || $[51] !== moveRow || $[52] !== fileDocs || $[53] !== isSortable || $[54] !== removeItem || $[55] !== canCreate || $[56] !== t || $[57] !== hasMany || $[58] !== _path || $[59] !== readOnly || $[60] !== ListDrawerToggler || $[61] !== ListDrawer) {
266
+ let t16;
267
+ if ($[63] !== relationTo) {
268
+ t16 = coll => coll.slug === relationTo;
269
+ $[63] = relationTo;
270
+ $[64] = t16;
271
+ } else {
272
+ t16 = $[64];
273
+ }
274
+ const collection_0 = collections.find(t16);
275
+ let t17;
276
+ if ($[65] !== setValue || $[66] !== value) {
277
+ t17 = selections => {
278
+ const selectedIDs = Object.entries(selections).reduce((acc, t18) => {
279
+ const [key, value_0] = t18;
280
+ return value_0 ? [...acc, key] : acc;
281
+ }, []);
282
+ setValue([...value, ...selectedIDs]);
283
+ };
284
+ $[65] = setValue;
285
+ $[66] = value;
286
+ $[67] = t17;
287
+ } else {
288
+ t17 = $[67];
289
+ }
290
+ const onBulkSelect = t17;
291
+ let t18;
292
+ if ($[68] === Symbol.for("react.memo_cache_sentinel")) {
293
+ t18 = [baseClass];
294
+ $[68] = t18;
295
+ } else {
296
+ t18 = $[68];
297
+ }
298
+ let t19;
299
+ if ($[69] === Symbol.for("react.memo_cache_sentinel")) {
300
+ t19 = [baseClass];
301
+ $[69] = t19;
302
+ } else {
303
+ t19 = $[69];
304
+ }
305
+ let t20;
306
+ if ($[70] !== moveRow) {
307
+ t20 = t21 => {
308
+ const {
309
+ moveFromIndex: moveFromIndex_1,
310
+ moveToIndex: moveToIndex_1
311
+ } = t21;
312
+ return moveRow(moveFromIndex_1, moveToIndex_1);
313
+ };
314
+ $[70] = moveRow;
315
+ $[71] = t20;
316
+ } else {
317
+ t20 = $[71];
318
+ }
319
+ let t21;
320
+ if ($[72] === Symbol.for("react.memo_cache_sentinel")) {
321
+ t21 = [`${baseClass}__controls`];
322
+ $[72] = t21;
323
+ } else {
324
+ t21 = $[72];
325
+ }
326
+ let t22;
327
+ if ($[73] === Symbol.for("react.memo_cache_sentinel")) {
328
+ t22 = [`${baseClass}__buttons`];
329
+ $[73] = t22;
330
+ } else {
331
+ t22 = $[73];
332
+ }
333
+ let t23;
334
+ if ($[74] !== canCreate || $[75] !== t || $[76] !== hasMany || $[77] !== _path || $[78] !== relationTo || $[79] !== setValue || $[80] !== value) {
335
+ t23 = canCreate && _jsx("div", {
336
+ className: [`${baseClass}__add-new`].join(" "),
337
+ children: _jsx(AddNewRelation, {
338
+ Button: _jsx(Button, {
339
+ buttonStyle: "icon-label",
340
+ el: "span",
341
+ icon: "plus",
342
+ iconPosition: "left",
343
+ iconStyle: "with-border",
344
+ children: t("fields:addNew")
345
+ }),
346
+ hasMany,
347
+ path: _path,
348
+ relationTo,
349
+ setValue,
350
+ unstyled: true,
351
+ value
352
+ })
353
+ });
354
+ $[74] = canCreate;
355
+ $[75] = t;
356
+ $[76] = hasMany;
357
+ $[77] = _path;
358
+ $[78] = relationTo;
359
+ $[79] = setValue;
360
+ $[80] = value;
361
+ $[81] = t23;
362
+ } else {
363
+ t23 = $[81];
364
+ }
365
+ let t24;
366
+ if ($[82] !== setValue) {
367
+ t24 = () => setValue([]);
368
+ $[82] = setValue;
369
+ $[83] = t24;
370
+ } else {
371
+ t24 = $[83];
372
+ }
373
+ let t25;
374
+ if ($[84] !== setValue || $[85] !== value) {
375
+ t25 = selection => {
376
+ setValue([...value, selection.docID]);
377
+ };
378
+ $[84] = setValue;
379
+ $[85] = value;
380
+ $[86] = t25;
381
+ } else {
382
+ t25 = $[86];
383
+ }
384
+ t15 = _jsxs(Fragment, {
385
+ children: [_jsxs("div", {
386
+ className: t18.join(" "),
387
+ children: [_jsx(FieldLabel, {
388
+ Label,
389
+ field,
390
+ label
391
+ }), _jsx("div", {
392
+ className: t19.join(" "),
393
+ children: _jsx("div", {
394
+ children: _jsx(DraggableSortable, {
395
+ className: `${baseClass}__draggable-rows`,
396
+ ids: value,
397
+ onDragEnd: t20,
398
+ children: Boolean(value.length) && value.map((id, index_0) => {
399
+ const doc_0 = fileDocs.find(doc => doc.id === id);
400
+ const uploadConfig = collection_0?.upload;
401
+ if (!doc_0) {
402
+ return null;
403
+ }
404
+ return _jsx(FileDetails, {
405
+ collectionSlug: relationTo,
406
+ doc: doc_0,
407
+ hasMany: true,
408
+ isSortable,
409
+ removeItem,
410
+ rowIndex: index_0,
411
+ uploadConfig
412
+ }, id);
413
+ })
414
+ })
415
+ })
416
+ }), _jsxs("div", {
417
+ className: t21.join(" "),
418
+ children: [_jsxs("div", {
419
+ className: t22.join(" "),
420
+ children: [t23, _jsx(ListDrawerToggler, {
421
+ className: `${baseClass}__toggler`,
422
+ disabled: readOnly,
423
+ children: _jsx("div", {
424
+ children: _jsx(Button, {
425
+ buttonStyle: "icon-label",
426
+ el: "span",
427
+ icon: "plus",
428
+ iconPosition: "left",
429
+ iconStyle: "with-border",
430
+ children: t("fields:chooseFromExisting")
431
+ })
432
+ })
433
+ })]
434
+ }), _jsx("button", {
435
+ className: `${baseClass}__clear-all`,
436
+ onClick: t24,
437
+ type: "button",
438
+ children: "Clear all"
439
+ })]
440
+ })]
441
+ }), _jsx(ListDrawer, {
442
+ enableRowSelections: true,
443
+ onBulkSelect,
444
+ onSelect: t25
445
+ })]
446
+ });
447
+ $[44] = relationTo;
448
+ $[45] = collections;
449
+ $[46] = setValue;
450
+ $[47] = value;
451
+ $[48] = Label;
452
+ $[49] = field;
453
+ $[50] = label;
454
+ $[51] = moveRow;
455
+ $[52] = fileDocs;
456
+ $[53] = isSortable;
457
+ $[54] = removeItem;
458
+ $[55] = canCreate;
459
+ $[56] = t;
460
+ $[57] = hasMany;
461
+ $[58] = _path;
462
+ $[59] = readOnly;
463
+ $[60] = ListDrawerToggler;
464
+ $[61] = ListDrawer;
465
+ $[62] = t15;
466
+ } else {
467
+ t15 = $[62];
468
+ }
469
+ return t15;
470
+ };
471
+ function _temp(collection) {
472
+ return collection.slug;
473
+ }
474
+ //# 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","t19","t20","t21","moveFromIndex_1","moveToIndex_1","t22","t23","_jsx","className","join","children","buttonStyle","el","icon","iconPosition","iconStyle","unstyled","t24","t25","selection","docID","_jsxs","ids","onDragEnd","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 } else {\n setFileDocs([])\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 setValue([...value, ...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 className={[baseClass].join(' ')}>\n <div>\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 </div>\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 setValue([...value, selection.docID])\n }}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,47 @@
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
+
39
+ html[data-theme='light'] {
40
+ .upload {
41
+ }
42
+ }
43
+
44
+ html[data-theme='dark'] {
45
+ .upload {
46
+ }
47
+ }
@@ -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