@payloadcms/ui 3.24.0-canary.f229d8d → 3.24.0

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 (213) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +143 -108
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +22 -20
  6. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  7. package/dist/elements/Button/index.d.ts.map +1 -1
  8. package/dist/elements/Button/index.js +1 -0
  9. package/dist/elements/Button/index.js.map +1 -1
  10. package/dist/elements/Button/index.scss +21 -5
  11. package/dist/elements/ConfirmationModal/index.d.ts +16 -0
  12. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -0
  13. package/dist/elements/ConfirmationModal/index.js +158 -0
  14. package/dist/elements/ConfirmationModal/index.js.map +1 -0
  15. package/dist/elements/{GenerateConfirmation → ConfirmationModal}/index.scss +1 -1
  16. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  17. package/dist/elements/DatePicker/DatePicker.js +2 -0
  18. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  19. package/dist/elements/DatePicker/types.d.ts +1 -0
  20. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  21. package/dist/elements/DatePicker/types.js.map +1 -1
  22. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  23. package/dist/elements/DeleteDocument/index.js +31 -79
  24. package/dist/elements/DeleteDocument/index.js.map +1 -1
  25. package/dist/elements/DeleteDocument/index.scss +0 -29
  26. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  27. package/dist/elements/DeleteMany/index.js +16 -43
  28. package/dist/elements/DeleteMany/index.js.map +1 -1
  29. package/dist/elements/DeleteMany/index.scss +0 -29
  30. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentControls/index.js.map +1 -1
  32. package/dist/elements/DuplicateDocument/index.d.ts +0 -1
  33. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  34. package/dist/elements/DuplicateDocument/index.js +25 -54
  35. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  36. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  37. package/dist/elements/EditMany/DrawerContent.js +3 -2
  38. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  39. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -0
  40. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  41. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -17
  42. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  43. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -0
  44. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  45. package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
  46. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  47. package/dist/elements/FileDetails/index.d.ts +1 -0
  48. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  49. package/dist/elements/FileDetails/index.js.map +1 -1
  50. package/dist/elements/GenerateConfirmation/index.d.ts +1 -2
  51. package/dist/elements/GenerateConfirmation/index.d.ts.map +1 -1
  52. package/dist/elements/GenerateConfirmation/index.js +23 -47
  53. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  54. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -1
  55. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  56. package/dist/elements/LeaveWithoutSaving/index.js +56 -113
  57. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  58. package/dist/elements/ListControls/index.d.ts +1 -0
  59. package/dist/elements/ListControls/index.d.ts.map +1 -1
  60. package/dist/elements/ListControls/index.js +14 -0
  61. package/dist/elements/ListControls/index.js.map +1 -1
  62. package/dist/elements/ListControls/index.scss +5 -0
  63. package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  64. package/dist/elements/Localizer/LocalizerLabel/index.js +11 -8
  65. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  66. package/dist/elements/Localizer/index.d.ts.map +1 -1
  67. package/dist/elements/Localizer/index.js +2 -0
  68. package/dist/elements/Localizer/index.js.map +1 -1
  69. package/dist/elements/Popup/index.d.ts +1 -0
  70. package/dist/elements/Popup/index.d.ts.map +1 -1
  71. package/dist/elements/Popup/index.js +2 -0
  72. package/dist/elements/Popup/index.js.map +1 -1
  73. package/dist/elements/PreviewButton/index.d.ts +2 -1
  74. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  75. package/dist/elements/PreviewButton/index.js +2 -2
  76. package/dist/elements/PreviewButton/index.js.map +1 -1
  77. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
  78. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  79. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  80. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +2 -0
  81. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  82. package/dist/elements/PublishButton/ScheduleDrawer/index.js +6 -2
  83. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  84. package/dist/elements/PublishButton/index.d.ts +2 -3
  85. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  86. package/dist/elements/PublishButton/index.js +20 -17
  87. package/dist/elements/PublishButton/index.js.map +1 -1
  88. package/dist/elements/PublishMany/index.d.ts +0 -1
  89. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  90. package/dist/elements/PublishMany/index.js +19 -45
  91. package/dist/elements/PublishMany/index.js.map +1 -1
  92. package/dist/elements/RelationshipTable/index.d.ts +7 -2
  93. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  94. package/dist/elements/RelationshipTable/index.js +69 -23
  95. package/dist/elements/RelationshipTable/index.js.map +1 -1
  96. package/dist/elements/RelationshipTable/index.scss +6 -0
  97. package/dist/elements/SaveButton/index.d.ts +2 -3
  98. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  99. package/dist/elements/SaveButton/index.js +3 -3
  100. package/dist/elements/SaveButton/index.js.map +1 -1
  101. package/dist/elements/SaveDraftButton/index.d.ts +2 -1
  102. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  103. package/dist/elements/SaveDraftButton/index.js +2 -2
  104. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  105. package/dist/elements/Status/index.d.ts.map +1 -1
  106. package/dist/elements/Status/index.js +173 -154
  107. package/dist/elements/Status/index.js.map +1 -1
  108. package/dist/elements/Status/index.scss +0 -41
  109. package/dist/elements/StayLoggedIn/index.d.ts +0 -1
  110. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  111. package/dist/elements/StayLoggedIn/index.js +45 -77
  112. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  113. package/dist/elements/Table/index.d.ts +1 -9
  114. package/dist/elements/Table/index.d.ts.map +1 -1
  115. package/dist/elements/Table/index.js.map +1 -1
  116. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  117. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  118. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  119. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +20 -0
  120. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  121. package/dist/elements/TableColumns/buildPolymorphicColumnState.js +200 -0
  122. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  123. package/dist/elements/TableColumns/index.d.ts +2 -3
  124. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  125. package/dist/elements/TableColumns/index.js +4 -3
  126. package/dist/elements/TableColumns/index.js.map +1 -1
  127. package/dist/elements/UnpublishMany/index.d.ts +1 -2
  128. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  129. package/dist/elements/UnpublishMany/index.js +14 -42
  130. package/dist/elements/UnpublishMany/index.js.map +1 -1
  131. package/dist/elements/Upload/index.d.ts.map +1 -1
  132. package/dist/elements/Upload/index.js +5 -1
  133. package/dist/elements/Upload/index.js.map +1 -1
  134. package/dist/elements/ViewDescription/index.d.ts +2 -5
  135. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  136. package/dist/elements/ViewDescription/index.js +2 -2
  137. package/dist/elements/ViewDescription/index.js.map +1 -1
  138. package/dist/exports/client/CodeEditor-L6GW2VQ6.js.map +0 -1
  139. package/dist/exports/client/{DatePicker-THCU4KZJ.js → DatePicker-HHQ6TPOW.js} +2 -2
  140. package/dist/exports/client/{DatePicker-THCU4KZJ.js.map → DatePicker-HHQ6TPOW.js.map} +0 -1
  141. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -1
  142. package/dist/exports/client/{chunk-EG3ZOHFS.js → chunk-IMEQ6NKQ.js} +2 -2
  143. package/dist/exports/client/{chunk-EG3ZOHFS.js.map → chunk-IMEQ6NKQ.js.map} +3 -4
  144. package/dist/exports/client/chunk-ZZDNSFEW.js.map +0 -1
  145. package/dist/exports/client/index.d.ts +46 -4
  146. package/dist/exports/client/index.d.ts.map +1 -1
  147. package/dist/exports/client/index.js +23 -23
  148. package/dist/exports/client/index.js.map +4 -5
  149. package/dist/fields/DateTime/index.d.ts.map +1 -1
  150. package/dist/fields/DateTime/index.js +24 -6
  151. package/dist/fields/DateTime/index.js.map +1 -1
  152. package/dist/fields/Join/index.d.ts.map +1 -1
  153. package/dist/fields/Join/index.js +8 -3
  154. package/dist/fields/Join/index.js.map +1 -1
  155. package/dist/fields/Select/Input.d.ts.map +1 -1
  156. package/dist/fields/Select/Input.js +2 -0
  157. package/dist/fields/Select/Input.js.map +1 -1
  158. package/dist/fields/Tabs/Tab/index.scss +2 -1
  159. package/dist/fields/Upload/Input.d.ts +1 -0
  160. package/dist/fields/Upload/Input.d.ts.map +1 -1
  161. package/dist/fields/Upload/Input.js.map +1 -1
  162. package/dist/forms/Form/index.d.ts.map +1 -1
  163. package/dist/forms/Form/index.js +19 -8
  164. package/dist/forms/Form/index.js.map +1 -1
  165. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  166. package/dist/forms/Form/initContextState.js +2 -0
  167. package/dist/forms/Form/initContextState.js.map +1 -1
  168. package/dist/forms/Form/types.d.ts +6 -0
  169. package/dist/forms/Form/types.d.ts.map +1 -1
  170. package/dist/forms/Form/types.js.map +1 -1
  171. package/dist/icons/Dots/index.d.ts +7 -0
  172. package/dist/icons/Dots/index.d.ts.map +1 -0
  173. package/dist/icons/Dots/index.js +12 -0
  174. package/dist/icons/Dots/index.js.map +1 -0
  175. package/dist/icons/Dots/index.scss +27 -0
  176. package/dist/providers/Selection/index.d.ts.map +1 -1
  177. package/dist/providers/Selection/index.js +5 -6
  178. package/dist/providers/Selection/index.js.map +1 -1
  179. package/dist/styles.css +1 -1
  180. package/dist/utilities/buildTableState.d.ts +1 -2
  181. package/dist/utilities/buildTableState.d.ts.map +1 -1
  182. package/dist/utilities/buildTableState.js +72 -20
  183. package/dist/utilities/buildTableState.js.map +1 -1
  184. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  185. package/dist/utilities/copyDataFromLocale.js +20 -14
  186. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  187. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  188. package/dist/utilities/handleFormStateLocking.js +3 -6
  189. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  190. package/dist/utilities/renderTable.d.ts +6 -4
  191. package/dist/utilities/renderTable.d.ts.map +1 -1
  192. package/dist/utilities/renderTable.js +49 -17
  193. package/dist/utilities/renderTable.js.map +1 -1
  194. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  195. package/dist/views/Edit/Auth/index.js +56 -55
  196. package/dist/views/Edit/Auth/index.js.map +1 -1
  197. package/dist/views/Edit/index.d.ts +2 -2
  198. package/dist/views/Edit/index.d.ts.map +1 -1
  199. package/dist/views/Edit/index.js +3 -3
  200. package/dist/views/Edit/index.js.map +1 -1
  201. package/dist/views/List/index.d.ts +2 -25
  202. package/dist/views/List/index.d.ts.map +1 -1
  203. package/dist/views/List/index.js +6 -3
  204. package/dist/views/List/index.js.map +1 -1
  205. package/dist/views/List/types.d.ts +1 -18
  206. package/dist/views/List/types.d.ts.map +1 -1
  207. package/dist/views/List/types.js.map +1 -1
  208. package/package.json +4 -4
  209. package/dist/elements/DuplicateDocument/index.scss +0 -42
  210. package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
  211. package/dist/elements/PublishMany/index.scss +0 -39
  212. package/dist/elements/StayLoggedIn/index.scss +0 -40
  213. package/dist/elements/UnpublishMany/index.scss +0 -39
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/DateTime/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA4B,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAe5E,OAAO,cAAc,CAAA;AA0KrB,eAAO,MAAM,aAAa;;;;;+EAAwC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/DateTime/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA4B,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAe5E,OAAO,cAAc,CAAA;AA4LrB,eAAO,MAAM,aAAa;;;;;+EAAwC,CAAA"}
@@ -39,6 +39,7 @@ const DateTimeFieldComponent = props => {
39
39
  readOnly,
40
40
  validate
41
41
  } = props;
