@payloadcms/ui 3.29.0-canary.2 → 3.29.0-canary.3

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 (46) hide show
  1. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  2. package/dist/elements/Table/DefaultCell/index.js +32 -25
  3. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  4. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  5. package/dist/elements/TableColumns/buildColumnState.js +8 -1
  6. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  7. package/dist/exports/client/index.js +11 -11
  8. package/dist/exports/client/index.js.map +4 -4
  9. package/dist/forms/Form/index.d.ts.map +1 -1
  10. package/dist/forms/Form/index.js.map +1 -1
  11. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +3 -1
  12. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  13. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +28 -0
  14. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  15. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +4 -2
  16. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  17. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +4 -0
  18. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  19. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +4 -2
  20. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  21. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +4 -0
  22. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  23. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +4 -2
  24. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  25. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +41 -2
  26. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  27. package/dist/forms/fieldSchemasToFormState/index.d.ts +4 -2
  28. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  29. package/dist/forms/fieldSchemasToFormState/index.js +6 -0
  30. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  31. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +4 -2
  32. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  33. package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
  34. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  35. package/dist/utilities/buildFormState.d.ts.map +1 -1
  36. package/dist/utilities/buildFormState.js +5 -1
  37. package/dist/utilities/buildFormState.js.map +1 -1
  38. package/dist/utilities/getDisplayedFieldValue.d.ts +13 -0
  39. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -0
  40. package/dist/utilities/getDisplayedFieldValue.js +28 -0
  41. package/dist/utilities/getDisplayedFieldValue.js.map +1 -0
  42. package/dist/utilities/hasOptionLabelJSXElement.d.ts +3 -0
  43. package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +1 -0
  44. package/dist/utilities/hasOptionLabelJSXElement.js +15 -0
  45. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -0
  46. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAG5F,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAqCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA0vBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAqCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA0vBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1 +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","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueues","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","fields","dispatchFields","current","prevFields","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","aborted","changed","DocumentFormContextComponent","Fragment","documentFormContextProps","El","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, useMemo, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\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 el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\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 documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { queueTask } = useQueues()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\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\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const prevFields = useRef(fields)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\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 // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\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 setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\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\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(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\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 setIsValid(isValid)\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 let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\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\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\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 = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\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 acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: 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 startRouteTransition(() => 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 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 setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={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 startRouteTransition,\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 const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\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 [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\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 skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\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 const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\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.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\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 contextRef.current.isValid = isValid\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({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\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 const executeOnChange = useEffectEvent(async (submitted: boolean, signal: AbortSignal) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n if (signal.aborted) {\n return\n }\n\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 submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed && !signal.aborted) {\n prevFields.current = newState\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(fields, prevFields.current)) && modified) {\n queueTask(async (signal) => executeOnChange(submitted, signal))\n }\n\n prevFields.current = fields\n isFirstRenderRef.current = false\n },\n [modified, submitted, fields, queueTask],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\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 <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\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","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueues","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","fields","dispatchFields","current","prevFields","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","aborted","changed","DocumentFormContextComponent","Fragment","documentFormContextProps","El","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 CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\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 el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\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 documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { queueTask } = useQueues()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\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\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const prevFields = useRef(fields)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\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 // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\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 setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\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\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(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\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 setIsValid(isValid)\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 let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\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\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\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 = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\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 acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: 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 startRouteTransition(() => 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 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 setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(<FieldErrorsToast errorMessage={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 startRouteTransition,\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 const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\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 [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\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 skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\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 const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\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.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\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 contextRef.current.isValid = isValid\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({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\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 const executeOnChange = useEffectEvent(async (submitted: boolean, signal: AbortSignal) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n if (signal.aborted) {\n return\n }\n\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 submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed && !signal.aborted) {\n prevFields.current = newState\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(fields, prevFields.current)) && modified) {\n queueTask(async (signal) => executeOnChange(submitted, signal))\n }\n\n prevFields.current = fields\n isFirstRenderRef.current = false\n },\n [modified, submitted, fields, queueTask],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\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 <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\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,4 +1,4 @@
1
- import type { ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FormState, FormStateWithoutComponents, PayloadRequest, SanitizedFieldsPermissions } from 'payload';
1
+ import type { ClientFieldSchemaMap, Data, DocumentPreferences, Field, FieldSchemaMap, FormState, FormStateWithoutComponents, PayloadRequest, SanitizedFieldsPermissions, SelectMode, SelectType } from 'payload';
2
2
  import type { RenderFieldMethod } from './types.js';
