@payloadcms/ui 3.25.0-canary.46647b4 → 3.25.0-canary.90ff83f

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 (84) hide show
  1. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  2. package/dist/elements/DeleteMany/index.js +2 -2
  3. package/dist/elements/DeleteMany/index.js.map +1 -1
  4. package/dist/elements/DeleteMany/index.scss +16 -0
  5. package/dist/elements/EditMany/index.d.ts.map +1 -1
  6. package/dist/elements/EditMany/index.js +22 -14
  7. package/dist/elements/EditMany/index.js.map +1 -1
  8. package/dist/elements/EditMany/index.scss +5 -19
  9. package/dist/elements/Link/index.d.ts +9 -1
  10. package/dist/elements/Link/index.d.ts.map +1 -1
  11. package/dist/elements/Link/index.js +6 -0
  12. package/dist/elements/Link/index.js.map +1 -1
  13. package/dist/elements/ListControls/index.d.ts +8 -0
  14. package/dist/elements/ListControls/index.d.ts.map +1 -1
  15. package/dist/elements/ListControls/index.js +4 -20
  16. package/dist/elements/ListControls/index.js.map +1 -1
  17. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  18. package/dist/elements/ListDrawer/DrawerContent.js +2 -1
  19. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  20. package/dist/elements/ListDrawer/Provider.d.ts +7 -1
  21. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  22. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  23. package/dist/elements/ListSelection/index.d.ts +4 -0
  24. package/dist/elements/ListSelection/index.d.ts.map +1 -1
  25. package/dist/elements/ListSelection/index.js +44 -23
  26. package/dist/elements/ListSelection/index.js.map +1 -1
  27. package/dist/elements/ListSelection/index.scss +4 -0
  28. package/dist/elements/PublishMany/index.d.ts +1 -0
  29. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  30. package/dist/elements/PublishMany/index.js +3 -2
  31. package/dist/elements/PublishMany/index.js.map +1 -1
  32. package/dist/elements/PublishMany/index.scss +21 -0
  33. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  34. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -0
  35. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  36. package/dist/elements/UnpublishMany/index.d.ts +1 -0
  37. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  38. package/dist/elements/UnpublishMany/index.js +3 -2
  39. package/dist/elements/UnpublishMany/index.js.map +1 -1
  40. package/dist/elements/UnpublishMany/index.scss +21 -0
  41. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  42. package/dist/elements/WhereBuilder/field-types.js +9 -5
  43. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  44. package/dist/exports/client/{CodeEditor-G3Y4UHC4.js → CodeEditor-L6GW2VQ6.js} +2 -2
  45. package/dist/exports/client/{chunk-4L367VSB.js → chunk-ZZDNSFEW.js} +2 -2
  46. package/dist/exports/client/{chunk-4L367VSB.js.map → chunk-ZZDNSFEW.js.map} +2 -2
  47. package/dist/exports/client/index.d.ts +2 -0
  48. package/dist/exports/client/index.d.ts.map +1 -1
  49. package/dist/exports/client/index.js +23 -23
  50. package/dist/exports/client/index.js.map +4 -4
  51. package/dist/fields/Upload/Input.js +13 -13
  52. package/dist/fields/Upload/Input.js.map +1 -1
  53. package/dist/forms/Form/context.d.ts +3 -3
  54. package/dist/forms/Form/context.js +3 -3
  55. package/dist/forms/Form/context.js.map +1 -1
  56. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  57. package/dist/forms/Form/fieldReducer.js +30 -14
  58. package/dist/forms/Form/fieldReducer.js.map +1 -1
  59. package/dist/forms/Form/index.d.ts.map +1 -1
  60. package/dist/forms/Form/index.js +27 -4
  61. package/dist/forms/Form/index.js.map +1 -1
  62. package/dist/forms/Form/types.d.ts +1 -1
  63. package/dist/forms/Form/types.d.ts.map +1 -1
  64. package/dist/forms/Form/types.js.map +1 -1
  65. package/dist/forms/useField/index.d.ts +1 -1
  66. package/dist/forms/useField/index.js +1 -1
  67. package/dist/forms/useField/index.js.map +1 -1
  68. package/dist/providers/Root/index.d.ts.map +1 -1
  69. package/dist/providers/Root/index.js +4 -1
  70. package/dist/providers/Root/index.js.map +1 -1
  71. package/dist/providers/UploadHandlers/index.d.ts +21 -0
  72. package/dist/providers/UploadHandlers/index.d.ts.map +1 -0
  73. package/dist/providers/UploadHandlers/index.js +72 -0
  74. package/dist/providers/UploadHandlers/index.js.map +1 -0
  75. package/dist/styles.css +1 -1
  76. package/dist/views/List/ListHeader/index.d.ts +2 -0
  77. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  78. package/dist/views/List/ListHeader/index.js +5 -0
  79. package/dist/views/List/ListHeader/index.js.map +1 -1
  80. package/dist/views/List/index.d.ts.map +1 -1
  81. package/dist/views/List/index.js +8 -19
  82. package/dist/views/List/index.js.map +1 -1
  83. package/package.json +5 -5
  84. /package/dist/exports/client/{CodeEditor-G3Y4UHC4.js.map → CodeEditor-L6GW2VQ6.js.map} +0 -0