42
+ const pickerAppearance = datePickerProps?.pickerAppearance || 'default';
42
43
  // Get the user timezone so we can adjust the displayed value against it
43
44
  const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
44
45
  const {
@@ -77,6 +78,11 @@ const DateTimeFieldComponent = props => {
77
78
  const timezonePath = path + '_tz';
78
79
  const timezoneField = useFormFields(([fields, _]) => fields?.[timezonePath]);
79
80
  const supportedTimezones = config.admin.timezones.supportedTimezones;
81
+ /**
82
+ * Date appearance doesn't include timestamps,
83
+ * which means we need to pin the time to always 12:00 for the selected date
84
+ */
85
+ const isDateOnly = ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance);
80
86
  const selectedTimezone = timezoneField?.value;
81
87
  // The displayed value should be the original value, adjusted to the user's timezone
82
88
  const displayedValue = useMemo(() => {
@@ -99,12 +105,24 @@ const DateTimeFieldComponent = props => {
99
105
  if (!readOnly) {
100
106
  if (timezone && selectedTimezone && incomingDate) {
101
107
  // Create TZDate instances for the selected timezone
102
- const tzDateWithUTC = TZDate.tz(selectedTimezone);
103
- // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor
104
- const dateToUserTz = new TZDate(incomingDate);
105
- // Transpose the date to the selected timezone
106
- const dateWithTimezone_0 = transpose(dateToUserTz, tzDateWithUTC);
107
- setValue(dateWithTimezone_0.toISOString() || null);
108
+ const TZDateWithSelectedTz = TZDate.tz(selectedTimezone);
109
+ if (isDateOnly) {
110
+ // We need to offset this hardcoded hour offset from the DatePicker elemenent
111
+ // this can be removed in 4.0 when we remove the hardcoded offset as it is a breaking change
112
+ // const tzOffset = incomingDate.getTimezoneOffset() / 60
113
+ const incomingOffset = incomingDate.getTimezoneOffset() / 60;
114
+ const originalHour = incomingDate.getHours() + incomingOffset;
115
+ incomingDate.setHours(originalHour);
116
+ // Convert the original date as picked into the desired timezone.
117
+ const dateToSelectedTz = transpose(incomingDate, TZDateWithSelectedTz);
118
+ setValue(dateToSelectedTz.toISOString() || null);
119
+ } else {
120
+ // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor
121
+ const dateToUserTz = new TZDate(incomingDate);
122
+ // Transpose the date to the selected timezone
123
+ const dateWithTimezone_0 = transpose(dateToUserTz, TZDateWithSelectedTz);
124
+ setValue(dateWithTimezone_0.toISOString() || null);
125
+ }
108
126
  } else {
109
127
  setValue(incomingDate?.toISOString() || null);
110
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","transpose","useCallback","useMemo","DatePickerField","RenderCustomComponent","TimezonePicker","FieldDescription","FieldError","FieldLabel","useForm","useFormFields","useField","withCondition","useConfig","useTranslation","mergeFieldStyles","fieldBaseClass","baseClass","DateTimeFieldComponent","props","field","admin","className","date","datePickerProps","description","placeholder","label","localized","required","timezone","path","readOnly","validate","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","config","i18n","dispatchFields","setModified","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","timezonePath","timezoneField","fields","_","supportedTimezones","timezones","selectedTimezone","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","styles","onChange","incomingDate","tzDateWithUTC","dateToUserTz","onChangeTimezone","type","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","overrides","length","DateTimeField"],"sources":["../../../src/fields/DateTime/index.tsx"],"sourcesContent":["'use client'\nimport type { DateFieldClientComponent, DateFieldValidation } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transpose } from 'date-fns'\nimport { useCallback, useMemo } from 'react'\n\nimport { DatePickerField } from '../../elements/DatePicker/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { TimezonePicker } from '../../elements/TimezonePicker/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormFields } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport './index.scss'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst baseClass = 'date-time-field'\n\nconst DateTimeFieldComponent: DateFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, date: datePickerProps, description, placeholder } = {},\n label,\n localized,\n required,\n timezone,\n },\n path,\n readOnly,\n validate,\n } = props\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const { dispatchFields, setModified } = useForm()\n\n const memoizedValidate: DateFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField<Date>({\n path,\n validate: memoizedValidate,\n })\n\n const timezonePath = path + '_tz'\n const timezoneField = useFormFields(([fields, _]) => fields?.[timezonePath])\n const supportedTimezones = config.admin.timezones.supportedTimezones\n\n const selectedTimezone = timezoneField?.value as string\n\n // The displayed value should be the original value, adjusted to the user's timezone\n const displayedValue = useMemo(() => {\n if (timezone && selectedTimezone && userTimezone && value) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(selectedTimezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(value).withTimeZone(selectedTimezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return value\n }, [timezone, selectedTimezone, value, userTimezone])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const onChange = useCallback(\n (incomingDate: Date) => {\n if (!readOnly) {\n if (timezone && selectedTimezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(selectedTimezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setValue(dateWithTimezone.toISOString() || null)\n } else {\n setValue(incomingDate?.toISOString() || null)\n }\n }\n },\n [readOnly, setValue, timezone, selectedTimezone],\n )\n\n const onChangeTimezone = useCallback(\n (timezone: string) => {\n if (timezonePath) {\n dispatchFields({\n type: 'UPDATE',\n path: timezonePath,\n value: timezone,\n })\n\n setModified(true)\n }\n },\n [dispatchFields, setModified, timezonePath],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && `${baseClass}--has-error`,\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={<FieldLabel label={label} localized={localized} required={required} />}\n />\n <div className={`${fieldBaseClass}__wrap`} id={`field-${path.replace(/\\./g, '__')}`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <DatePickerField\n {...datePickerProps}\n onChange={onChange}\n overrides={{\n ...datePickerProps?.overrides,\n }}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly}\n value={displayedValue}\n />\n {timezone && supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`${path}-timezone-picker`}\n onChange={onChangeTimezone}\n options={supportedTimezones}\n required={required}\n selectedTimezone={selectedTimezone}\n />\n )}\n\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const DateTimeField = withCondition(DateTimeFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","transpose","useCallback","useMemo","DatePickerField","RenderCustomComponent","TimezonePicker","FieldDescription","FieldError","FieldLabel","useForm","useFormFields","useField","withCondition","useConfig","useTranslation","mergeFieldStyles","fieldBaseClass","baseClass","DateTimeFieldComponent","props","field","admin","className","date","datePickerProps","description","placeholder","label","localized","required","timezone","path","readOnly","validate","pickerAppearance","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","config","i18n","dispatchFields","setModified","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","timezonePath","timezoneField","fields","_","supportedTimezones","timezones","isDateOnly","includes","selectedTimezone","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","styles","onChange","incomingDate","TZDateWithSelectedTz","incomingOffset","getTimezoneOffset","originalHour","getHours","setHours","dateToSelectedTz","dateToUserTz","onChangeTimezone","type","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","overrides","length","DateTimeField"],"sources":["../../../src/fields/DateTime/index.tsx"],"sourcesContent":["'use client'\nimport type { DateFieldClientComponent, DateFieldValidation } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transpose } from 'date-fns'\nimport { useCallback, useMemo } from 'react'\n\nimport { DatePickerField } from '../../elements/DatePicker/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { TimezonePicker } from '../../elements/TimezonePicker/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormFields } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport './index.scss'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst baseClass = 'date-time-field'\n\nconst DateTimeFieldComponent: DateFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, date: datePickerProps, description, placeholder } = {},\n label,\n localized,\n required,\n timezone,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const pickerAppearance = datePickerProps?.pickerAppearance || 'default'\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const { dispatchFields, setModified } = useForm()\n\n const memoizedValidate: DateFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const timezonePath = path + '_tz'\n const timezoneField = useFormFields(([fields, _]) => fields?.[timezonePath])\n const supportedTimezones = config.admin.timezones.supportedTimezones\n /**\n * Date appearance doesn't include timestamps,\n * which means we need to pin the time to always 12:00 for the selected date\n */\n const isDateOnly = ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)\n const selectedTimezone = timezoneField?.value as string\n\n // The displayed value should be the original value, adjusted to the user's timezone\n const displayedValue = useMemo(() => {\n if (timezone && selectedTimezone && userTimezone && value) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(selectedTimezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(value).withTimeZone(selectedTimezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return value\n }, [timezone, selectedTimezone, value, userTimezone])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const onChange = useCallback(\n (incomingDate: Date) => {\n if (!readOnly) {\n if (timezone && selectedTimezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const TZDateWithSelectedTz = TZDate.tz(selectedTimezone)\n\n if (isDateOnly) {\n // We need to offset this hardcoded hour offset from the DatePicker elemenent\n // this can be removed in 4.0 when we remove the hardcoded offset as it is a breaking change\n // const tzOffset = incomingDate.getTimezoneOffset() / 60\n const incomingOffset = incomingDate.getTimezoneOffset() / 60\n const originalHour = incomingDate.getHours() + incomingOffset\n incomingDate.setHours(originalHour)\n\n // Convert the original date as picked into the desired timezone.\n const dateToSelectedTz = transpose(incomingDate, TZDateWithSelectedTz)\n\n setValue(dateToSelectedTz.toISOString() || null)\n } else {\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, TZDateWithSelectedTz)\n\n setValue(dateWithTimezone.toISOString() || null)\n }\n } else {\n setValue(incomingDate?.toISOString() || null)\n }\n }\n },\n [readOnly, setValue, timezone, selectedTimezone],\n )\n\n const onChangeTimezone = useCallback(\n (timezone: string) => {\n if (timezonePath) {\n dispatchFields({\n type: 'UPDATE',\n path: timezonePath,\n value: timezone,\n })\n\n setModified(true)\n }\n },\n [dispatchFields, setModified, timezonePath],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && `${baseClass}--has-error`,\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={<FieldLabel label={label} localized={localized} required={required} />}\n />\n <div className={`${fieldBaseClass}__wrap`} id={`field-${path.replace(/\\./g, '__')}`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <DatePickerField\n {...datePickerProps}\n onChange={onChange}\n overrides={{\n ...datePickerProps?.overrides,\n }}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly}\n value={displayedValue}\n />\n {timezone && supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`${path}-timezone-picker`}\n onChange={onChangeTimezone}\n options={supportedTimezones}\n required={required}\n selectedTimezone={selectedTimezone}\n />\n )}\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const DateTimeField = withCondition(DateTimeFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AAuNtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AAoOtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
@@ -136,7 +136,7 @@ const JoinFieldComponent = props => {
136
136
  value: value_0
137
137
  };
138
138
  }
