@payloadcms/ui 3.3.0 → 3.4.1-canary.2a8fa30

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 (88) hide show
  1. package/dist/elements/CodeEditor/CodeEditor.js +39 -32
  2. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  3. package/dist/elements/CodeEditor/types.d.ts +4 -0
  4. package/dist/elements/CodeEditor/types.d.ts.map +1 -1
  5. package/dist/elements/CodeEditor/types.js.map +1 -1
  6. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  7. package/dist/elements/CopyLocaleData/index.js +4 -3
  8. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  9. package/dist/elements/FieldSelect/index.js +2 -2
  10. package/dist/elements/FieldSelect/index.js.map +1 -1
  11. package/dist/elements/PublishButton/index.js +15 -18
  12. package/dist/elements/PublishButton/index.js.map +1 -1
  13. package/dist/elements/RelationshipTable/index.d.ts +2 -0
  14. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  15. package/dist/elements/RelationshipTable/index.js +35 -31
  16. package/dist/elements/RelationshipTable/index.js.map +1 -1
  17. package/dist/elements/Table/DefaultCell/index.js +2 -2
  18. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  19. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  20. package/dist/elements/TableColumns/buildColumnState.js +5 -2
  21. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  22. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  23. package/dist/elements/WhereBuilder/reduceClientFields.js +2 -2
  24. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  25. package/dist/exports/client/{CodeEditor-RZ32B2QF.js → CodeEditor-QIIK6FKF.js} +2 -2
  26. package/dist/exports/client/{chunk-CKHKQPOO.js → chunk-MFQ5YTBK.js} +6 -6
  27. package/dist/exports/client/chunk-MFQ5YTBK.js.map +8 -0
  28. package/dist/exports/client/index.d.ts +4 -0
  29. package/dist/exports/client/index.d.ts.map +1 -1
  30. package/dist/exports/client/index.js +10 -10
  31. package/dist/exports/client/index.js.map +4 -4
  32. package/dist/exports/shared/index.js +2 -2
  33. package/dist/exports/shared/index.js.map +3 -3
  34. package/dist/fields/Group/index.d.ts.map +1 -1
  35. package/dist/fields/Group/index.js +2 -1
  36. package/dist/fields/Group/index.js.map +1 -1
  37. package/dist/fields/Join/index.d.ts.map +1 -1
  38. package/dist/fields/Join/index.js +15 -3
  39. package/dist/fields/Join/index.js.map +1 -1
  40. package/dist/fields/Relationship/index.d.ts.map +1 -1
  41. package/dist/fields/Relationship/index.js +1 -1
  42. package/dist/fields/Relationship/index.js.map +1 -1
  43. package/dist/fields/Select/Input.d.ts +1 -0
  44. package/dist/fields/Select/Input.d.ts.map +1 -1
  45. package/dist/fields/Select/Input.js +41 -38
  46. package/dist/fields/Select/Input.js.map +1 -1
  47. package/dist/fields/Tabs/index.d.ts +15 -0
  48. package/dist/fields/Tabs/index.d.ts.map +1 -1
  49. package/dist/fields/Tabs/index.js +2 -2
  50. package/dist/fields/Tabs/index.js.map +1 -1
  51. package/dist/forms/Form/index.d.ts.map +1 -1
  52. package/dist/forms/Form/index.js +2 -1
  53. package/dist/forms/Form/index.js.map +1 -1
  54. package/dist/forms/RenderFields/index.js +2 -2
  55. package/dist/forms/RenderFields/index.js.map +1 -1
  56. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  57. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +5 -8
  58. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  59. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  60. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -0
  61. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  62. package/dist/providers/Locale/index.d.ts +15 -1
  63. package/dist/providers/Locale/index.d.ts.map +1 -1
  64. package/dist/providers/Locale/index.js +50 -119
  65. package/dist/providers/Locale/index.js.map +1 -1
  66. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  67. package/dist/providers/SearchParams/index.js +25 -68
  68. package/dist/providers/SearchParams/index.js.map +1 -1
  69. package/dist/styles.css +1 -1
  70. package/dist/utilities/buildTableState.d.ts.map +1 -1
  71. package/dist/utilities/buildTableState.js.map +1 -1
  72. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  73. package/dist/utilities/copyDataFromLocale.js +11 -4
  74. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  75. package/dist/utilities/formatFields.d.ts.map +1 -1
  76. package/dist/utilities/formatFields.js +2 -2
  77. package/dist/utilities/formatFields.js.map +1 -1
  78. package/dist/utilities/groupNavItems.d.ts.map +1 -1
  79. package/dist/utilities/groupNavItems.js +6 -6
  80. package/dist/utilities/groupNavItems.js.map +1 -1
  81. package/dist/utilities/renderTable.d.ts.map +1 -1
  82. package/dist/utilities/renderTable.js +4 -0
  83. package/dist/utilities/renderTable.js.map +1 -1
  84. package/dist/views/Edit/index.js +1 -1
  85. package/dist/views/Edit/index.js.map +1 -1
  86. package/package.json +4 -4
  87. package/dist/exports/client/chunk-CKHKQPOO.js.map +0 -8
  88. /package/dist/exports/client/{CodeEditor-RZ32B2QF.js.map → CodeEditor-QIIK6FKF.js.map} +0 -0