@@ -389,9 +389,9 @@ export function UploadInput(props) {
389
389
  t20 = async t21 => {
390
390
  const {
391
391
  collectionSlug,
392
- docID
392
+ doc: doc_4
393
393
  } = t21;
394
- const loadedDocs_0 = await populateDocs([docID], collectionSlug);
394
+ const loadedDocs_0 = await populateDocs([doc_4.id], collectionSlug);
395
395
  const selectedDoc = loadedDocs_0 ? loadedDocs_0.docs?.[0] : null;
396
396
  setPopulatedDocs(currentDocs_2 => {
397
397
  if (selectedDoc) {
@@ -409,9 +409,9 @@ export function UploadInput(props) {
409
409
  return currentDocs_2;
410
410
  });
411
411
  if (hasMany) {
412
- onChange([...(Array.isArray(value) ? value : []), docID]);
412
+ onChange([...(Array.isArray(value) ? value : []), doc_4.id]);
413
413
  } else {
414
- onChange(docID);
414
+ onChange(doc_4.id);
415
415
  }
416
416
  closeListDrawer();
417
417
  };
@@ -428,17 +428,17 @@ export function UploadInput(props) {
428
428
  const onListSelect = t20;
429
429
  let t21;
430
430
  if ($[71] !== hasMany || $[72] !== onChange || $[73] !== populateDocs) {
431
- t21 = async (docID_0, collectionSlug_0) => {
431
+ t21 = async (docID, collectionSlug_0) => {
432
432
  const {
433
433
  docs: docs_0
434
- } = await populateDocs([docID_0], collectionSlug_0);
434
+ } = await populateDocs([docID], collectionSlug_0);
435
435
  if (docs_0[0]) {
436
436
  let updatedDocsToPropogate;
437
437
  updatedDocsToPropogate = [];
438
438
  setPopulatedDocs(currentDocs_3 => {
439
- const existingDocIndex = currentDocs_3?.findIndex(doc_4 => {
440
- const hasExisting = doc_4.value?.id === docs_0[0].id || doc_4.value?.isPlaceholder;
441
- return hasExisting && doc_4.relationTo === collectionSlug_0;
439
+ const existingDocIndex = currentDocs_3?.findIndex(doc_5 => {
440
+ const hasExisting = doc_5.value?.id === docs_0[0].id || doc_5.value?.isPlaceholder;
441
+ return hasExisting && doc_5.relationTo === collectionSlug_0;
442
442
  });
443
443
  if (existingDocIndex > -1) {
444
444
  const updatedDocs = [...currentDocs_3];
@@ -499,9 +499,9 @@ export function UploadInput(props) {
499
499
  loadedValueDocsRef.current = true;
500
500
  const loadedDocs_1 = await populateDocs(Array.isArray(value) ? value : [value], activeRelationTo);
501
501
  if (loadedDocs_1) {
502
- setPopulatedDocs(loadedDocs_1.docs.map(doc_6 => ({
502
+ setPopulatedDocs(loadedDocs_1.docs.map(doc_7 => ({
503
503
  relationTo: activeRelationTo,
504
- value: doc_6
504
+ value: doc_7
505
505
  })));
506
506
  }
507
507
  }
@@ -729,8 +729,8 @@ function _temp3(t0) {
729
729
  } = t0;
730
730
  return value_0.id;
731
731
  }
732
- function _temp2(doc_5) {
733
- return doc_5.value?.id;
732
+ function _temp2(doc_6) {
733
+ return doc_6.value?.id;
734
734
  }
735
735
  function _temp(doc_1) {
736
736
  return doc_1.id;
@@ -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 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
+ {"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","doc_4","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID","collectionSlug_0","docs_0","updatedDocsToPropogate","currentDocs_3","existingDocIndex","findIndex","doc_5","hasExisting","updatedDocs","_temp2","reloadDoc","t22","newValue_0","newValueIDs","_temp3","onReorder","t23","newValue_1","newValueIDs_0","_temp4","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_7","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_6","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 = useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, doc }) => {\n const loadedDocs = await populateDocs([doc.id], 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 : []), doc.id])\n } else {\n onChange(doc.id)\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":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAeA,SAASC,QAAQ,QAAQ;AACzB,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ;AAKvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAsCzB,OAAO,SAAAC,YAAAC,KAAA;EAAA,MAAAC,CAAA,GAAA1B,EAAA;EACL;IAAA2B,UAAA;IAAAC,WAAA;IAAAC,GAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,KAAA;IAAAC,aAAA,EAAAC,sBAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,KAAA;IAAAC;EAAA,IAyBI3B,KAAA;EAEJ,OAAA4B,aAAA,EAAAC,gBAAA,IAA0CnD,KAAA,CAAAoD,QAAA,CAAc;EAOxD,OAAAC,gBAAA,IAAgDrD,KAAA,CAAAoD,QAAA,CAC9CE,KAAA,CAAAC,OAAA,CAAcX,UAAA,IAAcA,UAAU,MAAMA,UAAA;EAG9C;IAAAY;EAAA,IAAsB1D,QAAA;EACtB;IAAA2D,UAAA;IAAAC,iBAAA;IAAAC,oBAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC;EAAA,IAOI1D,aAAA;EACJ;IAAA2D;EAAA,IAAwBjD,OAAA;EACxB;IAAAkD;EAAA,IAAiBjD,SAAA;EACjB;IAAAkD,IAAA;IAAAC;EAAA,IAAoBlD,cAAA;EAAA,IAAAmD,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA7C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IAMVmC,EAAA,GAAAnC,sBAAC,GAAyBoB,gBAAA,OAA+B;IAAA9B,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA6C,EAAA;EAAA;IAAAA,EAAA,GAAA7C,CAAA;EAAA;EAAA,IAAA8C,EAAA;EAAA,IAAA9C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IAEvDoC,EAAA,GAAApC,sBAAC,GAAyBoB,gBAAA,GAAAiB,EAAA,MAAmC;IAAA/C,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA8C,EAAA;EAAA;IAAAA,EAAA,GAAA9C,CAAA;EAAA;EAAA,IAAAgD,EAAA;EAAA,IAAAhD,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IACxDsC,EAAA,GAAAtC,sBAAC,GAAyBoB,gBAAA,GAAAiB,EAAA,EAAAE,MAAA,MAA2C;IAAAjD,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAAgD,EAAA;EAAA;IAAAA,EAAA,GAAAhD,CAAA;EAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAlD,CAAA,QAAAgD,EAAA,IAAAhD,CAAA,SAAA0B,KAAA;IAAtEwB,EAAA,GAACF,EAAqE,CAAAG,MAAA,KACxEpB,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,IAASA,KAAA,MAAW;IAAA1B,CAAA,MAAAgD,EAAA;IAAAhD,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAAA,IAAAoD,EAAA;EAAA,IAAApD,CAAA,SAAA8C,EAAA,IAAA9C,CAAA,SAAAkD,EAAA;IAHhDE,EAAA;MAAA,GACEN,EAA6D;MAAAG,MAAA,EACzDC;IAC0C;IAEpDlD,CAAA,OAAA8C,EAAA;IAAA9C,CAAA,OAAAkD,EAAA;IAAAlD,CAAA,OAAAoD,EAAA;EAAA;IAAAA,EAAA,GAAApD,CAAA;EAAA;EAAA,IAAAqD,EAAA;EAAA,IAAArD,CAAA,SAAA6C,EAAA,IAAA7C,CAAA,SAAAoD,EAAA;IAPkBC,EAAA;MAAA,GACdR,EAAyD;MAAAE,EAAA,EACzDK;IAKJ;IACFpD,CAAA,OAAA6C,EAAA;IAAA7C,CAAA,OAAAoD,EAAA;IAAApD,CAAA,OAAAqD,EAAA;EAAA;IAAAA,EAAA,GAAArD,CAAA;EAAA;EAAA,IAAAsD,EAAA;EAAA,IAAAtD,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAU,sBAAA,IAAAV,CAAA,SAAAqD,EAAA;IAVKC,EAAA;MAAA,GACF5C,sBAAsB;MAAA,CACxBoB,gBAAA,GAAmBuB;IAQpB;IACFrD,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAU,sBAAA;IAAAV,CAAA,OAAAqD,EAAA;IAAArD,CAAA,OAAAsD,EAAA;EAAA;IAAAA,EAAA,GAAAtD,CAAA;EAAA;EAXA4C,EAAA,GAAOU,EAWP;EAZF,MAAA7C,aAAA,GAA2CmC,EAaS;EAAA,IAAAW,EAAA;EAAA,IAAAvD,CAAA,SAAAqB,UAAA;IAI/BkC,EAAA,UAAOlC,UAAA,KAAe,YAAYA,UAAA,IAAcA,UAAA;IAAArB,CAAA,OAAAqB,UAAA;IAAArB,CAAA,OAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EAAA,IAAAwD,EAAA;EAAA,IAAAxD,CAAA,SAAAS,aAAA,IAAAT,CAAA,SAAAuD,EAAA;IADrDC,EAAA;MAAAC,eAAA,EACKF,EAAgD;MAAA9C;IAAA;IAEnET,CAAA,OAAAS,aAAA;IAAAT,CAAA,OAAAuD,EAAA;IAAAvD,CAAA,OAAAwD,EAAA;EAAA;IAAAA,EAAA,GAAAxD,CAAA;EAAA;EAJF,OAAA0D,UAAA,GAAAC,GAAA,IACE1E,aAAA,CAAcuE,EAGd;EAJmB;IAAAI,WAAA,EAAAC,eAAA;IAAAC,UAAA,EAAAC;EAAA,IAAAJ,GAA4D;EAAA,IAAAK,GAAA;EAAA,IAAAhE,CAAA,SAAA8B,gBAAA;IAU3DkC,GAAA;MAAAC,cAAA,EACJnC;IAAA;IAClB9B,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAgE,GAAA;EAAA;IAAAA,GAAA,GAAAhE,CAAA;EAAA;EANA,OAAAkE,eAAA,GAAAC,GAAA,IAIIpF,iBAAA,CAAkBiF,GAEtB;EAHE;IAAAJ,WAAA,EAAAQ,oBAAA;IAAAN,UAAA,EAAAO;EAAA,IAAAF,GAAsE;EAQxE,MAAAG,kBAAA,GAA2B7F,KAAA,CAAA8F,MAAA,MAAsB;EAAA,IAAAC,GAAA;EAAAC,GAAA;IAAA,KAG1CvE,WAAA;MACHsE,GAAA;MAAO,MAAAC,GAAA;IAAA;IAAA,IAGL,OAAO3C,gBAAA,KAAqB;MAAA,IAC1BU,WAAA,EAAAkC,WAAA,IAA4BlC,WAAA,CAAAkC,WAAA,GAA0B5C,gBAAA,GAAA6C,MAAmB;QAC3EH,GAAA;QAAO,MAAAC,GAAA;MAAA;IAAA;IAIXD,GAAA;EAAO;EAXT,MAAAI,SAAA,GAAkBJ,GAY6B;EAAA,IAAAK,GAAA;EAAA,IAAA7E,CAAA,SAAAkB,iBAAA;IAG7C2D,GAAA,GAAAC,QAAA;MAAA,IACM,OAAO5D,iBAAA,KAAsB;QAC/BA,iBAAA,CAAkB4D,QAAA;MAAA;IAAA;IAEtB9E,CAAA,OAAAkB,iBAAA;IAAAlB,CAAA,OAAA6E,GAAA;EAAA;IAAAA,GAAA,GAAA7E,CAAA;EAAA;EALF,MAAAiB,QAAA,GAAiB4D,GAMI;EAAA,IAAAE,GAAA;EAAA,IAAA/E,CAAA,SAAAG,GAAA,IAAAH,CAAA,SAAAyC,IAAA,IAAAzC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAA0C,IAAA,CAAAsC,QAAA,IAAAhF,CAAA,SAAAuB,SAAA,IAAAvB,CAAA,SAAA2C,CAAA;IAInBoC,GAAA,SAAAA,CAAAE,GAAA,EAAAC,qBAAA;MACE,MAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA,EAMSL,GAAA,CAAAM,MAAA;QAAAC,MAAA,EACC/C,IAAA;QAAAgD,KAAA;UAAAC,GAAA;YAAA3C,EAAA;cAAA4C,EAAA,EAKIV;YAAA;UAAA;QAAA;MAAA;MAOd,MAAAW,QAAA,SAAuBC,KAAA,CAAM,GAAGtE,SAAA,GAAYpB,GAAA,IAAO+E,qBAAA,EAAuB;QAAAY,IAAA,EAClEtH,EAAA,CAAAuH,SAAA,CAAaZ,KAAA;QAAAa,WAAA,EACN;QAAAC,OAAA;UAAA,mBAEQvD,IAAA,CAAAsC,QAAA;UAAA,gBACH;UAAA,0BACU;QAAA;QAAAkB,MAAA,EAEpB;MAAA,CACV;MAAA,IACIN,QAAA,CAAAO,EAAA;QACF,MAAAC,IAAA,SAAmBR,QAAA,CAAAQ,IAAA,CAAa;QAChC,IAAAC,UAAA,GAAiBpB,GAAA,CAAAqB,GAAA,CAAAvD,EAAA,IACfqD,IAAA,CAAAG,IAAA,CAAAC,IAAA,CAAAC,GAAA,IACSC,MAAA,CAAOD,GAAA,CAAA1D,EAAM,MAAM2D,MAAA,CAAO3D,EAAA,CACnC;QAAA,IAGEsD,UAAA,CAAAM,QAAA,CAAAC,SAAoB,KAAcjG,OAAA;UACpC0F,UAAA,CAAAA,CAAA,CAAaA,UAAA,CAAAC,GAAA,EAAAO,KAAA,EAAAC,KAAA,KACXL,KAAA,GACIA,KAAA;YAAA1D,EAAA,EAEMkC,GAAG,CAAC6B,KAAA;YAAAC,QAAA,EACE,GAAGpE,CAAA,CAAE,6BAA6BsC,GAAG,CAAC6B,KAAA,GAAQ;YAAAE,aAAA;UAAA,CAE1D;QAPN;QAAA;UAAA,GAWUZ,IAAI;UAAAG,IAAA,EAAQF;QAAA;MAAA;MAAA;IAAA;IAI5BrG,CAAA,OAAAG,GAAA;IAAAH,CAAA,OAAAyC,IAAA;IAAAzC,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAA0C,IAAA,CAAAsC,QAAA;IAAAhF,CAAA,OAAAuB,SAAA;IAAAvB,CAAA,OAAA2C,CAAA;IAAA3C,CAAA,OAAA+E,GAAA;EAAA;IAAAA,GAAA,GAAA/E,CAAA;EAAA;EAvDF,MAAAiH,YAAA,GAAqBlC,GAwD8B;EAAA,IAAAmC,GAAA;EAAA,IAAAlH,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAA0B,KAAA;IAIjDwF,GAAA,GAAAC,OAAA;MAAA,IACMxG,OAAA;QACF,MAAAyG,WAAA,QACMrF,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,MAClCyF,OAAA,CAAAb,GAAA,CAAAe,KAA2B;QAEhCpG,QAAA,CAASmG,WAAA;QACTxF,gBAAA,CAAA0F,WAAA,SACMA,WAAA,MAAiB,MAClBH,OAAA,CAAAb,GAAA,CAAAiB,KAAA;UAAAlG,UAAA,EACWS,gBAAA;UAAAJ,KAAA,EACL+E;QAAA,EACT,EACD;MAAA;QAED,MAAAe,QAAA,GAAiBL,OAAO;QACxBlG,QAAA,CAASuG,QAAA,CAAAzE,EAAW;QACpBnB,gBAAA;UAAAP,UAAA,EAEgBS,gBAAA;UAAAJ,KAAA,EACL8F;QAAA,EAEV;MAAA;IAAA;IAELxH,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAkH,GAAA;EAAA;IAAAA,GAAA,GAAAlH,CAAA;EAAA;EAzBF,MAAAyH,eAAA,GAAwBP,GA0BsB;EAAA,IAAAQ,GAAA;EAAA,IAAA1H,CAAA,SAAAkC,UAAA,IAAAlC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAiC,SAAA,IAAAjC,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAqB,UAAA,IAAArB,CAAA,SAAAmC,iBAAA,IAAAnC,CAAA,SAAAoC,oBAAA,IAAApC,CAAA,SAAAqC,eAAA,IAAArC,CAAA,SAAAsC,WAAA;IAI5CoF,GAAA,GAAAC,QAAA;MACE,IAAAC,aAAA,GAAoBD,QAAA;MAAA,IAChB,CAAChH,OAAA,IAAWgH,QAAA,IAAYA,QAAA,CAAApC,MAAA,IAAkB;QAC5C,MAAAsC,YAAA,OAAAC,YAAA;QACAD,YAAA,CAAAE,KAAA,CAAAC,GAAA,CAAuBL,QAAQ,GAAG;QAClCC,aAAA,CAAAA,CAAA,CAAgBC,YAAA,CAAAI,KAAA;MAAhB;MAAA,IAEEL,aAAA;QACFvF,eAAA,CAAgBuF,aAAA;MAAA;MAElBzF,iBAAA,CAAkBd,UAAA;MAAA,IACd,OAAOL,OAAA,KAAY;QACrBsB,WAAA,CAAYtB,OAAA;MAAA;MAEdoB,oBAAA,CAAqBjB,IAAA;MACrBc,SAAA,CAAUC,UAAA;IAAA;IACZlC,CAAA,OAAAkC,UAAA;IAAAlC,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAAiC,SAAA;IAAAjC,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAqB,UAAA;IAAArB,CAAA,OAAAmC,iBAAA;IAAAnC,CAAA,OAAAoC,oBAAA;IAAApC,CAAA,OAAAqC,eAAA;IAAArC,CAAA,OAAAsC,WAAA;IAAAtC,CAAA,OAAA0H,GAAA;EAAA;IAAAA,GAAA,GAAA1H,CAAA;EAAA;EAjBF,MAAAkI,oBAAA,GAA6BR,GA6B1B;EAAA,IAAAS,GAAA;EAAA,IAAAnI,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA6D,eAAA,IAAA7D,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAiH,YAAA,IAAAjH,CAAA,SAAA0B,KAAA;IAKDyG,GAAA,SAAA5B,IAAA;MACE,MAAA6B,cAAA;MAAyB,KAEpB,OAAAC,IAAA,EAAAC,UAAA,CAAsB,IAAI/B,IAAA;QAAA,IACzB+B,UAAA;UACFF,cAAA,CAAAG,IAAA,CAAoBxF,IAAA;QAAA;MAAA;MAIxB,MAAAyF,UAAA,SAAyBvB,YAAA,CAAamB,cAAA,EAAgBtG,gBAAA;MAAA,IAClD0G,UAAA;QACF5G,gBAAA,CAAA6G,aAAA,SACMnB,aAAA,MAAiB,MAClBkB,UAAA,CAAAjC,IAAA,CAAAD,GAAA,CAAAoC,KAAA;UAAArH,UAAA,EACWS,gBAAA;UAAAJ,KAAA,EACL+E;QAAA,EACT,EACD;MAAA;MAEHxF,QAAA,MAAcc,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,MAAM0G,cAAA,CAAe;MACpEvE,eAAA;IAAA;IACF7D,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA6D,eAAA;IAAA7D,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAmI,GAAA;EAAA;IAAAA,GAAA,GAAAnI,CAAA;EAAA;EAtBF,MAAA2I,gBAAA,GAAyBR,GAuB2C;EAAA,IAAAS,GAAA;EAAA,IAAA5I,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAoE,oBAAA,IAAApE,CAAA,SAAAiB,QAAA;IAIlE2H,GAAA,GAAAC,IAAA;MAAA,IACMA,IAAA,CAAApC,GAAA;QACF7E,gBAAA,CAAAkH,aAAA,SACMxB,aAAA,MAAiB;UAAAjG,UAAA,EAEPS,gBAAA;UAAAJ,KAAA,EACLmH,IAAA,CAAApC;QAAA,EAEV;QAEDxF,QAAA,CAAS4H,IAAA,CAAApC,GAAA,CAAA1D,EAAW;MAAA;MAEtBqB,oBAAA;IAAA;IACFpE,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAoE,oBAAA;IAAApE,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA4I,GAAA;EAAA;IAAAA,GAAA,GAAA5I,CAAA;EAAA;EAdF,MAAA+I,WAAA,GAAoBH,GAegC;EAAA,IAAAI,GAAA;EAAA,IAAAhJ,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA6D,eAAA,IAAA7D,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAiH,YAAA,IAAAjH,CAAA,SAAA0B,KAAA;IAIlDsH,GAAA,SAAAC,GAAA;MAAO;QAAAhF,cAAA;QAAAwC,GAAA,EAAAyC;MAAA,IAAAD,GAAuB;MAC5B,MAAAE,YAAA,SAAyBlC,YAAA,EAAcR,KAAA,CAAA1D,EAAA,GAASkB,cAAA;MAChD,MAAAmF,WAAA,GAAoBZ,YAAA,GAAaA,YAAA,CAAAjC,IAAA,YAAuB;MACxD3E,gBAAA,CAAAyH,aAAA;QAAA,IACMD,WAAA;UAAA,IACEzI,OAAA;YAAA,YAEI2G,aAAA,MAAiB;cAAAjG,UAAA,EAEPS,gBAAA;cAAAJ,KAAA,EACL0H;YAAA;UAAA;UAAA;YAAA/H,UAAA,EAMGS,gBAAA;YAAAJ,KAAA,EACL0H;UAAA;QAAA;QAAA,OAIN9B,aAAA;MAAA,CACT;MAAA,IACI3G,OAAA;QACFM,QAAA,MAAcc,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,GAAG+E,KAAA,CAAA1D,EAAA,CAAO;MAAA;QAEzD9B,QAAA,CAASwF,KAAA,CAAA1D,EAAM;MAAA;MAEjBc,eAAA;IAAA;IACF7D,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA6D,eAAA;IAAA7D,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAgJ,GAAA;EAAA;IAAAA,GAAA,GAAAhJ,CAAA;EAAA;EA9BF,MAAAsJ,YAAA,GAAqBN,GA+BwD;EAAA,IAAAC,GAAA;EAAA,IAAAjJ,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAiH,YAAA;IAI3EgC,GAAA,SAAAA,CAAAM,KAAA,EAAAC,gBAAA;MACE;QAAAjD,IAAA,EAAAkD;MAAA,UAAuBxC,YAAA,EAAcsC,KAAA,GAAQtF,gBAAA;MAAA,IAEzCsC,MAAI;QACN,IAAAmD,sBAAA;QAAAA,sBAAA;QACA9H,gBAAA,CAAA+H,aAAA;UACE,MAAAC,gBAAA,GAAyBtC,aAAA,EAAAuC,SAAA,CAAAC,KAAA;YACvB,MAAAC,WAAA,GAAoBtD,KAAA,CAAA/E,KAAA,EAAAqB,EAAA,KAAkBwD,MAAI,IAAAxD,EAAM,IAAI0D,KAAA,CAAA/E,KAAA,EAAAsF,aAAW;YAAA,OACxD+C,WAAA,IAAetD,KAAA,CAAApF,UAAA,KAAmB4C,gBAAA;UAAA;UAC3C,IACI2F,gBAAA,KAAoB;YACtB,MAAAI,WAAA,OAAwB1C,aAAA;YACxB0C,WAAW,CAACJ,gBAAA;cAAAvI,UAAA,EACE4C,gBAAA;cAAAvC,KAAA,EACL6E,MAAI;YAAA;YAEbmD,sBAAA,CAAAA,CAAA,CAAyBM,WAAA;YAAzB,OACOA,WAAA;UAAA;QAAA,CAEX;QAAA,IAEIN,sBAAA,CAAAnE,MAAA,IAAiC5E,OAAA;UACnCM,QAAA,CAASyI,sBAAA,CAAApD,GAAA,CAAA2D,MAA+C;QAAA;MAAA;IAAA;IAG9DjK,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAAiJ,GAAA;EAAA;IAAAA,GAAA,GAAAjJ,CAAA;EAAA;EA1BF,MAAAkK,SAAA,GAAkBjB,GA2BiB;EAAA,IAAAkB,GAAA;EAAA,IAAAnK,CAAA,SAAAiB,QAAA;IAKjCkJ,GAAA,GAAAC,UAAA;MACE,MAAAC,WAAA,GAAoBvF,UAAA,CAAAwB,GAAA,CAAAgE,MAAoC;MACxDrJ,QAAA,CAASoJ,WAAA;MACTzI,gBAAA,CAAiBkD,UAAA;IAAA;IACnB9E,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAmK,GAAA;EAAA;IAAAA,GAAA,GAAAnK,CAAA;EAAA;EALF,MAAAuK,SAAA,GAAkBJ,GAMN;EAAA,IAAAK,GAAA;EAAA,IAAAxK,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA;IAIVuJ,GAAA,GAAAC,UAAA;MACE,MAAAC,aAAA,GAAoB5F,UAAA,GAAWA,UAAA,CAAAwB,GAAA,CAAAqE,MAAoC,QAAI;MACvE1J,QAAA,CAASN,OAAA,GAAU0J,aAAA,GAAcA,aAAA,GAAcA,aAAW,UAAM;MAChEzI,gBAAA,CAAiBkD,UAAA,GAAWA,UAAA,KAAa;IAAA;IAC3C9E,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAwK,GAAA;EAAA;IAAAA,GAAA,GAAAxK,CAAA;EAAA;EALF,MAAA4K,QAAA,GAAiBJ,GAMI;EAAA,IAAAK,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAA9K,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAiH,YAAA,IAAAjH,CAAA,SAAA0B,KAAA;IAGXmJ,GAAA,GAAAA,CAAA;MACR,MAAAE,eAAA,kBAAAA,gBAAA;QAAA,IACMrJ,KAAA;UACF4C,kBAAA,CAAA0G,OAAA;UACA,MAAAC,YAAA,SAAyBhE,YAAA,CACvBlF,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,IAASA,KAAA,CAAM,EACtCI,gBAAA;UAAA,IAEE0G,YAAA;YACF5G,gBAAA,CACE4G,YAAA,CAAAjC,IAAA,CAAAD,GAAA,CAAA4E,KAAA;cAAA7J,UAAA,EAA4CS,gBAAA;cAAAJ,KAAA,EAAyB+E;YAAA,EAAI;UAAA;QAAA;MAAA;MAIjF,KAEKnC,kBAAA,CAAA0G,OAAA;QACED,eAAA;MAAA;IAAA;IAEND,GAAA,IAAC7D,YAAA,EAAcnF,gBAAA,EAAkBJ,KAAA;IAAM1B,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAA6K,GAAA;IAAA7K,CAAA,OAAA8K,GAAA;EAAA;IAAAD,GAAA,GAAA7K,CAAA;IAAA8K,GAAA,GAAA9K,CAAA;EAAA;EAnB1CrB,SAAA,CAAUkM,GAmBV,EAAGC,GAAuC;EAAA,IAAAK,GAAA;EAAA,IAAAnL,CAAA,SAAAyH,eAAA,IAAAzH,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAuC,YAAA;IAEhC4I,GAAA,GAAAA,CAAA;MACR5I,YAAA,CAAapB,IAAA,EAAMsG,eAAA;IAAA;IACrBzH,CAAA,OAAAyH,eAAA;IAAAzH,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAuC,YAAA;IAAAvC,CAAA,OAAAmL,GAAA;EAAA;IAAAA,GAAA,GAAAnL,CAAA;EAAA;EAAA,IAAAoL,GAAA;EAAA,IAAApL,CAAA,SAAAyH,eAAA,IAAAzH,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAuC,YAAA,IAAAvC,CAAA,SAAA0B,KAAA;IAAG0J,GAAA,IAAC1J,KAAA,EAAOP,IAAA,EAAMsG,eAAA,EAAiBlF,YAAA;IAAavC,CAAA,OAAAyH,eAAA;IAAAzH,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAuC,YAAA;IAAAvC,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAoL,GAAA;EAAA;IAAAA,GAAA,GAAApL,CAAA;EAAA;EAF/CrB,SAAA,CAAUwM,GAEV,EAAGC,GAA4C;EAE/C,MAAAC,YAAA,GACE,CAAC3J,KAAA,IACAf,OAAA,IAAWoB,KAAA,CAAAC,OAAA,CAAcN,KAAA,MAAW,OAAOV,OAAA,KAAY,YAAYU,KAAA,CAAA6D,MAAA,GAAevE,OAAM,KACxF,CAACL,OAAA,IAAWgB,aAAA,KAAkB,IAAI,OAAOA,aAAa,IAAAD,KAAA,KAAc;EAQjE,MAAA4J,GAAA,GAAA9J,SAAA,IAAa;EACb,MAAA+J,GAAA,GAAAnK,QAAA,IAAY;EAAA,IAAAoK,GAAA;EAAA,IAAAxL,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAsL,GAAA,IAAAtL,CAAA,SAAAuL,GAAA;IALHC,GAAA,IAAA9L,cAAA,EAAAG,SAAA,EAGTQ,SAAA,EACAiL,GAAa,EACbC,GAAY,EAAAE,MAAA,CAAAC,OAEJ;IAAA1L,CAAA,OAAAK,SAAA;IAAAL,CAAA,OAAAsL,GAAA;IAAAtL,CAAA,OAAAuL,GAAA;IAAAvL,CAAA,OAAAwL,GAAA;EAAA;IAAAA,GAAA,GAAAxL,CAAA;EAAA;EAPC,MAAA2L,GAAA,GAAAH,GAOD,CAAAI,IAAA,CACF;EACJ,MAAAC,GAAA,YAAS1K,IAAA,EAAA2K,OAAA,QAAqB,OAAO;EAAA,IAAAC,GAAA;EAAA,IAAA/L,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAAI,WAAA,IAAAJ,CAAA,UAAAkE,eAAA,IAAAlE,CAAA,UAAAM,WAAA,IAAAN,CAAA,UAAAQ,KAAA,IAAAR,CAAA,UAAAa,KAAA,IAAAb,CAAA,UAAA0D,UAAA,IAAA1D,CAAA,UAAA4E,SAAA,IAAA5E,CAAA,UAAAO,WAAA,IAAAP,CAAA,UAAAW,OAAA,IAAAX,CAAA,UAAAY,UAAA,IAAAZ,CAAA,UAAAc,KAAA,IAAAd,CAAA,UAAAe,SAAA,IAAAf,CAAA,UAAAgB,OAAA,IAAAhB,CAAA,UAAA+I,WAAA,IAAA/I,CAAA,UAAA2I,gBAAA,IAAA3I,CAAA,UAAAsJ,YAAA,IAAAtJ,CAAA,UAAAkI,oBAAA,IAAAlI,CAAA,UAAA4K,QAAA,IAAA5K,CAAA,UAAAuK,SAAA,IAAAvK,CAAA,UAAAqE,mBAAA,IAAArE,CAAA,UAAA+D,cAAA,IAAA/D,CAAA,UAAAmB,IAAA,IAAAnB,CAAA,UAAA2B,aAAA,IAAA3B,CAAA,UAAAoB,QAAA,IAAApB,CAAA,UAAAkK,SAAA,IAAAlK,CAAA,UAAAsB,QAAA,IAAAtB,CAAA,UAAAuB,SAAA,IAAAvB,CAAA,UAAAqL,YAAA,IAAArL,CAAA,UAAAwB,SAAA,IAAAxB,CAAA,UAAAyB,KAAA,IAAAzB,CAAA,UAAA2C,CAAA,IAAA3C,CAAA,UAAA2L,GAAA,IAAA3L,CAAA,UAAA6L,GAAA,IAAA7L,CAAA,UAAA0B,KAAA;IAV3CqK,GAAA,GAAAC,KAAA,CAAC;MAAA3L,SAAA,EACYsL,GAQH;MAAA5I,EAAA,EACJ8I,GAAqC;MAAApK,KAAA;MAAAwK,QAAA,GAGzCC,IAAA,CAAAhN,qBAAA;QAAAiN,eAAA,EACmBtL,KAAA;QAAAuL,QAAA,EAEfF,IAAA,CAAA5M,UAAA;UAAAwB,KAAA;UAAAC,SAAA;UAAAI,IAAA;UAAAG;QAAA,C;UAGJ4K,IAAA,CAAC;QAAA7L,SAAA,EAAe,GAAAR,SAAA,QAAoB;QAAAoM,QAAA,EAClCC,IAAA,CAAAhN,qBAAA;UAAAiN,eAAA,EACmB3L,KAAA;UAAA4L,QAAA,EACPF,IAAA,CAAA7M,UAAA;YAAA8B,IAAA;YAAAK;UAAA,C;;UAGbpB,WAAA,EACD4L,KAAA,CAAC;QAAA3L,SAAA,EAAe,GAAAR,SAAA,qBAAiC;QAAAoM,QAAA,GAC9CtL,OAAA,IAAWoB,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,CAAA6D,MAAA,IAAe,GACjD2G,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACGtK,aAAA,IAAiBA,aAAA,EAAA4D,MAAA,IAAwB,GACxC2G,IAAA,CAAAvM,sBAAA;YAAA2M,QAAA,EACY3K,aAAA;YAAAf,UAAA,EACEA,UAAA,KAAeQ,QAAA;YAAAwJ,QAAA;YAAAL,SAAA;YAAAgC,QAAA,EAGjBnL,QAAA;YAAA8I,SAAA;YAAA3I;UAAA,C,IAKZ2K,IAAA,CAAC;YAAA7L,SAAA,EAAe,GAAAR,SAAA,eAA2B;YAAAoM,QAAA,EACxCvK,KAAA,CAAA4E,GAAA,CAAAkG,MACmC;UAAA,C;iBAKxC,EACH,CAAC7L,OAAA,IAAWe,KAAA,GACXwK,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACGtK,aAAA,IAAiBA,aAAA,EAAA4D,MAAA,IAAwB,IAAK5D,aAAa,IAAAD,KAAS,GACnEwK,IAAA,CAAAtM,qBAAA;YAAA6M,OAAA,EACW9K,aAAa;YAAAiJ,QAAA;YAAA2B,QAAA,EAEZnL,QAAA;YAAA8I,SAAA;YAAA3I;UAAA,C,IAIVI,aAAA,IAAiBD,KAAA,KAAUC,aAAA,OAAAD,KAAoB,GACjDsK,KAAA,CAAAK,SAAA;YAAAJ,QAAA,GACGtJ,CAAA,CAAE,qBAAoB,WAAQjB,KAAA;UAAA,C,IAGjCwK,IAAA,CAAA/M,aAAA;YAAAuN,MAAA,EAAsB;UAAA,C;iBAGxB,EACHrB,YAAA,GACCa,IAAA,CAAAlN,QAAA;UAAA2N,QAAA,EACYvL,QAAA,KAAawD,SAAA;UAAAgI,aAAA,EACRjM,OAAA;UAAAM,QAAA,EACLiH,oBAAA;UAAA+D,QAAA,EAEVD,KAAA,CAAC;YAAA3L,SAAA,EAAe,GAAAR,SAAA,mBAA+B;YAAAoM,QAAA,GAC7CD,KAAA,CAAC;cAAA3L,SAAA,EAAe,GAAAR,SAAA,4BAAwC;cAAAoM,QAAA,GACrDrH,SAAA,IACCoH,KAAA,CAAAK,SAAA;gBAAAJ,QAAA,GACEC,IAAA,CAAApN,MAAA;kBAAA+N,WAAA,EACc;kBAAAxM,SAAA,EACD,GAAAR,SAAA,oBAAgC;kBAAA8M,QAAA,EACjCvL,QAAA,KAAawD,SAAA;kBAAAkI,OAAA,EAAAA,CAAA;oBAAA,KAEhB1L,QAAA;sBAAA,IACCT,OAAA;wBACFuH,oBAAA;sBAAA;wBAEA7D,mBAAA;sBAAA;oBAAA;kBAAA;kBAAA0I,IAAA,EAID;kBAAAd,QAAA,EAEJtJ,CAAA,CAAE;gBAAA,C,GAELuJ,IAAA,CAAC;kBAAA7L,SAAA,EAAgB,GAAAR,SAAA,2BAAuC;kBAAAoM,QAAA,EACrDtJ,CAAA,CAAE;gBAAA,C;kBAITuJ,IAAA,CAAApN,MAAA;gBAAA+N,WAAA,EACc;gBAAAxM,SAAA,EACD,GAAAR,SAAA,eAA2B;gBAAA8M,QAAA,EAC5BvL,QAAA;gBAAA0L,OAAA,EACD/I,cAAA;gBAAAgJ,IAAA,EACJ;gBAAAd,QAAA,EAEJtJ,CAAA,CAAE;cAAA,C,GAELuJ,IAAA,CAAChI,eAAA;gBAAA8I,MAAA,EAAwBjE;cAAA,C,GACzBmD,IAAA,CAACxI,UAAA;gBAAAxD,WAAA,EACc0E,SAAA;gBAAAqI,mBAAA,EACQtM,OAAA;gBAAAuM,YAAA,EACPvE,gBAAA;gBAAAwE,QAAA,EACJ7D;cAAA,C;gBAIb1E,SAAA,KAAcxD,QAAA,IACb4K,KAAA,CAAC;cAAA3L,SAAA,EAAa,GAAAR,SAAA,mBAA+B;cAAAoM,QAAA,GAC1CtJ,CAAA,CAAE,eAAc,KAAEA,CAAA,CAAE;YAAA,C;;aAM7BuJ,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACG,CAAC7K,QAAA,KACDO,aAAA,KACA,CAACD,KAAA,IACA,OAAOV,OAAA,KAAY,YAClBe,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,CAAA6D,MAAA,GAAevE,OAAO,IAC/CkL,IAAA,CAAA/M,aAAA;YAAAuN,MAAA,EAAsB;UAAA,C;QACpB,C;UAITzM,UAAA,EACDiM,IAAA,CAAAhN,qBAAA;QAAAiN,eAAA,EACmB7L,WAAA;QAAA8L,QAAA,EACPF,IAAA,CAAA9M,gBAAA;UAAAmB,WAAA;UAAAY;QAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA3Id4K,G;;AApYG,SAAAS,OAAAY,IAAA;EAAA,OA8aWlB,IAAA,CAAA/M,aAAA;IAAAuN,MAAA,EAAsB;EAAA,GAAY3J,IAAA;AAAA;AA9a7C,SAAA4H,OAAA/H,EAAA;EA8V4C;IAAAlB,KAAA,EAAA2L;EAAA,IAAAzK,EAAS;EAAA,OAAKlB,OAAA,CAAAqB,EAAA;AAAA;AA9V1D,SAAAuH,OAAA1H,EAAA;EAqViC;IAAAlB,KAAA,EAAA4L;EAAA,IAAA1K,EAAS;EAAA,OAAKlB,OAAA,CAAAqB,EAAA;AAAA;AArV/C,SAAAkH,OAAAsD,KAAA;EAAA,OA2UgD9G,KAAA,CAAA/E,KAAA,EAAAqB,EAAA;AAAA;AA3UhD,SAAAsE,MAAAmG,KAAA;EAAA,OA6K2B/G,KAAA,CAAA1D,EAAA;AAAA","ignoreList":[]}
@@ -12,7 +12,7 @@ export type RenderedFieldSlots = Map<string, RenderedField>;
12
12
  /**
13
13
  * Get the state of the form, can be used to submit & validate the form.
14
14
  *
15
- * @see https://payloadcms.com/docs/admin/hooks#useform
15
+ * @see https://payloadcms.com/docs/admin/react-hooks#useform
16
16
  */
17
17
  declare const useForm: () => Context;
18
18
  /**
@@ -28,13 +28,13 @@ declare const useFormInitializing: () => boolean;
28
28
  /**
29
29
  * Get and set the value of a form field based on a selector
30
30
  *
31
- * @see https://payloadcms.com/docs/admin/hooks#useformfields
31
+ * @see https://payloadcms.com/docs/admin/react-hooks#useformfields
32
32
  */
33
33
  declare const useFormFields: <Value = unknown>(selector: (context: FormFieldsContextType) => Value) => Value;
34
34
  /**
35
35
  * Get the state of all form fields.
36
36
  *
37
- * @see https://payloadcms.com/docs/admin/hooks#useallformfields
37
+ * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields
38
38
  */
39
39
  declare const useAllFormFields: () => FormFieldsContextType;
40
40
  export { DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useAllFormFields, useDocumentForm, useForm, useFormFields, useFormInitializing, useFormModified, useFormProcessing, useFormSubmitted, useWatchForm, };
@@ -13,7 +13,7 @@ const FormFieldsContext = createSelectorContext([{}, () => null]);
13
13
  /**
14
14
  * Get the state of the form, can be used to submit & validate the form.
15
15
  *
16
- * @see https://payloadcms.com/docs/admin/hooks#useform
16
+ * @see https://payloadcms.com/docs/admin/react-hooks#useform
17
17
  */
18
18
  const useForm = () => {
19
19
  return useContext(FormContext);
@@ -43,7 +43,7 @@ const useFormInitializing = () => {
43
43
  /**
44
44
  * Get and set the value of a form field based on a selector
45
45
  *
46
- * @see https://payloadcms.com/docs/admin/hooks#useformfields
46
+ * @see https://payloadcms.com/docs/admin/react-hooks#useformfields
47
47
  */
48
48
  const useFormFields = selector => {
49
49
  return useContextSelector(FormFieldsContext, selector);
@@ -51,7 +51,7 @@ const useFormFields = selector => {
51
51
  /**
52
52
  * Get the state of all form fields.
53
53
  *
54
- * @see https://payloadcms.com/docs/admin/hooks#useallformfields
54
+ * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields
55
55
  */
56
56
  const useAllFormFields = () => {
57
57
  return useFullContext(FormFieldsContext);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","useContext","createSelectorContext","useContextSelector","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, useContext } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/hooks#useform\n */\nconst useForm = (): Context => useContext(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => useContext(DocumentFormContext)\n\nconst useWatchForm = (): Context => useContext(FormWatchContext)\nconst useFormSubmitted = (): boolean => useContext(SubmittedContext)\nconst useFormProcessing = (): boolean => useContext(ProcessingContext)\nconst useFormModified = (): boolean => useContext(ModifiedContext)\nconst useFormInitializing = (): boolean => useContext(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBF,UAAA,IAAcG,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcL,aAAA,CAAc,CAAC;AACnC,MAAMM,mBAAA,GAAsBN,aAAA,CAAc,CAAC;AAC3C,MAAMO,gBAAA,GAAmBP,aAAA,CAAc,CAAC;AACxC,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc;AACvC,MAAMS,iBAAA,GAAoBT,aAAA,CAAc;AACxC,MAAMU,eAAA,GAAkBV,aAAA,CAAc;AACtC,MAAMW,mBAAA,GAAsBX,aAAA,CAAc;AAC1C,MAAMY,iBAAA,GAAoBV,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMW,OAAA,GAAUA,CAAA;EAAA,OAAeZ,UAAA,CAAAI,WAAW;AAAA;AAC1C;;;;AAIA,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAeb,UAAA,CAAAK,mBAAW;AAAA;AAElD,MAAMS,YAAA,GAAeA,CAAA;EAAA,OAAed,UAAA,CAAAM,gBAAW;AAAA;AAC/C,MAAMS,gBAAA,GAAmBA,CAAA;EAAA,OAAef,UAAA,CAAAO,gBAAW;AAAA;AACnD,MAAMS,iBAAA,GAAoBA,CAAA;EAAA,OAAehB,UAAA,CAAAQ,iBAAW;AAAA;AACpD,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAejB,UAAA,CAAAS,eAAW;AAAA;AAClD,MAAMS,mBAAA,GAAsBA,CAAA;EAAA,OAAelB,UAAA,CAAAU,mBAAW;AAAA;AAEtD;;;;;AAKA,MAAMS,aAAA,GAAgBC,QAAA;EAAA,OAEVlB,kBAAA,CAAAS,iBAAA,EAAsCS,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BlB,cAAA,CAAAQ,iBAAe;AAAA;AAErE,SACEN,mBAAmB,EACnBD,WAAW,EACXO,iBAAiB,EACjBL,gBAAgB,EAChBI,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBc,gBAAgB,EAChBR,eAAe,EACfD,OAAO,EACPO,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","createSelectorContext","useContextSelector","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, useContext } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useform\n */\nconst useForm = (): Context => useContext(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => useContext(DocumentFormContext)\n\nconst useWatchForm = (): Context => useContext(FormWatchContext)\nconst useFormSubmitted = (): boolean => useContext(SubmittedContext)\nconst useFormProcessing = (): boolean => useContext(ProcessingContext)\nconst useFormModified = (): boolean => useContext(ModifiedContext)\nconst useFormInitializing = (): boolean => useContext(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBF,UAAA,IAAcG,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcL,aAAA,CAAc,CAAC;AACnC,MAAMM,mBAAA,GAAsBN,aAAA,CAAc,CAAC;AAC3C,MAAMO,gBAAA,GAAmBP,aAAA,CAAc,CAAC;AACxC,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc;AACvC,MAAMS,iBAAA,GAAoBT,aAAA,CAAc;AACxC,MAAMU,eAAA,GAAkBV,aAAA,CAAc;AACtC,MAAMW,mBAAA,GAAsBX,aAAA,CAAc;AAC1C,MAAMY,iBAAA,GAAoBV,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMW,OAAA,GAAUA,CAAA;EAAA,OAAeZ,UAAA,CAAAI,WAAW;AAAA;AAC1C;;;;AAIA,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAeb,UAAA,CAAAK,mBAAW;AAAA;AAElD,MAAMS,YAAA,GAAeA,CAAA;EAAA,OAAed,UAAA,CAAAM,gBAAW;AAAA;AAC/C,MAAMS,gBAAA,GAAmBA,CAAA;EAAA,OAAef,UAAA,CAAAO,gBAAW;AAAA;AACnD,MAAMS,iBAAA,GAAoBA,CAAA;EAAA,OAAehB,UAAA,CAAAQ,iBAAW;AAAA;AACpD,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAejB,UAAA,CAAAS,eAAW;AAAA;AAClD,MAAMS,mBAAA,GAAsBA,CAAA;EAAA,OAAelB,UAAA,CAAAU,mBAAW;AAAA;AAEtD;;;;;AAKA,MAAMS,aAAA,GAAgBC,QAAA;EAAA,OAEVlB,kBAAA,CAAAS,iBAAA,EAAsCS,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BlB,cAAA,CAAAQ,iBAAe;AAAA;AAErE,SACEN,mBAAmB,EACnBD,WAAW,EACXO,iBAAiB,EACjBL,gBAAgB,EAChBI,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBc,gBAAgB,EAChBR,eAAe,EACfD,OAAO,EACPO,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
@@ -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,CA2X7E"}
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,CAgZ7E"}
@@ -172,32 +172,48 @@ export function fieldReducer(state, action) {
172
172
  moveToIndex,
173
173
  path
174
174
  } = action;
175
+ // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`
175
176
  const {
176
177
  remainingFields,
177
- rows
178
+ rows: topLevelRows
178
179
  } = separateRows(path, state);
179
- // copy the row to move
180
- const copyOfMovingRow = rows[moveFromIndex];
181
- // delete the row by index
182
- rows.splice(moveFromIndex, 1);
183
- // insert row copyOfMovingRow back in
184
- rows.splice(moveToIndex, 0, copyOfMovingRow);
180
+ const copyOfMovingRow = topLevelRows[moveFromIndex];
181
+ topLevelRows.splice(moveFromIndex, 1);
182
+ topLevelRows.splice(moveToIndex, 0, copyOfMovingRow);
185
183
  // modify array/block internal row state (i.e. collapsed, blockType)
186
- const rowStateCopy = [...(state[path]?.rows || [])];
187
- const movingRowState = {
188
- ...rowStateCopy[moveFromIndex]
184
+ const rowsWithinField = [...(state[path]?.rows || [])];
185
+ const copyOfMovingRow2 = {
186
+ ...rowsWithinField[moveFromIndex]
189
187
  };
190
- rowStateCopy.splice(moveFromIndex, 1);
191
- rowStateCopy.splice(moveToIndex, 0, movingRowState);
188
+ rowsWithinField.splice(moveFromIndex, 1);
189
+ rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2);
192
190
  const newState = {
193
191
  ...remainingFields,
194
- ...flattenRows(path, rows),
192
+ ...flattenRows(path, topLevelRows),
195
193
  [path]: {
196
194
  ...state[path],
197
195
  requiresRender: true,
198
- rows: rowStateCopy
196
+ rows: rowsWithinField
199
197
  }
200
198
  };
199
+ // Do the same for custom components, i.e. `array.customComponents.RowLabels[0]` -> `array.customComponents.RowLabels[1]`
200
+ // Do this _after_ initializing `newState` to avoid adding the `customComponents` key to the state if it doesn't exist
201
+ if (newState[path]?.customComponents?.RowLabels) {
202
+ const customComponents = {
203
+ ...newState[path].customComponents,
204
+ RowLabels: [...newState[path].customComponents.RowLabels]
205
+ };
206
+ // Ensure the array grows if necessary
207
+ if (moveToIndex >= customComponents.RowLabels.length) {
208
+ customComponents.RowLabels.length = moveToIndex + 1;
209
+ }
210
+ const copyOfMovingLabel = customComponents.RowLabels[moveFromIndex];
211
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
212
+ customComponents.RowLabels.splice(moveFromIndex, 1);
213
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
214
+ customComponents.RowLabels.splice(moveToIndex, 0, copyOfMovingLabel);
215
+ newState[path].customComponents = customComponents;
216
+ }
201
217
  return newState;
202
218
  }
203
219
  case 'REMOVE':
@@ -1 +1 @@
1
- {"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObjectSimple","deepCopyObjectSimpleWithoutReactComponents","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","undefined","collapsed","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","requiresRender","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","rowsMetadata","duplicateRowMetadata","duplicateRowState","key","keys","filter","endsWith","idState","isValid","moveFromIndex","moveToIndex","copyOfMovingRow","rowStateCopy","movingRowState","rowIndexArg","Math","max","min","optimize","newField","oldField","sanitize","field","values","updatedRows","formState"],"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 { deepCopyObjectSimple, deepCopyObjectSimpleWithoutReactComponents } 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 '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 isLoading: true,\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\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n requiresRender: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n requiresRender: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\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(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\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 '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 = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {\n const idState = duplicateRowState[key]\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n duplicateRowState[key].value = new ObjectId().toHexString()\n duplicateRowState[key].initialValue = new ObjectId().toHexString()\n }\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 requiresRender: 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 requiresRender: true,\n rows: rowStateCopy,\n },\n }\n\n return newState\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 '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 requiresRender: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\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 '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: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n //TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\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 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 '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 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\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","deepCopyObjectSimple","deepCopyObjectSimpleWithoutReactComponents","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","undefined","collapsed","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","requiresRender","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","rowsMetadata","duplicateRowMetadata","duplicateRowState","key","keys","filter","endsWith","idState","isValid","moveFromIndex","moveToIndex","topLevelRows","copyOfMovingRow","rowsWithinField","copyOfMovingRow2","customComponents","RowLabels","copyOfMovingLabel","rowIndexArg","Math","max","min","optimize","newField","oldField","sanitize","field","values","updatedRows","formState"],"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 { deepCopyObjectSimple, deepCopyObjectSimpleWithoutReactComponents } 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 '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 isLoading: true,\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\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n requiresRender: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n requiresRender: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\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(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\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 '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 = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {\n const idState = duplicateRowState[key]\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n duplicateRowState[key].value = new ObjectId().toHexString()\n duplicateRowState[key].initialValue = new ObjectId().toHexString()\n }\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 requiresRender: 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\n // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`\n const { remainingFields, rows: topLevelRows } = separateRows(path, state)\n const copyOfMovingRow = topLevelRows[moveFromIndex]\n topLevelRows.splice(moveFromIndex, 1)\n topLevelRows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowsWithinField = [...(state[path]?.rows || [])]\n const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] }\n rowsWithinField.splice(moveFromIndex, 1)\n rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, topLevelRows),\n [path]: {\n ...state[path],\n requiresRender: true,\n rows: rowsWithinField,\n },\n }\n\n // Do the same for custom components, i.e. `array.customComponents.RowLabels[0]` -> `array.customComponents.RowLabels[1]`\n // Do this _after_ initializing `newState` to avoid adding the `customComponents` key to the state if it doesn't exist\n if (newState[path]?.customComponents?.RowLabels) {\n const customComponents = {\n ...newState[path].customComponents,\n RowLabels: [...newState[path].customComponents.RowLabels],\n }\n\n // Ensure the array grows if necessary\n if (moveToIndex >= customComponents.RowLabels.length) {\n customComponents.RowLabels.length = moveToIndex + 1\n }\n\n const copyOfMovingLabel = customComponents.RowLabels[moveFromIndex]\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n customComponents.RowLabels.splice(moveFromIndex, 1)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n customComponents.RowLabels.splice(moveToIndex, 0, copyOfMovingLabel)\n\n newState[path].customComponents = customComponents\n }\n\n return newState\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 '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 requiresRender: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\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 '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: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n //TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\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 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 '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 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\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,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"}
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;AAkCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAsvBpC,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"}
@@ -18,6 +18,7 @@ import { useOperation } from '../../providers/Operation/index.js';
18
18
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
19
19
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
20
20
  import { useTranslation } from '../../providers/Translation/index.js';
21
+ import { useUploadHandlers } from '../../providers/UploadHandlers/index.js';
21
22
  import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
22
23
  import { requests } from '../../utilities/api.js';
23
24
  import { DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useDocumentForm } from './context.js';
@@ -76,6 +77,9 @@ export const Form = props => {
76
77
  const {
77
78
  startRouteTransition
78
79
  } = useRouteTransition();
80
+ const {
81
+ getUploadHandler
82
+ } = useUploadHandlers();
79
83
  const {
80
84
  config
81
85
  } = useConfig();
@@ -257,7 +261,7 @@ export const Form = props => {
257
261
  setDisabled(false);
258
262
  return;
259
263
  }
260
- const formData = contextRef.current.createFormData(overrides, {
264
+ const formData = await contextRef.current.createFormData(overrides, {
261
265
  mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function')
262
266
  });
263
267
  try {
@@ -366,11 +370,12 @@ export const Form = props => {
366
370
  const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), []);
367
371
  const getSiblingData = useCallback(path_1 => getSiblingDataFunc(contextRef.current.fields, path_1), []);
368
372
  const getDataByPath = useCallback(path_2 => getDataByPathFunc(contextRef.current.fields, path_2), []);
369
- const createFormData = useCallback((overrides_0, {
373
+ const createFormData = useCallback(async (overrides_0, {
370
374
  mergeOverrideData = true
371
375
  }) => {
372
376
  let data_5 = reduceFieldsToValues(contextRef.current.fields, true);
373
- const file = data_5?.file;
377
+ let file = data_5?.file;
378
+ // throw new Error()
374
379
  if (file) {
375
380
  delete data_5.file;
376
381
  }
@@ -382,6 +387,24 @@ export const Form = props => {
382
387
  } else {
383
388
  data_5 = overrides_0;
384
389
  }
390
+ const handler = getUploadHandler({
391
+ collectionSlug
392
+ });
393
+ if (typeof handler === 'function') {
394
+ let filename = file.name;
395
+ await handler({
396
+ file,
397
+ updateFilename: value_0 => {
398
+ filename = value_0;
399
+ }
400
+ });
401
+ file = JSON.stringify({
402
+ collectionSlug,
403
+ filename,
404
+ mimeType: file.type,
405
+ size: file.size
406
+ });
407
+ }
385
408
  const dataToSerialize = {
386
409
  _payload: JSON.stringify(data_5),
387
410
  file
@@ -392,7 +415,7 @@ export const Form = props => {
392
415
  nullsAsUndefineds: false
393
416
  });
394
417
  return formData_0;
395
- }, []);
418
+ }, [collectionSlug, getUploadHandler]);
396
419
  const reset = useCallback(async data_6 => {
397
420
  const controller = handleAbortRef(abortResetFormRef);
398
421
  const docPreferences = await getDocPreferences();