139
- const where = {
139
+ const where = Array.isArray(collection) ? {} : {
140
140
  [on]: {
141
141
  equals: value_0
142
142
  }
@@ -147,10 +147,10 @@ const JoinFieldComponent = props => {
147
147
  };
148
148
  }
149
149
  return where;
150
- }, [docID, field.targetField.relationTo, field.where, on, docConfig?.slug]);
150
+ }, [docID, collection, field.targetField.relationTo, field.where, on, docConfig?.slug]);
151
151
  const initialDrawerData = useMemo(() => {
152
152
  const relatedCollection = getEntityConfig({
153
- collectionSlug: field.collection
153
+ collectionSlug: Array.isArray(field.collection) ? field.collection[0] : field.collection
154
154
  });
155
155
  return getInitialDrawerData({
156
156
  collectionSlug: docConfig?.slug,
@@ -194,6 +194,11 @@ const JoinFieldComponent = props => {
194
194
  required: required
195
195
  })
196
196
  }),
197
+ parent: Array.isArray(collection) ? {
198
+ id: docID,
199
+ collectionSlug: docConfig.slug,
200
+ joinPath: path
201
+ } : undefined,
197
202
  relationTo: collection
198
203
  }), /*#__PURE__*/_jsx(RenderCustomComponent, {
199
204
  CustomComponent: Description,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ObjectIdImport","flattenTopLevelFields","React","useMemo","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","FieldDescription","FieldError","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","config","docID","fields","segments","flattenedFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","_block","blockReferences","blocks","block","blocksMap","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","docConfig","getEntityConfig","customComponents","AfterInput","BeforeInput","Description","Error","Label","showError","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","CustomComponent","Fallback","disableTable","docs","style","margin","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientConfig,\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n config,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n config: ClientConfig\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields)\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || field.type === 'group') {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const _block of field.blockReferences ?? field.blocks) {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { allowCreate, description },\n collection,\n label,\n localized,\n on,\n required,\n },\n path,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n showError,\n value,\n } = useField<PaginatedDocs>({\n path,\n })\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({ collectionSlug: field.collection })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n config,\n docID,\n fields: relatedCollection.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, showError && 'error', 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <h4 style={{ margin: 0 }}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ObjectIdImport","flattenTopLevelFields","React","useMemo","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","FieldDescription","FieldError","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","config","docID","fields","segments","flattenedFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","_block","blockReferences","blocks","block","blocksMap","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","docConfig","getEntityConfig","customComponents","AfterInput","BeforeInput","Description","Error","Label","showError","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","CustomComponent","Fallback","disableTable","docs","style","margin","parent","joinPath","undefined","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientConfig,\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n config,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n config: ClientConfig\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields)\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || field.type === 'group') {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const _block of field.blockReferences ?? field.blocks) {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { allowCreate, description },\n collection,\n label,\n localized,\n on,\n required,\n },\n path,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n showError,\n value,\n } = useField<PaginatedDocs>({\n path,\n })\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = Array.isArray(collection)\n ? {}\n : {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, collection, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({\n collectionSlug: Array.isArray(field.collection) ? field.collection[0] : field.collection,\n })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n config,\n docID,\n fields: relatedCollection.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, showError && 'error', 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <h4 style={{ margin: 0 }}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n }\n parent={\n Array.isArray(collection)\n ? {\n id: docID,\n collectionSlug: docConfig.slug,\n joinPath: path,\n }\n : undefined\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Select/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AASlF,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAA;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAA;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,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,GAAG,MAAM,EAAE,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6FlD,CAAA"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Select/Input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAG3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AASlF,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAA;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAA;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,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,GAAG,MAAM,EAAE,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgGlD,CAAA"}