@@ -374,6 +374,7 @@ export const Form = props => {
374
374
  docPermissions,
375
375
  docPreferences,
376
376
  globalSlug,
377
+ locale,
377
378
  operation,
378
379
  renderAllFields: true,
379
380
  schemaPath: collectionSlug ? collectionSlug : globalSlug,
@@ -387,7 +388,7 @@ export const Form = props => {
387
388
  type: 'REPLACE_STATE',
388
389
  state: newState
389
390
  });
390
- }, [collectionSlug, dispatchFields, globalSlug, id, operation, getFormState, docPermissions, getDocPreferences]);
391
+ }, [collectionSlug, dispatchFields, globalSlug, id, operation, getFormState, docPermissions, getDocPreferences, locale]);
391
392
  const replaceState = useCallback(state => {
392
393
  contextRef.current = {
393
394
  ...initContextState
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useIgnoredEffectDebounced","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useServerFunctions","useTranslation","abortAndIgnore","requests","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","handleResponse","initialState","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","getFormState","config","setDisabled","isMounted","setIsMounted","modified","setModified","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","resetFormStateAbortControllerRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","AbortController","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","delay","_jsx","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useIgnoredEffectDebounced } from '../../hooks/useIgnoredEffect.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const resetFormStateAbortControllerRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n data,\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(([, field]) => field.valid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n const data = reduceFieldsToValues(serializableFields, true)\n\n if (overrides) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides)\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState(\n contextRef.current.fields || {},\n newFormState,\n )\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n abortAndIgnore(resetFormStateAbortControllerRef.current)\n\n const controller = new AbortController()\n resetFormStateAbortControllerRef.current = controller\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(resetFormStateAbortControllerRef.current)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ type: 'REPLACE_STATE', optimize: false, state: initialState })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useIgnoredEffectDebounced(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n revalidatedFormState,\n )\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) {\n void executeOnChange()\n }\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [contextRef.current.fields, modified],\n [dispatchFields, onChange],\n {\n delay: 250,\n },\n )\n\n return (\n <form\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useIgnoredEffectDebounced","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useServerFunctions","useTranslation","abortAndIgnore","requests","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","handleResponse","initialState","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","getFormState","config","setDisabled","isMounted","setIsMounted","modified","setModified","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","resetFormStateAbortControllerRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds","reset","controller","AbortController","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","delay","_jsx","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useIgnoredEffectDebounced } from '../../hooks/useIgnoredEffect.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const resetFormStateAbortControllerRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n data,\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(([, field]) => field.valid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n const data = reduceFieldsToValues(serializableFields, true)\n\n if (overrides) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides)\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState(\n contextRef.current.fields || {},\n newFormState,\n )\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n abortAndIgnore(resetFormStateAbortControllerRef.current)\n\n const controller = new AbortController()\n resetFormStateAbortControllerRef.current = controller\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(resetFormStateAbortControllerRef.current)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ type: 'REPLACE_STATE', optimize: false, state: initialState })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useIgnoredEffectDebounced(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n revalidatedFormState,\n )\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) {\n void executeOnChange()\n }\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [contextRef.current.fields, modified],\n [dispatchFields, onChange],\n {\n delay: 250,\n },\n )\n\n return (\n <form\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import { getFieldPaths } from 'payload/shared';
5
+ import { fieldIsHiddenOrDisabled, getFieldPaths } from 'payload/shared';
6
6
  import React from 'react';
7
7
  import { RenderIfInViewport } from '../../elements/RenderIfInViewport/index.js';
8
8
  import { useOperation } from '../../providers/Operation/index.js';
@@ -42,7 +42,7 @@ export const RenderFields = props => {
42
42
  let t5;
43
43
  if ($[14] !== forceRender || $[15] !== operation || $[16] !== parentIndexPath || $[17] !== parentPath || $[18] !== parentSchemaPath || $[19] !== permissions || $[20] !== readOnlyFromParent) {
44
44
  t5 = (field, i) => {
45
- if (!field || field?.admin?.disabled) {
45
+ if (!field || fieldIsHiddenOrDisabled(field)) {
46
46
  return null;
47
47
  }
48
48
  const parentName = parentPath?.includes(".") ? parentPath.split(".")[parentPath.split(".").length - 1] : parentPath;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getFieldPaths","React","RenderIfInViewport","useOperation","RenderField","baseClass","RenderFields","props","$","className","fields","forceRender","margins","parentIndexPath","parentPath","parentSchemaPath","permissions","readOnly","readOnlyFromParent","operation","length","t0","t1","t2","filter","Boolean","t3","join","t4","t5","field","i","admin","disabled","parentName","includes","split","hasReadPermission","name","read","isReadOnly","hasOperationPermission","indexPath","path","schemaPath","index","_jsx","clientFieldConfig","undefined","children","map"],"sources":["../../../src/forms/RenderFields/index.tsx"],"sourcesContent":["'use client'\n\nimport { getFieldPaths } from 'payload/shared'\nimport React from 'react'\n\nimport type { RenderFieldsProps } from './types.js'\n\nimport { RenderIfInViewport } from '../../elements/RenderIfInViewport/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport './index.scss'\nimport { RenderField } from './RenderField.js'\n\nconst baseClass = 'render-fields'\n\nexport { RenderFieldsProps as Props }\n\nexport const RenderFields: React.FC<RenderFieldsProps> = (props) => {\n const {\n className,\n fields,\n forceRender,\n margins,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n permissions,\n readOnly: readOnlyFromParent,\n } = props\n\n const operation = useOperation()\n\n if (fields && fields.length > 0) {\n return (\n <RenderIfInViewport\n className={[\n baseClass,\n className,\n margins && `${baseClass}--margins-${margins}`,\n margins === false && `${baseClass}--margins-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n forceRender={forceRender}\n >\n {fields.map((field, i) => {\n // For sidebar fields in the main fields array, `field` will be `null`, and visa versa\n // This is to keep the order of the fields consistent and maintain the correct index paths for the main fields (i)\n if (!field || field?.admin?.disabled) {\n return null\n }\n\n const parentName = parentPath?.includes('.')\n ? parentPath.split('.')[parentPath.split('.').length - 1]\n : parentPath\n\n // If the user cannot read the field, then filter it out\n // This is different from `admin.readOnly` which is executed based on `operation`\n const hasReadPermission =\n permissions === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n ('read' in permissions[field.name] && permissions[field.name].read)))\n\n if ('name' in field && !hasReadPermission) {\n return null\n }\n\n // `admin.readOnly` displays the value but prevents the field from being edited\n let isReadOnly = readOnlyFromParent || field?.admin?.readOnly\n\n // If parent field is `readOnly: true`, but this field is `readOnly: false`, the field should still be editable\n if (isReadOnly && field.admin?.readOnly === false) {\n isReadOnly = false\n }\n\n // If the user does not have access control to begin with, force it to be read-only\n const hasOperationPermission =\n permissions === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n (operation in permissions[field.name] && permissions[field.name][operation])))\n\n if ('name' in field && !hasOperationPermission) {\n isReadOnly = true\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: i,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n return (\n <RenderField\n clientFieldConfig={field}\n forceRender={forceRender}\n indexPath={indexPath}\n key={`${path}-${i}`}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n path={path}\n permissions={\n permissions === undefined || permissions === null || permissions === true\n ? true\n : 'name' in field\n ? permissions?.[field.name]\n : permissions\n }\n readOnly={isReadOnly}\n schemaPath={schemaPath}\n />\n )\n })}\n </RenderIfInViewport>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","fieldIsHiddenOrDisabled","getFieldPaths","React","RenderIfInViewport","useOperation","RenderField","baseClass","RenderFields","props","$","className","fields","forceRender","margins","parentIndexPath","parentPath","parentSchemaPath","permissions","readOnly","readOnlyFromParent","operation","length","t0","t1","t2","filter","Boolean","t3","join","t4","t5","field","i","parentName","includes","split","hasReadPermission","name","read","isReadOnly","admin","hasOperationPermission","indexPath","path","schemaPath","index","_jsx","clientFieldConfig","undefined","children","map"],"sources":["../../../src/forms/RenderFields/index.tsx"],"sourcesContent":["'use client'\n\nimport { fieldIsHiddenOrDisabled, getFieldPaths } from 'payload/shared'\nimport React from 'react'\n\nimport type { RenderFieldsProps } from './types.js'\n\nimport { RenderIfInViewport } from '../../elements/RenderIfInViewport/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport './index.scss'\nimport { RenderField } from './RenderField.js'\n\nconst baseClass = 'render-fields'\n\nexport { RenderFieldsProps as Props }\n\nexport const RenderFields: React.FC<RenderFieldsProps> = (props) => {\n const {\n className,\n fields,\n forceRender,\n margins,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n permissions,\n readOnly: readOnlyFromParent,\n } = props\n\n const operation = useOperation()\n\n if (fields && fields.length > 0) {\n return (\n <RenderIfInViewport\n className={[\n baseClass,\n className,\n margins && `${baseClass}--margins-${margins}`,\n margins === false && `${baseClass}--margins-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n forceRender={forceRender}\n >\n {fields.map((field, i) => {\n // For sidebar fields in the main fields array, `field` will be `null`, and visa versa\n // This is to keep the order of the fields consistent and maintain the correct index paths for the main fields (i)\n if (!field || fieldIsHiddenOrDisabled(field)) {\n return null\n }\n\n const parentName = parentPath?.includes('.')\n ? parentPath.split('.')[parentPath.split('.').length - 1]\n : parentPath\n\n // If the user cannot read the field, then filter it out\n // This is different from `admin.readOnly` which is executed based on `operation`\n const hasReadPermission =\n permissions === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n ('read' in permissions[field.name] && permissions[field.name].read)))\n\n if ('name' in field && !hasReadPermission) {\n return null\n }\n\n // `admin.readOnly` displays the value but prevents the field from being edited\n let isReadOnly = readOnlyFromParent || field?.admin?.readOnly\n\n // If parent field is `readOnly: true`, but this field is `readOnly: false`, the field should still be editable\n if (isReadOnly && field.admin?.readOnly === false) {\n isReadOnly = false\n }\n\n // If the user does not have access control to begin with, force it to be read-only\n const hasOperationPermission =\n permissions === true ||\n permissions?.[parentName] === true ||\n ('name' in field &&\n typeof permissions === 'object' &&\n permissions?.[field.name] &&\n (permissions[field.name] === true ||\n (operation in permissions[field.name] && permissions[field.name][operation])))\n\n if ('name' in field && !hasOperationPermission) {\n isReadOnly = true\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: i,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n return (\n <RenderField\n clientFieldConfig={field}\n forceRender={forceRender}\n indexPath={indexPath}\n key={`${path}-${i}`}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n path={path}\n permissions={\n permissions === undefined || permissions === null || permissions === true\n ? true\n : 'name' in field\n ? permissions?.[field.name]\n : permissions\n }\n readOnly={isReadOnly}\n schemaPath={schemaPath}\n />\n )\n })}\n </RenderIfInViewport>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAC3B,MAAM,SAAS,CAAA;AAYhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAqqBvF,CAAA"}
1
+ {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAC3B,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CA+pBvF,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import ObjectIdImport from 'bson-objectid';
2
- import { deepCopyObjectSimple, fieldAffectsData, fieldHasSubFields, fieldIsSidebar, getFieldPaths, tabHasName } from 'payload/shared';
2
+ import { deepCopyObjectSimple, fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled, fieldIsID, fieldIsSidebar, getFieldPaths, tabHasName } from 'payload/shared';
3
3
  import { getFilterOptionsQuery } from './getFilterOptionsQuery.js';
4
4
  import { iterateFields } from './iterateFields.js';
5
5
  const ObjectId = ObjectIdImport.default || ObjectIdImport;
@@ -53,10 +53,8 @@ export const addFieldStatePromise = async args => {
53
53
  parentSchemaPath
54
54
  });
55
55
  const requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender;
56
- const isHiddenField = 'hidden' in field && field?.hidden;
57
- const disabledFromAdmin = field?.admin && 'disabled' in field.admin && field.admin.disabled;
58
56
  let fieldPermissions = true;
59
- if (fieldAffectsData(field) && !(isHiddenField || disabledFromAdmin)) {
57
+ if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {
60
58
  fieldPermissions = parentPermissions === true ? parentPermissions : deepCopyObjectSimple(parentPermissions?.[field.name]);
61
59
  let hasPermission = fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read);
62
60
  if (typeof field?.access?.read === 'function') {
@@ -131,7 +129,7 @@ export const addFieldStatePromise = async args => {
131
129
  row.id = row?.id || new ObjectId().toHexString();
132
130
  if (!omitParents && (!filter || filter(args))) {
133
131
  state[parentPath + '.id'] = {
134
- fieldSchema: includeSchema ? field.fields.find(field => 'name' in field && field.name === 'id') : undefined,
132
+ fieldSchema: includeSchema ? field.fields.find(field => fieldIsID(field)) : undefined,
135
133
  initialValue: row.id,
136
134
  valid: true,
137
135
  value: row.id
@@ -216,7 +214,7 @@ export const addFieldStatePromise = async args => {
216
214
  row.id = row?.id || new ObjectId().toHexString();
217
215
  if (!omitParents && (!filter || filter(args))) {
218
216
  state[parentPath + '.id'] = {
219
- fieldSchema: includeSchema ? block.fields.find(blockField => 'name' in blockField && blockField.name === 'id') : undefined,
217
+ fieldSchema: includeSchema ? block.fields.find(blockField => fieldIsID(blockField)) : undefined,
220
218
  initialValue: row.id,
221
219
  valid: true,
222
220
  value: row.id
@@ -526,8 +524,7 @@ export const addFieldStatePromise = async args => {
526
524
  };
527
525
  }
528
526
  }
529
- const isDisabled = field?.admin && 'disabled' in field.admin && field.admin.disabled;
530
- if (requiresRender && !isDisabled && renderFieldFn) {
527
+ if (requiresRender && renderFieldFn && !fieldIsHiddenOrDisabled(field)) {
531
528
  const fieldState = state[path];
532
529
  const fieldConfig = fieldSchemaMap.get(schemaPath);
533
530
  if (!fieldConfig) {
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsSidebar","getFieldPaths","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","clientFieldSchemaMap","collectionSlug","data","field","fieldIndex","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","omitParents","operation","parentIndexPath","parentPath","parentPermissions","parentSchemaPath","passesCondition","preferences","previousFormState","renderAllFields","renderFieldFn","req","skipConditionChecks","skipValidation","state","console","warn","indexPath","path","schemaPath","index","requiresRender","isHiddenField","hidden","disabledFromAdmin","admin","disabled","fieldPermissions","name","hasPermission","read","access","doc","siblingData","validate","fieldState","errorPaths","fieldSchema","undefined","initialValue","isSidebar","valid","value","validationResult","jsonError","type","JSON","parse","e","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rows","reduce","acc","row","i","toHexString","fields","find","localized","parentPassesCondition","permissions","collapsedRowIDs","collapsed","initCollapsed","Promise","all","length","disableFormData","blocksValue","rowMetadata","block","blocks","blockType","slug","Error","rowSchemaPath","blockField","blockName","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabPath","tabSchemaPath","childPermissions","tabPermissions","isDisabled","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FormFieldWithoutComponents,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsSidebar,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n preferences: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldIndex,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n parentIndexPath,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender\n\n const isHiddenField = 'hidden' in field && field?.hidden\n const disabledFromAdmin = field?.admin && 'disabled' in field.admin && field.admin.disabled\n\n let fieldPermissions: SanitizedFieldPermissions = true\n if (fieldAffectsData(field) && !(isHiddenField || disabledFromAdmin)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({ doc: fullData, req, siblingData: data })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate = field.validate\n\n const fieldState: FormFieldWithoutComponents = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n isSidebar: fieldIsSidebar(field),\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(\n data?.[field.name] as never,\n {\n ...field,\n id,\n collectionSlug,\n data: fullData,\n jsonError,\n operation,\n preferences,\n req,\n siblingData: data,\n } as any,\n )\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => 'name' in field && field.name === 'id')\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n acc.rows.push({\n id: row.id,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n fieldState.rows = rows\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const parentPath = path + '.' + i\n const rowSchemaPath = schemaPath + '.' + block.slug\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'id',\n )\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[parentPath + '.blockType'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[parentPath + '.blockName'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: rowSchemaPath,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n if (tabHasName(tab)) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n } else {\n childPermissions = parentPermissions\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: tabHasName(tab) ? '' : tabIndexPath,\n parentPassesCondition: passesCondition,\n parentPath: tabHasName(tab) ? tabPath : parentPath,\n parentSchemaPath: tabHasName(tab) ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n isSidebar: fieldIsSidebar(field),\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n }\n\n const isDisabled = field?.admin && 'disabled' in field.admin && field.admin.disabled\n\n if (requiresRender && !isDisabled && renderFieldFn) {\n const fieldState = state[path]\n\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!fieldState) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState,\n formState: state,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsSidebar","getFieldPaths","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","clientFieldSchemaMap","collectionSlug","data","field","fieldIndex","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","omitParents","operation","parentIndexPath","parentPath","parentPermissions","parentSchemaPath","passesCondition","preferences","previousFormState","renderAllFields","renderFieldFn","req","skipConditionChecks","skipValidation","state","console","warn","indexPath","path","schemaPath","index","requiresRender","fieldPermissions","name","hasPermission","read","access","doc","siblingData","validate","fieldState","errorPaths","fieldSchema","undefined","initialValue","isSidebar","valid","value","validationResult","jsonError","type","JSON","parse","e","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rows","reduce","acc","row","i","toHexString","fields","find","localized","parentPassesCondition","permissions","collapsedRowIDs","collapsed","admin","initCollapsed","Promise","all","length","disableFormData","blocksValue","rowMetadata","block","blocks","blockType","slug","Error","rowSchemaPath","blockField","blockName","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabPath","tabSchemaPath","childPermissions","tabPermissions","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FormFieldWithoutComponents,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsSidebar,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n preferences: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldIndex,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n parentIndexPath,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n const requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({ doc: fullData, req, siblingData: data })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate = field.validate\n\n const fieldState: FormFieldWithoutComponents = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n isSidebar: fieldIsSidebar(field),\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(\n data?.[field.name] as never,\n {\n ...field,\n id,\n collectionSlug,\n data: fullData,\n jsonError,\n operation,\n preferences,\n req,\n siblingData: data,\n } as any,\n )\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => fieldIsID(field))\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n acc.rows.push({\n id: row.id,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n fieldState.rows = rows\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const parentPath = path + '.' + i\n const rowSchemaPath = schemaPath + '.' + block.slug\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[parentPath + '.id'] = {\n fieldSchema: includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[parentPath + '.blockType'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[parentPath + '.blockName'] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: rowSchemaPath,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n renderAllFields: requiresRender,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Unset requiresRender\n // so it will be removed from form state\n fieldState.requiresRender = false\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n if (tabHasName(tab)) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n } else {\n childPermissions = parentPermissions\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: tabHasName(tab) ? '' : tabIndexPath,\n parentPassesCondition: passesCondition,\n parentPath: tabHasName(tab) ? tabPath : parentPath,\n parentSchemaPath: tabHasName(tab) ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n isSidebar: fieldIsSidebar(field),\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n }\n\n if (requiresRender && renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldState = state[path]\n\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!fieldState) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState,\n formState: state,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD,eAAO,MAAM,WAAW,EAAE,iBAgOzB,CAAA"}
1
+ {"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAcnD,eAAO,MAAM,WAAW,EAAE,iBAoOzB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
3
  import { createClientField, MissingEditorProp } from 'payload';
4
+ import { fieldIsHiddenOrDisabled } from 'payload/shared';
4
5
  import { RenderServerComponent } from '../../elements/RenderServerComponent/index.js';
5
6
  // eslint-disable-next-line payload/no-imports-from-exports-dir -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir
6
7
  import { FieldDescription } from '../../exports/client/index.js';
@@ -31,6 +32,9 @@ export const renderField = ({
31
32
  i18n: req.i18n,
32
33
  importMap: req.payload.importMap
33
34
  });
35
+ if (fieldIsHiddenOrDisabled(clientField)) {
36
+ return;
37
+ }
34
38
  const clientProps = {
35
39
  customComponents: fieldState?.customComponents || {},
36
40
  field: clientField,