3
3
  export type AddFieldStatePromiseArgs = {
4
4
  addErrorPathToParent: (fieldPath: string) => void;
@@ -52,6 +52,8 @@ export type AddFieldStatePromiseArgs = {
52
52
  */
53
53
  req: PayloadRequest;
54
54
  schemaPath: string;
55
+ select?: SelectType;
56
+ selectMode?: SelectMode;
55
57
  /**
56
58
  * Whether to skip checking the field's condition. @default false
57
59
  */
@@ -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,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAE3B,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;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,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,SAAS,EAAE,MAAM,CAAA;IACjB;;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,IAAI,EAAE,MAAM,CAAA;IACZ,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,UAAU,EAAE,MAAM,CAAA;IAClB;;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,CA8uBvF,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,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAEd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAA;AAehB,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;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,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,SAAS,EAAE,MAAM,CAAA;IACjB;;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,IAAI,EAAE,MAAM,CAAA;IACZ,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,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;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,CA2wBvF,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import ObjectIdImport from 'bson-objectid';
2
+ import { getBlockSelect } from 'payload';
2
3
  import { deepCopyObjectSimple, fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled, fieldIsID, fieldIsLocalized, getFieldPaths, tabHasName } from 'payload/shared';
3
4
  import { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js';
4
5
  import { iterateFields } from './iterateFields.js';
@@ -36,6 +37,8 @@ export const addFieldStatePromise = async args => {
36
37
  renderFieldFn,
37
38
  req,
38
39
  schemaPath,
40
+ select,
41
+ selectMode,
39
42
  skipConditionChecks = false,
40
43
  skipValidation = false,
41
44
  state
@@ -126,6 +129,7 @@ export const addFieldStatePromise = async args => {
126
129
  case 'array':
127
130
  {
128
131
  const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : [];
132
+ const arraySelect = select?.[field.name];
129
133
  const {
130
134
  promises,
131
135
  rows
@@ -168,6 +172,8 @@ export const addFieldStatePromise = async args => {
168
172
  renderAllFields: requiresRender,
169
173
  renderFieldFn,
170
174
  req,
175
+ select: typeof arraySelect === 'object' ? arraySelect : undefined,
176
+ selectMode,
171
177
  skipConditionChecks,
172
178
  skipValidation,
173
179
  state
@@ -236,6 +242,14 @@ export const addFieldStatePromise = async args => {
236
242
  if (!block) {
237
243
  throw new Error(`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}.`);
238
244
  }
245
+ const {
246
+ blockSelect,
247
+ blockSelectMode
248
+ } = getBlockSelect({
249
+ block,
250
+ select: select?.[field.name],
251
+ selectMode
252
+ });
239
253
  const parentPath = path + '.' + i;
240
254
  if (block) {
241
255
  row.id = row?.id || new ObjectId().toHexString();
@@ -295,6 +309,8 @@ export const addFieldStatePromise = async args => {
295
309
  renderAllFields: requiresRender,
296
310
  renderFieldFn,
297
311
  req,
312
+ select: typeof blockSelect === 'object' ? blockSelect : undefined,
313
+ selectMode: blockSelectMode,
298
314
  skipConditionChecks,
299
315
  skipValidation,
300
316
  state
@@ -342,6 +358,7 @@ export const addFieldStatePromise = async args => {
342
358
  fieldState.disableFormData = true;
343
359
  state[path] = fieldState;
344
360
  }
361
+ const groupSelect = select?.[field.name];
345
362
  await iterateFields({
346
363
  id,
347
364
  addErrorPathToParent,
@@ -368,6 +385,8 @@ export const addFieldStatePromise = async args => {
368
385
  renderAllFields,
369
386
  renderFieldFn,
370
387
  req,
388
+ select: typeof groupSelect === 'object' ? groupSelect : undefined,
389
+ selectMode,
371
390
  skipConditionChecks,
372
391
  skipValidation,
373
392
  state
@@ -463,6 +482,8 @@ export const addFieldStatePromise = async args => {
463
482
  }
464
483
  await iterateFields({
465
484
  id,
485
+ select,
486
+ selectMode,
466
487
  // passthrough parent functionality
467
488
  addErrorPathToParent: addErrorPathToParentArg,
468
489
  anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,
@@ -495,6 +516,7 @@ export const addFieldStatePromise = async args => {
495
516
  } else if (field.type === 'tabs') {
496
517
  const promises = field.tabs.map((tab, tabIndex) => {
497
518
  const isNamedTab = tabHasName(tab);
519
+ let tabSelect;
498
520
  const {
499
521
  indexPath: tabIndexPath,
500
522
  path: tabPath,
@@ -521,8 +543,12 @@ export const addFieldStatePromise = async args => {
521
543
  childPermissions = tabPermissions?.fields;
522
544
  }
523
545
  }
546
+ if (typeof select?.[tab.name] === 'object') {
547
+ tabSelect = select?.[tab.name];
548
+ }
524
549
  } else {
525
550
  childPermissions = parentPermissions;
551
+ tabSelect = select;
526
552
  }
527
553
  const pathSegments = path ? path.split('.') : [];
528
554
  // If passesCondition is false then this should always result to false
@@ -566,6 +592,8 @@ export const addFieldStatePromise = async args => {
566
592
  renderAllFields,
567
593
  renderFieldFn,
568
594
  req,
595
+ select: tabSelect,
596
+ selectMode,
569
597
  skipConditionChecks,
570
598
  skipValidation,
571
599
  state
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","skipConditionChecks","skipValidation","state","console","warn","requiresRender","fieldPermissions","fieldState","fieldSchema","name","hasPermission","read","access","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","event","previousValue","initialValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","promises","rows","reduce","acc","row","i","toHexString","idKey","value","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","previousRows","collapsedRowIDsFromPrefs","collapsed","previousRow","prevRow","undefined","admin","initCollapsed","length","Promise","all","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockField","fieldKey","blockNameKey","blockName","collapsedRowIDs","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","tabPermissions","pathSegments","split","tabPassesCondition","condition","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 FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.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 /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\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 indexPath: string\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 path: string\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 schemaPath: string\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 blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\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 requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\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({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = field.validate\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 try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\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 }\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 const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\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 if (!acc.rows) {\n acc.rows = []\n }\n\n acc.rows.push({\n id: row.id,\n })\n\n const previousRows = previousFormState?.[path]?.rows || []\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n const collapsed = (() => {\n // First, check if `previousFormState` has a matching row\n const previousRow = previousRows.find((prevRow) => prevRow.id === row.id)\n if (previousRow) {\n return previousRow.collapsed ?? false\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })()\n\n if (collapsed) {\n acc.rows[acc.rows.length - 1].collapsed = collapsed\n }\n\n return acc\n },\n {\n promises: [],\n rows: undefined,\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\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 = 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 blockTypeToMatch: string = row.blockType\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\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\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = parentPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\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: schemaPath + '.' + block.slug,\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 acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n })\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n const collapsed =\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id)\n\n if (collapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = collapsed\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 blockData,\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 resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\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 if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\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 }\n\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\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\n if (isNamedTab) {\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 const pathSegments = path ? path.split('.') : []\n\n // If passesCondition is false then this should always result to false\n // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result\n let tabPassesCondition = passesCondition\n\n if (passesCondition && typeof tab.admin?.condition === 'function') {\n tabPassesCondition = tab.admin.condition(fullData, data, {\n blockData,\n path: pathSegments,\n user: req.user,\n })\n }\n\n if (tab?.id) {\n state[tab.id] = {\n passesCondition: tabPassesCondition,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n blockData,\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: isNamedTab ? '' : tabIndexPath,\n parentPassesCondition: tabPassesCondition,\n parentPath: isNamedTab ? tabPath : parentPath,\n parentSchemaPath: isNamedTab ? 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] = fieldState\n state[path].disableFormData = true\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
+ {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","requiresRender","fieldPermissions","fieldState","fieldSchema","name","hasPermission","read","access","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","event","previousValue","initialValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","i","toHexString","idKey","value","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","undefined","previousRows","collapsedRowIDsFromPrefs","collapsed","previousRow","prevRow","admin","initCollapsed","length","Promise","all","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","blockField","fieldKey","blockNameKey","blockName","collapsedRowIDs","groupSelect","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabSelect","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","tabPermissions","pathSegments","split","tabPassesCondition","condition","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 FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.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 /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\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 indexPath: string\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 path: string\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 schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\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 blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\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 requiresRender = renderAllFields || previousFormState?.[path]?.requiresRender\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\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({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = field.validate\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 try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\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 }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[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 const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\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 select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n acc.rows.push({\n id: row.id,\n })\n\n const previousRows = previousFormState?.[path]?.rows || []\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n const collapsed = (() => {\n // First, check if `previousFormState` has a matching row\n const previousRow = previousRows.find((prevRow) => prevRow.id === row.id)\n if (previousRow) {\n return previousRow.collapsed ?? false\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })()\n\n if (collapsed) {\n acc.rows[acc.rows.length - 1].collapsed = collapsed\n }\n\n return acc\n },\n {\n promises: [],\n rows: undefined,\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\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 = 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 blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\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 { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const parentPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = parentPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\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: schemaPath + '.' + block.slug,\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 select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n })\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n const collapsed =\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id)\n\n if (collapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = collapsed\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 const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\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 select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\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 resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\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 if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\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 }\n\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\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 let tabSelect: SelectType | undefined\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\n if (isNamedTab) {\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\n if (typeof select?.[tab.name] === 'object') {\n tabSelect = select?.[tab.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n const pathSegments = path ? path.split('.') : []\n\n // If passesCondition is false then this should always result to false\n // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result\n let tabPassesCondition = passesCondition\n\n if (passesCondition && typeof tab.admin?.condition === 'function') {\n tabPassesCondition = tab.admin.condition(fullData, data, {\n blockData,\n path: pathSegments,\n user: req.user,\n })\n }\n\n if (tab?.id) {\n state[tab.id] = {\n passesCondition: tabPassesCondition,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n blockData,\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: isNamedTab ? '' : tabIndexPath,\n parentPassesCondition: tabPassesCondition,\n parentPath: isNamedTab ? tabPath : parentPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\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] = fieldState\n state[path].disableFormData = true\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":[]}