@@ -91,6 +91,8 @@ export const SelectInput = props => {
91
91
  label: t4,
92
92
  value: matchingOption_0?.value ?? value
93
93
  };
94
+ } else {
95
+ valueToRender = null;
94
96
  }
95
97
  }
96
98
  const t4 = showError && "error";
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","SelectInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","hasMany","t0","isClearable","t1","isSortable","t2","label","Label","localized","onChange","onInputChange","options","path","readOnly","required","showError","style","value","undefined","i18n","t3","valueToRender","Array","isArray","t4","val","matchingOption","find","option","map","matchingOption_0","t5","option_0","t6","filter","Boolean","t7","option_1","_jsxs","join","id","replace","children","_jsx","CustomComponent","Fallback","disabled","isMulti"],"sources":["../../../src/fields/Select/Input.tsx"],"sourcesContent":["'use client'\nimport type { OptionObject, StaticDescription, StaticLabel } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type SelectInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly hasMany?: boolean\n readonly isClearable?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly name: string\n readonly onChange?: ReactSelectAdapterProps['onChange']\n readonly onInputChange?: ReactSelectAdapterProps['onInputChange']\n readonly options?: OptionObject[]\n readonly path: string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string | string[]\n}\n\nexport const SelectInput: React.FC<SelectInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n hasMany = false,\n isClearable = true,\n isSortable = true,\n label,\n Label,\n localized,\n onChange,\n onInputChange,\n options,\n path,\n readOnly,\n required,\n showError,\n style,\n value,\n } = props\n\n const { i18n } = useTranslation()\n\n let valueToRender\n\n if (hasMany && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n }\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'select',\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <ReactSelect\n disabled={readOnly}\n isClearable={isClearable}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={onChange}\n onInputChange={onInputChange}\n options={options.map((option) => ({\n ...option,\n label: getTranslation(option.label, i18n),\n }))}\n showError={showError}\n value={valueToRender as OptionObject}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","SelectInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","hasMany","t0","isClearable","t1","isSortable","t2","label","Label","localized","onChange","onInputChange","options","path","readOnly","required","showError","style","value","undefined","i18n","t3","valueToRender","Array","isArray","t4","val","matchingOption","find","option","map","matchingOption_0","t5","option_0","t6","filter","Boolean","t7","option_1","_jsxs","join","id","replace","children","_jsx","CustomComponent","Fallback","disabled","isMulti"],"sources":["../../../src/fields/Select/Input.tsx"],"sourcesContent":["'use client'\nimport type { OptionObject, StaticDescription, StaticLabel } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type SelectInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly hasMany?: boolean\n readonly isClearable?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly name: string\n readonly onChange?: ReactSelectAdapterProps['onChange']\n readonly onInputChange?: ReactSelectAdapterProps['onInputChange']\n readonly options?: OptionObject[]\n readonly path: string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string | string[]\n}\n\nexport const SelectInput: React.FC<SelectInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n hasMany = false,\n isClearable = true,\n isSortable = true,\n label,\n Label,\n localized,\n onChange,\n onInputChange,\n options,\n path,\n readOnly,\n required,\n showError,\n style,\n value,\n } = props\n\n const { i18n } = useTranslation()\n\n let valueToRender\n\n if (hasMany && Array.isArray(value)) {\n valueToRender = value.map((val) => {\n const matchingOption = options.find((option) => option.value === val)\n return {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : val,\n value: matchingOption?.value ?? val,\n }\n })\n } else if (value) {\n const matchingOption = options.find((option) => option.value === value)\n valueToRender = {\n label: matchingOption ? getTranslation(matchingOption.label, i18n) : value,\n value: matchingOption?.value ?? value,\n }\n } else {\n // If value is not present then render nothing, allowing select fields to reset to their initial 'Select an option' state\n valueToRender = null\n }\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'select',\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <ReactSelect\n disabled={readOnly}\n isClearable={isClearable}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={onChange}\n onInputChange={onInputChange}\n options={options.map((option) => ({\n ...option,\n label: getTranslation(option.label, i18n),\n }))}\n showError={showError}\n value={valueToRender as OptionObject}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,8 @@
6
6
  @extend %h4;
7
7
  display: flex;
8
8
  padding-bottom: base(1);
9
- margin: 0 $baseline 0 0;
9
+ margin: 0;
10
+ margin-inline-end: $baseline;
10
11
  cursor: pointer;
11
12
  opacity: 0.5;
12
13
  position: relative;
@@ -19,6 +19,7 @@ export type UploadInputProps = {
19
19
  readonly Error?: React.ReactNode;
20
20
  readonly filterOptions?: FilterOptionsResult;
21
21
  readonly hasMany?: boolean;
22
+ readonly hideRemoveFile?: boolean;
22
23
  readonly isSortable?: boolean;
23
24
  readonly Label?: React.ReactNode;
24
25
  readonly label?: StaticLabel;
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EAEnB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,IAAI,eAAe,EAE/B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAIjD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAqB9D,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,WAAW,CAAA;AAIjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,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,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;IAClD,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,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;CACzD,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAmhBlD"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EAEnB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,IAAI,eAAe,EAE/B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAIjD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAqB9D,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,WAAW,CAAA;AAIjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,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,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAA;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;IAClD,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,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;CACzD,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAmhBlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","includes","undefined","doc_0","index","filename","isPlaceholder","populateDocs","t16","newDocs","mergedValue","_temp","currentDocs","doc_2","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_3","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","updatedDocsToPropogate","currentDocs_3","existingDocIndex","findIndex","doc_4","hasExisting","updatedDocs","_temp2","reloadDoc","t22","newValue_0","newValueIDs","_temp3","onReorder","t23","newValue_1","newValueIDs_0","_temp4","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_6","t26","t27","showDropzone","t28","t29","t30","filter","Boolean","t31","join","t32","replace","t33","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp5","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1","value_1","value_0","doc_5","doc_1"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\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 let sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n if (sortedDocs.includes(undefined) && hasMany) {\n sortedDocs = sortedDocs.map((doc, index) =>\n doc\n ? doc\n : {\n id: ids[index],\n filename: `${t('general:untitled')} - ID: ${ids[index]}`,\n isPlaceholder: true,\n },\n )\n }\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language, t, hasMany],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n setCurrentActivePath(path)\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n maxRows,\n setMaxFiles,\n path,\n setCurrentActivePath,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n let updatedDocsToPropogate = []\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n const hasExisting = doc.value?.id === docs[0].id || doc.value?.isPlaceholder\n return hasExisting && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n updatedDocsToPropogate = updatedDocs\n return updatedDocs\n }\n })\n\n if (updatedDocsToPropogate.length && hasMany) {\n onChange(updatedDocsToPropogate.map((doc) => doc.value?.id))\n }\n }\n },\n [populateDocs, onChange, hasMany],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n useEffect(() => {\n setOnSuccess(path, onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\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 id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","includes","undefined","doc_0","index","filename","isPlaceholder","populateDocs","t16","newDocs","mergedValue","_temp","currentDocs","doc_2","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_3","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","updatedDocsToPropogate","currentDocs_3","existingDocIndex","findIndex","doc_4","hasExisting","updatedDocs","_temp2","reloadDoc","t22","newValue_0","newValueIDs","_temp3","onReorder","t23","newValue_1","newValueIDs_0","_temp4","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_6","t26","t27","showDropzone","t28","t29","t30","filter","Boolean","t31","join","t32","replace","t33","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp5","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1","value_1","value_0","doc_5","doc_1"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly hideRemoveFile?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\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 let sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n if (sortedDocs.includes(undefined) && hasMany) {\n sortedDocs = sortedDocs.map((doc, index) =>\n doc\n ? doc\n : {\n id: ids[index],\n filename: `${t('general:untitled')} - ID: ${ids[index]}`,\n isPlaceholder: true,\n },\n )\n }\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language, t, hasMany],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n setCurrentActivePath(path)\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n maxRows,\n setMaxFiles,\n path,\n setCurrentActivePath,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n let updatedDocsToPropogate = []\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n const hasExisting = doc.value?.id === docs[0].id || doc.value?.isPlaceholder\n return hasExisting && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n updatedDocsToPropogate = updatedDocs\n return updatedDocs\n }\n })\n\n if (updatedDocsToPropogate.length && hasMany) {\n onChange(updatedDocsToPropogate.map((doc) => doc.value?.id))\n }\n }\n },\n [populateDocs, onChange, hasMany],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n useEffect(() => {\n setOnSuccess(path, onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\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 id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAiCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA8sBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAiCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA6tBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}