@payloadcms/ui 3.0.0-beta.94 → 3.0.0-beta.96

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 (219) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +6 -2
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/Banner/index.d.ts.map +1 -1
  5. package/dist/elements/Banner/index.js +6 -2
  6. package/dist/elements/Banner/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  8. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/ActionsBar/index.scss +4 -4
  10. package/dist/elements/BulkUpload/AddFilesView/index.js +1 -0
  11. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/AddFilesView/index.scss +1 -1
  13. package/dist/elements/BulkUpload/EditForm/index.js +6 -2
  14. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/FileSidebar/index.scss +8 -10
  16. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  17. package/dist/elements/BulkUpload/FormsManager/index.js +3 -1
  18. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  20. package/dist/elements/BulkUpload/index.js.map +1 -1
  21. package/dist/elements/Button/index.d.ts.map +1 -1
  22. package/dist/elements/Button/index.js +23 -15
  23. package/dist/elements/Button/index.js.map +1 -1
  24. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  25. package/dist/elements/Collapsible/index.js.map +1 -1
  26. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  27. package/dist/elements/ColumnSelector/index.js.map +1 -1
  28. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  29. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  30. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  31. package/dist/elements/DraggableSortable/index.js.map +1 -1
  32. package/dist/elements/Drawer/index.d.ts.map +1 -1
  33. package/dist/elements/Drawer/index.js.map +1 -1
  34. package/dist/elements/Dropzone/index.scss +1 -1
  35. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  36. package/dist/elements/EditUpload/index.js +23 -11
  37. package/dist/elements/EditUpload/index.js.map +1 -1
  38. package/dist/elements/ErrorPill/index.d.ts.map +1 -1
  39. package/dist/elements/ErrorPill/index.js +3 -1
  40. package/dist/elements/ErrorPill/index.js.map +1 -1
  41. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  42. package/dist/elements/FieldSelect/index.js +3 -1
  43. package/dist/elements/FieldSelect/index.js.map +1 -1
  44. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  45. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  46. package/dist/elements/ListDrawer/index.scss +1 -1
  47. package/dist/elements/Pagination/index.d.ts.map +1 -1
  48. package/dist/elements/Pagination/index.js +19 -9
  49. package/dist/elements/Pagination/index.js.map +1 -1
  50. package/dist/elements/PerPage/index.d.ts.map +1 -1
  51. package/dist/elements/PerPage/index.js.map +1 -1
  52. package/dist/elements/Pill/index.d.ts.map +1 -1
  53. package/dist/elements/Pill/index.js +11 -5
  54. package/dist/elements/Pill/index.js.map +1 -1
  55. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  56. package/dist/elements/Popup/PopupTrigger/index.js +3 -1
  57. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  58. package/dist/elements/Popup/index.d.ts.map +1 -1
  59. package/dist/elements/Popup/index.js +3 -1
  60. package/dist/elements/Popup/index.js.map +1 -1
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  62. package/dist/elements/PreviewButton/usePreviewURL.js +18 -6
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  64. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  65. package/dist/elements/PreviewSizes/index.js +15 -5
  66. package/dist/elements/PreviewSizes/index.js.map +1 -1
  67. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  68. package/dist/elements/PublishButton/index.js +5 -3
  69. package/dist/elements/PublishButton/index.js.map +1 -1
  70. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  71. package/dist/elements/ReactSelect/DropdownIndicator/index.js +3 -1
  72. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  73. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  74. package/dist/elements/ReactSelect/index.js +3 -1
  75. package/dist/elements/ReactSelect/index.js.map +1 -1
  76. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  77. package/dist/elements/SaveButton/index.js +5 -3
  78. package/dist/elements/SaveButton/index.js.map +1 -1
  79. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  80. package/dist/elements/SaveDraftButton/index.js +11 -5
  81. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  82. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  83. package/dist/elements/SearchFilter/index.js +3 -1
  84. package/dist/elements/SearchFilter/index.js.map +1 -1
  85. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  86. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js.map +1 -1
  89. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  90. package/dist/elements/SortComplex/index.js.map +1 -1
  91. package/dist/elements/Table/DefaultCell/fields/File/index.scss +5 -5
  92. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  93. package/dist/elements/TableColumns/buildColumnState.js +9 -3
  94. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  95. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  96. package/dist/elements/TableColumns/index.js.map +1 -1
  97. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  98. package/dist/elements/Tooltip/index.js.map +1 -1
  99. package/dist/elements/Upload/index.d.ts.map +1 -1
  100. package/dist/elements/Upload/index.js +37 -32
  101. package/dist/elements/Upload/index.js.map +1 -1
  102. package/dist/elements/Upload/index.scss +27 -1
  103. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  104. package/dist/elements/WhereBuilder/reduceClientFields.js +3 -1
  105. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  106. package/dist/exports/client/{CodeEditor-P66JEENA.js → CodeEditor-CHKRX3U2.js} +4 -4
  107. package/dist/exports/client/{CodeEditor-P66JEENA.js.map → CodeEditor-CHKRX3U2.js.map} +4 -4
  108. package/dist/exports/client/{DatePicker-E6IJFDN2.js → DatePicker-OLRZVTAD.js} +2 -2
  109. package/dist/exports/client/{chunk-XKP472RX.js → chunk-BGA6EPOL.js} +1 -1
  110. package/dist/exports/client/{chunk-XKP472RX.js.map → chunk-BGA6EPOL.js.map} +2 -2
  111. package/dist/exports/client/{chunk-OBXEO4WP.js → chunk-JINNHJP7.js} +1 -1
  112. package/dist/exports/client/{chunk-OBXEO4WP.js.map → chunk-JINNHJP7.js.map} +2 -2
  113. package/dist/exports/client/index.js +19 -19
  114. package/dist/exports/client/index.js.map +3 -3
  115. package/dist/exports/shared/index.js.map +2 -2
  116. package/dist/fields/Array/index.d.ts.map +1 -1
  117. package/dist/fields/Array/index.js.map +1 -1
  118. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  119. package/dist/fields/Blocks/BlocksDrawer/index.js +3 -1
  120. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  121. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  122. package/dist/fields/Checkbox/index.js.map +1 -1
  123. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  124. package/dist/fields/Collapsible/index.js.map +1 -1
  125. package/dist/fields/DateTime/index.d.ts.map +1 -1
  126. package/dist/fields/DateTime/index.js.map +1 -1
  127. package/dist/fields/JSON/index.d.ts.map +1 -1
  128. package/dist/fields/JSON/index.js +16 -8
  129. package/dist/fields/JSON/index.js.map +1 -1
  130. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  131. package/dist/fields/RadioGroup/index.js.map +1 -1
  132. package/dist/fields/Relationship/index.d.ts.map +1 -1
  133. package/dist/fields/Relationship/index.js +9 -3
  134. package/dist/fields/Relationship/index.js.map +1 -1
  135. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  136. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  137. package/dist/fields/Select/index.d.ts.map +1 -1
  138. package/dist/fields/Select/index.js +8 -6
  139. package/dist/fields/Select/index.js.map +1 -1
  140. package/dist/fields/Text/index.d.ts.map +1 -1
  141. package/dist/fields/Text/index.js.map +1 -1
  142. package/dist/fields/Textarea/index.d.ts.map +1 -1
  143. package/dist/fields/Textarea/index.js.map +1 -1
  144. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  145. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  146. package/dist/fields/Upload/HasOne/index.scss +0 -1
  147. package/dist/fields/Upload/Input.d.ts.map +1 -1
  148. package/dist/fields/Upload/Input.js +575 -268
  149. package/dist/fields/Upload/Input.js.map +1 -1
  150. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  151. package/dist/fields/Upload/RelationshipContent/index.js +9 -4
  152. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  153. package/dist/fields/Upload/RelationshipContent/index.scss +6 -3
  154. package/dist/fields/Upload/UploadCard/index.scss +3 -3
  155. package/dist/fields/Upload/index.d.ts.map +1 -1
  156. package/dist/fields/Upload/index.js +4 -3
  157. package/dist/fields/Upload/index.js.map +1 -1
  158. package/dist/fields/Upload/index.scss +8 -6
  159. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  160. package/dist/forms/Form/fieldReducer.js +6 -2
  161. package/dist/forms/Form/fieldReducer.js.map +1 -1
  162. package/dist/forms/Form/index.d.ts.map +1 -1
  163. package/dist/forms/Form/index.js +18 -6
  164. package/dist/forms/Form/index.js.map +1 -1
  165. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  166. package/dist/forms/Form/mergeServerFormState.js +3 -1
  167. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  168. package/dist/forms/Form/rowHelpers.d.ts.map +1 -1
  169. package/dist/forms/Form/rowHelpers.js +9 -3
  170. package/dist/forms/Form/rowHelpers.js.map +1 -1
  171. package/dist/forms/Form/rows.d.ts.map +1 -1
  172. package/dist/forms/Form/rows.js +3 -1
  173. package/dist/forms/Form/rows.js.map +1 -1
  174. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  175. package/dist/forms/NullifyField/index.js.map +1 -1
  176. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  177. package/dist/forms/RenderFields/RenderField.js +3 -1
  178. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  179. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  180. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +6 -2
  181. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  182. package/dist/graphics/Account/index.d.ts.map +1 -1
  183. package/dist/graphics/Account/index.js.map +1 -1
  184. package/dist/hooks/useHotkey.d.ts.map +1 -1
  185. package/dist/hooks/useHotkey.js.map +1 -1
  186. package/dist/hooks/useIntersect.d.ts.map +1 -1
  187. package/dist/hooks/useIntersect.js.map +1 -1
  188. package/dist/providers/Auth/index.d.ts.map +1 -1
  189. package/dist/providers/Auth/index.js +6 -2
  190. package/dist/providers/Auth/index.js.map +1 -1
  191. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  192. package/dist/providers/Config/createClientConfig/collections.js +3 -1
  193. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  194. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.d.ts.map +1 -1
  195. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js +3 -1
  196. package/dist/providers/Config/createClientConfig/getCreateMappedComponent.js.map +1 -1
  197. package/dist/providers/Config/createClientConfig/index.d.ts.map +1 -1
  198. package/dist/providers/Config/createClientConfig/index.js +15 -0
  199. package/dist/providers/Config/createClientConfig/index.js.map +1 -1
  200. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  201. package/dist/providers/DocumentInfo/index.js +12 -4
  202. package/dist/providers/DocumentInfo/index.js.map +1 -1
  203. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  204. package/dist/providers/ListQuery/index.js +6 -2
  205. package/dist/providers/ListQuery/index.js.map +1 -1
  206. package/dist/providers/Locale/index.d.ts.map +1 -1
  207. package/dist/providers/Locale/index.js.map +1 -1
  208. package/dist/providers/Preferences/index.d.ts.map +1 -1
  209. package/dist/providers/Preferences/index.js +3 -1
  210. package/dist/providers/Preferences/index.js.map +1 -1
  211. package/dist/styles.css +1 -1
  212. package/dist/utilities/buildFormState.d.ts.map +1 -1
  213. package/dist/utilities/buildFormState.js +6 -2
  214. package/dist/utilities/buildFormState.js.map +1 -1
  215. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  216. package/dist/utilities/reduceFieldsToValuesWithValidation.js +6 -2
  217. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  218. package/package.json +8 -8
  219. /package/dist/exports/client/{DatePicker-E6IJFDN2.js.map → DatePicker-OLRZVTAD.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","Dropzone","useListDrawer","ShimmerEffect","useAuth","useLocale","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","Description","Error","Label","allowNewUpload","api","className","description","descriptionProps","errorProps","field","filterOptions","filterOptionsFromProps","hasMany","isSortable","label","labelProps","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","width","populatedDocs","setPopulatedDocs","useState","activeRelationTo","setActiveRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","id","not_in","concat","ListDrawer","ListDrawerToggler","closeDrawer","closeListDrawer","collectionSlugs","inputRef","useRef","loadedValueDocsRef","canCreate","collections","create","permission","newValue","populateDocs","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","language","method","ok","json","sortedDocs","map","docs","find","doc","onUploadSuccess","newDocs","mergedValue","currentDocs","firstDoc","onFileSelection","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onListBulkSelect","selectedDocIDs","Object","entries","reduce","acc","docID","isSelected","push","loadedDocs","onListSelect","collectionSlug","selectedDoc","onReorder","newValueIDs","onRemove","loadInitialDocs","current","showDropzone","_jsxs","filter","Boolean","join","_jsx","CustomError","_Fragment","fileDocs","readonly","height","fileDoc","multipleFiles","buttonStyle","disabled","icon","iconPosition","onClick","click","size","hidden","multiple","e","target","ref","type","el","enableRowSelections","onBulkSelect","onSelect"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldDescriptionClientProps,\n FieldErrorClientProps,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n MappedComponent,\n PaginatedDocs,\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'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { 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 Description?: MappedComponent\n readonly Error?: MappedComponent\n readonly Label?: MappedComponent\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly allowNewUpload?: boolean\n readonly api?: string\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly description?: StaticDescription\n readonly descriptionProps?: FieldDescriptionClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly errorProps?: FieldErrorClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly field?: MarkOptional<UploadFieldClient, 'type'>\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly label: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\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 readonly width?: string\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n Description,\n Error,\n Label,\n allowNewUpload,\n api,\n className,\n description,\n descriptionProps,\n errorProps,\n field,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n label,\n labelProps,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const { drawerSlug, setCollectionSlug, setInitialFiles, setMaxFiles, 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, ListDrawerToggler, { closeDrawer: closeListDrawer }] = useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n if (permissions.collections[activeRelationTo].create?.permission === true) {\n return true\n }\n }\n }\n\n return false\n }, [activeRelationTo, permissions])\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(\n async (\n ids: (number | string)[],\n relatedCollectionSlug: string,\n ): Promise<PaginatedDocs | null> => {\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 const sortedDocs = ids.map((id) => json.docs.find((doc) => doc.id === id))\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language],\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 onFileSelection = 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) setInitialFiles(fileListToUse)\n setCollectionSlug(relationTo)\n setOnSuccess(onUploadSuccess)\n if (typeof maxRows === 'number') setMaxFiles(maxRows)\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n onUploadSuccess,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n setOnSuccess,\n maxRows,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = Object.entries(docs).reduce<string[]>((acc, [docID, isSelected]) => {\n if (isSelected) {\n acc.push(docID)\n }\n return acc\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 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 // 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 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 loadedValueDocsRef.current = true\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n const showDropzone =\n !readOnly &&\n (!value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)))\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 style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n Label={Label}\n label={label}\n required={required}\n {...(labelProps || {})}\n field={field as UploadFieldClient}\n />\n <div className={`${baseClass}__wrap`}>\n <FieldError\n CustomError={Error}\n path={path}\n {...(errorProps || {})}\n field={field as UploadFieldClient}\n />\n </div>\n\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 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\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n serverURL={serverURL}\n />\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n\n {showDropzone ? (\n <Dropzone multipleFiles={hasMany} onChange={onFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n <Button\n buttonStyle=\"icon-label\"\n disabled={readOnly || !canCreate}\n icon=\"plus\"\n iconPosition=\"left\"\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onFileSelection()\n } else if (inputRef.current) {\n inputRef.current.click()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <input\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n disabled={readOnly}\n hidden\n multiple={hasMany}\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n onFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"icon-label\" el=\"span\" icon=\"plus\" iconPosition=\"left\">\n {t('fields:chooseFromExisting')}\n </Button>\n </ListDrawerToggler>\n <ListDrawer\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\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 <FieldDescription\n Description={Description}\n description={description}\n {...(descriptionProps || {})}\n field={field as UploadFieldClient}\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","ShimmerEffect","useAuth","useLocale","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","Description","Error","Label","api","className","description","descriptionProps","errorProps","field","filterOptions","filterOptionsFromProps","hasMany","isSortable","label","labelProps","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","width","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","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","permission","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","populateDocs","t16","newDocs","mergedValue","doc_0","currentDocs","doc_1","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","Object","entries","reduce","acc","t19","docID","isSelected","push","loadedDocs","currentDocs_0","doc_2","onListBulkSelect","data","currentDocs_1","onDocCreate","t20","t21","docID_0","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","newValue_0","newValueIDs","t22","value_0","onReorder","newValue_1","newValueIDs_0","t23","value_1","onRemove","t24","loadInitialDocs","loadedDocs_1","doc_3","current","showDropzone","t25","t26","t27","filter","Boolean","t28","join","t29","replace","t30","t31","t32","t33","_jsxs","children","_jsx","CustomError","_Fragment","fileDocs","readonly","_temp","fileDoc","height","multipleFiles","buttonStyle","disabled","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_0"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldDescriptionClientProps,\n FieldErrorClientProps,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n MappedComponent,\n PaginatedDocs,\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'\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 { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { 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 Description?: MappedComponent\n readonly Error?: MappedComponent\n readonly Label?: MappedComponent\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly allowNewUpload?: boolean\n readonly api?: string\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly description?: StaticDescription\n readonly descriptionProps?: FieldDescriptionClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly errorProps?: FieldErrorClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly field?: MarkOptional<UploadFieldClient, 'type'>\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly label: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\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 readonly width?: string\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n Description,\n Error,\n Label,\n allowNewUpload,\n api,\n className,\n description,\n descriptionProps,\n errorProps,\n field,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n label,\n labelProps,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const { drawerSlug, setCollectionSlug, setInitialFiles, setMaxFiles, 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 const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n if (permissions.collections[activeRelationTo].create?.permission === true) {\n return true\n }\n }\n }\n\n return false\n }, [activeRelationTo, permissions])\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(\n async (\n ids: (number | string)[],\n relatedCollectionSlug: string,\n ): Promise<PaginatedDocs | null> => {\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 const sortedDocs = ids.map((id) => json.docs.find((doc) => doc.id === id))\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language],\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 setOnSuccess(onUploadSuccess)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n onUploadSuccess,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n setOnSuccess,\n maxRows,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = Object.entries(docs).reduce<string[]>((acc, [docID, isSelected]) => {\n if (isSelected) {\n acc.push(docID)\n }\n return acc\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 // 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 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 loadedValueDocsRef.current = true\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n const showDropzone =\n !readOnly &&\n (!value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)))\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={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n Label={Label}\n label={label}\n required={required}\n {...(labelProps || {})}\n field={field as UploadFieldClient}\n />\n <div className={`${baseClass}__wrap`}>\n <FieldError\n CustomError={Error}\n path={path}\n {...(errorProps || {})}\n field={field as UploadFieldClient}\n />\n </div>\n\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 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\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n serverURL={serverURL}\n />\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n\n {showDropzone ? (\n <Dropzone multipleFiles={hasMany} onChange={onLocalFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\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`}>{t('general:or')}</span>\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\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\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 <FieldDescription\n Description={Description}\n description={description}\n {...(descriptionProps || {})}\n field={field as UploadFieldClient}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/RelationshipContent/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,qBA6E/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/RelationshipContent/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,qBAuF/C"}
@@ -8,7 +8,7 @@ import { Button } from '../../../elements/Button/index.js';
8
8
  import { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js';
9
9
  import { ThumbnailComponent } from '../../../elements/Thumbnail/index.js';
10
10
  import './index.scss';
11
- const baseClass = 'uploadDocRelationshipContent';
11
+ const baseClass = 'upload-relationship-details';
12
12
  export function RelationshipContent(props) {
13
13
  const $ = _c(22);
14
14
  const {
@@ -90,8 +90,12 @@ export function RelationshipContent(props) {
90
90
  }), _jsxs("div", {
91
91
  className: `${baseClass}__details`,
92
92
  children: [_jsx("p", {
93
- className: `${baseClass}__title`,
94
- children: filename
93
+ className: `${baseClass}__filename`,
94
+ children: _jsx("a", {
95
+ href: src,
96
+ target: "_blank",
97
+ children: filename
98
+ })
95
99
  }), withMeta ? _jsx("p", {
96
100
  className: `${baseClass}__meta`,
97
101
  children: metaText
@@ -101,12 +105,13 @@ export function RelationshipContent(props) {
101
105
  className: `${baseClass}__actions`,
102
106
  children: [allowEdit !== false ? _jsx(Button, {
103
107
  buttonStyle: "icon-label",
108
+ className: `${baseClass}__edit`,
104
109
  icon: "edit",
105
110
  iconStyle: "none",
106
111
  onClick: openDrawer
107
112
  }) : null, allowRemove !== false ? _jsx(Button, {
108
113
  buttonStyle: "icon-label",
109
- className: `${baseClass}__button`,
114
+ className: `${baseClass}__remove`,
110
115
  icon: "x",
111
116
  iconStyle: "none",
112
117
  onClick: () => onRemove()
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatFilesize","React","Button","useDocumentDrawer","ThumbnailComponent","baseClass","RelationshipContent","props","$","id","allowEdit","allowRemove","alt","byteSize","className","collectionSlug","filename","mimeType","onRemove","src","withMeta","t0","x","y","undefined","t1","DocumentDrawer","_","t2","openDrawer","t3","generateMetaText","mimeType_0","size","sections","includes","push","join","t4","metaText","t5","filter","Boolean","_jsxs","children","_jsx","fileSrc","buttonStyle","icon","iconStyle","onClick"],"sources":["../../../../src/fields/Upload/RelationshipContent/index.tsx"],"sourcesContent":["'use client'\n\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js'\nimport { ThumbnailComponent } from '../../../elements/Thumbnail/index.js'\nimport './index.scss'\n\nconst baseClass = 'uploadDocRelationshipContent'\n\ntype Props = {\n readonly allowEdit?: boolean\n readonly allowRemove?: boolean\n readonly alt: string\n readonly byteSize: number\n readonly className?: string\n readonly collectionSlug: string\n readonly filename: string\n readonly id: number | string\n readonly mimeType: string\n readonly onRemove: () => void\n readonly src: string\n readonly withMeta?: boolean\n readonly x?: number\n readonly y?: number\n}\nexport function RelationshipContent(props: Props) {\n const {\n id,\n allowEdit,\n allowRemove,\n alt,\n byteSize,\n className,\n collectionSlug,\n filename,\n mimeType,\n onRemove,\n src,\n withMeta = true,\n x,\n y,\n } = props\n\n const [DocumentDrawer, _, { openDrawer }] = useDocumentDrawer({\n id,\n collectionSlug,\n })\n\n function generateMetaText(mimeType: string, size: number): string {\n const sections: string[] = []\n if (mimeType.includes('image')) {\n sections.push(formatFilesize(size))\n }\n\n if (x && y) {\n sections.push(`${x}x${y}`)\n }\n\n if (mimeType) {\n sections.push(mimeType)\n }\n\n return sections.join(' — ')\n }\n\n const metaText = withMeta ? generateMetaText(mimeType, byteSize) : ''\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__imageAndDetails`}>\n <ThumbnailComponent\n alt={alt}\n className={`${baseClass}__thumbnail`}\n fileSrc={src}\n filename={filename}\n size=\"small\"\n />\n <div className={`${baseClass}__details`}>\n <p className={`${baseClass}__title`}>{filename}</p>\n {withMeta ? <p className={`${baseClass}__meta`}>{metaText}</p> : null}\n </div>\n </div>\n\n {allowEdit !== false || allowRemove !== false ? (\n <div className={`${baseClass}__actions`}>\n {allowEdit !== false ? (\n <Button buttonStyle=\"icon-label\" icon=\"edit\" iconStyle=\"none\" onClick={openDrawer} />\n ) : null}\n {allowRemove !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__button`}\n icon=\"x\"\n iconStyle=\"none\"\n onClick={() => onRemove()}\n />\n ) : null}\n <DocumentDrawer />\n </div>\n ) : null}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","formatFilesize","React","Button","useDocumentDrawer","ThumbnailComponent","baseClass","RelationshipContent","props","$","id","allowEdit","allowRemove","alt","byteSize","className","collectionSlug","filename","mimeType","onRemove","src","withMeta","t0","x","y","undefined","t1","DocumentDrawer","_","t2","openDrawer","t3","generateMetaText","mimeType_0","size","sections","includes","push","join","t4","metaText","t5","filter","Boolean","_jsxs","children","_jsx","fileSrc","href","target","buttonStyle","icon","iconStyle","onClick"],"sources":["../../../../src/fields/Upload/RelationshipContent/index.tsx"],"sourcesContent":["'use client'\n\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../../elements/DocumentDrawer/index.js'\nimport { ThumbnailComponent } from '../../../elements/Thumbnail/index.js'\nimport './index.scss'\n\nconst baseClass = 'upload-relationship-details'\n\ntype Props = {\n readonly allowEdit?: boolean\n readonly allowRemove?: boolean\n readonly alt: string\n readonly byteSize: number\n readonly className?: string\n readonly collectionSlug: string\n readonly filename: string\n readonly id: number | string\n readonly mimeType: string\n readonly onRemove: () => void\n readonly src: string\n readonly withMeta?: boolean\n readonly x?: number\n readonly y?: number\n}\nexport function RelationshipContent(props: Props) {\n const {\n id,\n allowEdit,\n allowRemove,\n alt,\n byteSize,\n className,\n collectionSlug,\n filename,\n mimeType,\n onRemove,\n src,\n withMeta = true,\n x,\n y,\n } = props\n\n const [DocumentDrawer, _, { openDrawer }] = useDocumentDrawer({\n id,\n collectionSlug,\n })\n\n function generateMetaText(mimeType: string, size: number): string {\n const sections: string[] = []\n if (mimeType.includes('image')) {\n sections.push(formatFilesize(size))\n }\n\n if (x && y) {\n sections.push(`${x}x${y}`)\n }\n\n if (mimeType) {\n sections.push(mimeType)\n }\n\n return sections.join(' — ')\n }\n\n const metaText = withMeta ? generateMetaText(mimeType, byteSize) : ''\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={`${baseClass}__imageAndDetails`}>\n <ThumbnailComponent\n alt={alt}\n className={`${baseClass}__thumbnail`}\n fileSrc={src}\n filename={filename}\n size=\"small\"\n />\n <div className={`${baseClass}__details`}>\n <p className={`${baseClass}__filename`}>\n <a href={src} target=\"_blank\">\n {filename}\n </a>\n </p>\n {withMeta ? <p className={`${baseClass}__meta`}>{metaText}</p> : null}\n </div>\n </div>\n\n {allowEdit !== false || allowRemove !== false ? (\n <div className={`${baseClass}__actions`}>\n {allowEdit !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__edit`}\n icon=\"edit\"\n iconStyle=\"none\"\n onClick={openDrawer}\n />\n ) : null}\n {allowRemove !== false ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"none\"\n onClick={() => onRemove()}\n />\n ) : null}\n <DocumentDrawer />\n </div>\n ) : null}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- .uploadDocRelationshipContent {
1
+ .upload-relationship-details {
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  align-items: center;
@@ -22,14 +22,17 @@
22
22
  flex-direction: column;
23
23
  gap: 0;
24
24
  overflow: hidden;
25
- margin-right: calc(var(--base)* 2);
25
+ margin-right: calc(var(--base) * 2);
26
26
  }
27
27
 
28
- &__title {
28
+ &__filename {
29
29
  margin: 0;
30
30
  text-wrap: nowrap;
31
31
  text-overflow: ellipsis;
32
32
  overflow: hidden;
33
+ a {
34
+ text-decoration: none;
35
+ }
33
36
  }
34
37
 
35
38
  &__meta {
@@ -8,7 +8,7 @@
8
8
  gap: calc(var(--base) / 2);
9
9
 
10
10
  &--size-medium {
11
- padding: calc(var(--base) * .5);
11
+ padding: calc(var(--base) * 0.5);
12
12
 
13
13
  .thumbnail {
14
14
  width: 40px;
@@ -18,10 +18,10 @@
18
18
 
19
19
  &--size-small {
20
20
  padding: calc(var(--base) / 3) calc(var(--base) / 2);
21
-
21
+
22
22
  .thumbnail {
23
23
  width: 25px;
24
24
  height: 25px;
25
25
  }
26
- };
26
+ }
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,SAAS,WAAW,CAAA;AAEjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,qBAmEtD;AAED,eAAO,MAAM,WAAW,4BAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,SAAS,WAAW,CAAA;AAEjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,qBAoEtD;AAED,eAAO,MAAM,WAAW,4BAAiC,CAAA"}
@@ -79,6 +79,7 @@ export function UploadComponent(props) {
79
79
  filterOptions,
80
80
  formInitializing,
81
81
  formProcessing,
82
+ path,
82
83
  readOnly: readOnlyFromField,
83
84
  setValue,
84
85
  showError,
@@ -89,7 +90,7 @@ export function UploadComponent(props) {
89
90
  const t6 = field?.admin?.components?.Error;
90
91
  const t7 = field?.admin?.components?.Label;
91
92
  let t8;
92
- if ($[8] !== t5 || $[9] !== t6 || $[10] !== t7 || $[11] !== config.routes.api || $[12] !== config.serverURL || $[13] !== className || $[14] !== field || $[15] !== filterOptions || $[16] !== hasMany || $[17] !== isSortable || $[18] !== label || $[19] !== maxRows || $[20] !== setValue || $[21] !== _path || $[22] !== disabled || $[23] !== relationTo || $[24] !== required || $[25] !== showError || $[26] !== style || $[27] !== value_0 || $[28] !== width) {
93
+ if ($[8] !== t5 || $[9] !== t6 || $[10] !== t7 || $[11] !== config.routes.api || $[12] !== config.serverURL || $[13] !== className || $[14] !== field || $[15] !== filterOptions || $[16] !== hasMany || $[17] !== isSortable || $[18] !== label || $[19] !== maxRows || $[20] !== setValue || $[21] !== path || $[22] !== disabled || $[23] !== relationTo || $[24] !== required || $[25] !== showError || $[26] !== style || $[27] !== value_0 || $[28] !== width) {
93
94
  t8 = _jsx(UploadInput, {
94
95
  Description: t5,
95
96
  Error: t6,
@@ -103,7 +104,7 @@ export function UploadComponent(props) {
103
104
  label,
104
105
  maxRows,
105
106
  onChange: setValue,
106
- path: _path,
107
+ path,
107
108
  readOnly: disabled,
108
109
  relationTo,
109
110
  required,
@@ -126,7 +127,7 @@ export function UploadComponent(props) {
126
127
  $[18] = label;
127
128
  $[19] = maxRows;
128
129
  $[20] = setValue;
129
- $[21] = _path;
130
+ $[21] = path;
130
131
  $[22] = disabled;
131
132
  $[23] = relationTo;
132
133
  $[24] = required;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useField","withCondition","useConfig","UploadInput","baseClass","UploadComponent","props","$","field","t0","readOnly","readOnlyFromTopLevelProps","validate","_path","admin","t1","hasMany","label","maxRows","relationTo","required","t2","undefined","className","isSortable","readOnlyFromAdmin","style","width","readOnlyFromProps","config","t3","value","options","memoizedValidate","t4","path","filterOptions","formInitializing","formProcessing","readOnlyFromField","setValue","showError","value_0","disabled","t5","components","Description","t6","Error","t7","Label","t8","routes","api","serverURL","_jsx","onChange","UploadField"],"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldProps } from 'payload'\n\nimport React from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldProps) {\n const {\n field: {\n _path,\n admin: { className, isSortable, readOnly: readOnlyFromAdmin, style, width } = {},\n hasMany,\n label,\n maxRows,\n relationTo,\n required,\n },\n field,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const { config } = useConfig()\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n const {\n filterOptions,\n formInitializing,\n formProcessing,\n readOnly: readOnlyFromField,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n path: _path,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromField || formProcessing || formInitializing\n\n return (\n <UploadInput\n Description={field?.admin?.components?.Description}\n Error={field?.admin?.components?.Error}\n Label={field?.admin?.components?.Label}\n api={config.routes.api}\n className={className}\n field={field}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n maxRows={maxRows}\n onChange={setValue}\n path={_path}\n readOnly={disabled}\n relationTo={relationTo}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useField","withCondition","useConfig","UploadInput","baseClass","UploadComponent","props","$","field","t0","readOnly","readOnlyFromTopLevelProps","validate","_path","admin","t1","hasMany","label","maxRows","relationTo","required","t2","undefined","className","isSortable","readOnlyFromAdmin","style","width","readOnlyFromProps","config","t3","value","options","memoizedValidate","t4","path","filterOptions","formInitializing","formProcessing","readOnlyFromField","setValue","showError","value_0","disabled","t5","components","Description","t6","Error","t7","Label","t8","routes","api","serverURL","_jsx","onChange","UploadField"],"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldProps } from 'payload'\n\nimport React from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldProps) {\n const {\n field: {\n _path,\n admin: { className, isSortable, readOnly: readOnlyFromAdmin, style, width } = {},\n hasMany,\n label,\n maxRows,\n relationTo,\n required,\n },\n field,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\n\n const { config } = useConfig()\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n const {\n filterOptions,\n formInitializing,\n formProcessing,\n path,\n readOnly: readOnlyFromField,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n path: _path,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromField || formProcessing || formInitializing\n\n return (\n <UploadInput\n Description={field?.admin?.components?.Description}\n Error={field?.admin?.components?.Error}\n Label={field?.admin?.components?.Label}\n api={config.routes.api}\n className={className}\n field={field}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n maxRows={maxRows}\n onChange={setValue}\n path={path}\n readOnly={disabled}\n relationTo={relationTo}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,6 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
3
  .upload {
4
- .dropzone {
5
- padding-right: var(--base);
6
- }
7
-
8
4
  &__dropzoneAndUpload {
9
5
  display: flex;
10
6
  flex-direction: column;
@@ -19,23 +15,29 @@
19
15
 
20
16
  &__dropzoneContent__buttons {
21
17
  display: flex;
22
- gap: var(--base);
18
+ gap: calc(var(--base) / 2);
23
19
  position: relative;
24
20
  left: -2px;
25
21
 
26
22
  .btn .btn__content {
27
23
  gap: calc(var(--base) / 5);
28
24
  }
29
-
25
+
30
26
  .btn__label {
31
27
  font-weight: 100;
32
28
  }
33
29
  }
34
30
 
31
+ &__dropzoneContent__orText {
32
+ color: var(--theme-elevation-500);
33
+ text-transform: lowercase;
34
+ }
35
+
35
36
  &__dragAndDropText {
36
37
  margin: 0;
37
38
  text-transform: lowercase;
38
39
  align-self: center;
40
+ color: var(--theme-elevation-500);
39
41
  }
40
42
 
41
43
  &__loadingRows {
@@ -1 +1 @@
1
- {"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAoU7E"}
1
+ {"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAwU7E"}
@@ -38,7 +38,9 @@ export function fieldReducer(state, action) {
38
38
  const newState = {
39
39
  ...state
40
40
  };
41
- if (newState[action.path]) delete newState[action.path];
41
+ if (newState[action.path]) {
42
+ delete newState[action.path];
43
+ }
42
44
  return newState;
43
45
  }
44
46
  case 'ADD_SERVER_ERRORS':
@@ -235,7 +237,9 @@ export function fieldReducer(state, action) {
235
237
  } = separateRows(path, state);
236
238
  const rowsMetadata = [...(state[path].rows || [])];
237
239
  const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex]);
238
- if (duplicateRowMetadata.id) duplicateRowMetadata.id = new ObjectId().toHexString();
240
+ if (duplicateRowMetadata.id) {
241
+ duplicateRowMetadata.id = new ObjectId().toHexString();
242
+ }
239
243
  const duplicateRowState = deepCopyObject(rows[rowIndex]);
240
244
  if (duplicateRowState.id) {
241
245
  duplicateRowState.id.value = new ObjectId().toHexString();
@@ -1 +1 @@
1
- {"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObject","deepCopyObjectSimple","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","optimize","newState","Object","entries","forEach","path","field","oldField","newField","errorPaths","errors","message","initialValue","value","errorMessage","valid","segments","split","length","push","fieldErrorPath","parentPath","slice","join","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","key","rowIndex","remainingFields","rows","rowsMetadata","splice","disableFormData","blockType","rowIndexFromArgs","subFieldState","withNewRow","newRow","id","toHexString","undefined","collapsed","siblingRows","rowIndexArg","Math","max","min","duplicateRowMetadata","duplicateRowState","keys","moveFromIndex","moveToIndex","copyOfMovingRow","rowStateCopy","movingRowState","updatedRows"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObject, deepCopyObjectSimple } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState = {}\n\n Object.entries(action.state).forEach(([path, field]) => {\n const oldField = state[path]\n const newField = field\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n })\n return newState\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) delete newState[action.path]\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ field, message }) => {\n newState[field] = {\n ...(newState[field] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = field.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: field,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n }\n }\n\n return field\n },\n state[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex])\n if (duplicateRowMetadata.id) duplicateRowMetadata.id = new ObjectId().toHexString()\n\n const duplicateRowState = deepCopyObject(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n // If there are subfields\n if (Object.keys(duplicateRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, duplicateRowState)\n rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n const { remainingFields, rows } = separateRows(path, state)\n\n // copy the row to move\n const copyOfMovingRow = rows[moveFromIndex]\n // delete the row by index\n rows.splice(moveFromIndex, 1)\n // insert row copyOfMovingRow back in\n rows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowStateCopy = [...(state[path]?.rows || [])]\n const movingRowState = { ...rowStateCopy[moveFromIndex] }\n rowStateCopy.splice(moveFromIndex, 1)\n rowStateCopy.splice(moveToIndex, 0, movingRowState)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n rows: rowStateCopy,\n },\n }\n\n return newState\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObject","deepCopyObjectSimple","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","optimize","newState","Object","entries","forEach","path","field","oldField","newField","errorPaths","errors","message","initialValue","value","errorMessage","valid","segments","split","length","push","fieldErrorPath","parentPath","slice","join","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","key","rowIndex","remainingFields","rows","rowsMetadata","splice","disableFormData","blockType","rowIndexFromArgs","subFieldState","withNewRow","newRow","id","toHexString","undefined","collapsed","siblingRows","rowIndexArg","Math","max","min","duplicateRowMetadata","duplicateRowState","keys","moveFromIndex","moveToIndex","copyOfMovingRow","rowStateCopy","movingRowState","updatedRows"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObject, deepCopyObjectSimple } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState = {}\n\n Object.entries(action.state).forEach(([path, field]) => {\n const oldField = state[path]\n const newField = field\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n })\n return newState\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) {\n delete newState[action.path]\n }\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ field, message }) => {\n newState[field] = {\n ...(newState[field] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = field.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: field,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n }\n }\n\n return field\n },\n state[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex])\n if (duplicateRowMetadata.id) {\n duplicateRowMetadata.id = new ObjectId().toHexString()\n }\n\n const duplicateRowState = deepCopyObject(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n // If there are subfields\n if (Object.keys(duplicateRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, duplicateRowState)\n rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n const { remainingFields, rows } = separateRows(path, state)\n\n // copy the row to move\n const copyOfMovingRow = rows[moveFromIndex]\n // delete the row by index\n rows.splice(moveFromIndex, 1)\n // insert row copyOfMovingRow back in\n rows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowStateCopy = [...(state[path]?.rows || [])]\n const movingRowState = { ...rowStateCopy[moveFromIndex] }\n rowStateCopy.splice(moveFromIndex, 1)\n rowStateCopy.splice(moveToIndex, 0, movingRowState)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n rows: rowStateCopy,\n },\n }\n\n return newState\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n default: {\n return state\n }\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,EAEV,SAAS,EAGV,MAAM,YAAY,CAAA;AA4BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAmmBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,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,EAEV,SAAS,EAGV,MAAM,YAAY,CAAA;AA4BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA+mBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -182,7 +182,9 @@ export const Form = props => {
182
182
  }
183
183
  setProcessing(true);
184
184
  setDisabled(true);
185
- if (waitForAutocomplete) await wait(100);
185
+ if (waitForAutocomplete) {
186
+ await wait(100);
187
+ }
186
188
  // Execute server side validations
187
189
  if (Array.isArray(beforeSubmit)) {
188
190
  let revalidatedFormState;
@@ -252,9 +254,13 @@ export const Form = props => {
252
254
  const isJSON = contentType && contentType.indexOf('application/json') !== -1;
253
255
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
254
256
  let json = {};
255
- if (isJSON) json = await res.json();
257
+ if (isJSON) {
258
+ json = await res.json();
259
+ }
256
260
  if (res.status < 400) {
257
- if (typeof onSuccess === 'function') await onSuccess(json);
261
+ if (typeof onSuccess === 'function') {
262
+ await onSuccess(json);
263
+ }
258
264
  setSubmitted(false);
259
265
  setProcessing(false);
260
266
  if (redirect) {
@@ -463,10 +469,14 @@ export const Form = props => {
463
469
  setIsMounted(true);
464
470
  }, []);
465
471
  useEffect(() => {
466
- if (typeof disabledFromProps === 'boolean') setDisabled(disabledFromProps);
472
+ if (typeof disabledFromProps === 'boolean') {
473
+ setDisabled(disabledFromProps);
474
+ }
467
475
  }, [disabledFromProps]);
468
476
  useEffect(() => {
469
- if (typeof submittedFromProps === 'boolean') setSubmitted(submittedFromProps);
477
+ if (typeof submittedFromProps === 'boolean') {
478
+ setSubmitted(submittedFromProps);
479
+ }
470
480
  }, [submittedFromProps]);
471
481
  useEffect(() => {
472
482
  if (initialState) {
@@ -513,7 +523,9 @@ export const Form = props => {
513
523
  }
514
524
  }
515
525
  };
516
- if (modified) void executeOnChange();
526
+ if (modified) {
527
+ void executeOnChange();
528
+ }
517
529
  }, 150,
518
530
  // Make sure we trigger this whenever modified changes (not just when `fields` changes), otherwise we will miss merging server form state for the first form update/onChange. Here's why:
519
531
  // `fields` updates before `modified`, because setModified is in a setTimeout. So on the first change, modified is false, so we don't trigger the effect even though we should.