@payloadcms/ui 3.0.0-beta.44 → 3.0.0-beta.46
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.
- package/dist/elements/Autosave/index.js +1 -1
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +1 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +2 -4
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +3 -7
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +2 -4
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
- package/dist/elements/PublishMany/index.js +1 -1
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +7 -11
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Status/index.js +1 -1
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +1 -1
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/exports/elements.d.ts +2 -5
- package/dist/exports/elements.d.ts.map +1 -1
- package/dist/exports/elements.js +2 -7
- package/dist/exports/elements.js.map +1 -1
- package/dist/forms/Form/fieldReducer.js +5 -3
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +39 -9
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/providers/Auth/index.js +1 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js +11 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts +8 -0
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +2 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +2 -6
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Error.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Error.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Error.js +25 -0
- package/dist/providers/ToastContainer/icons/Error.js.map +1 -0
- package/dist/providers/ToastContainer/icons/Info.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Info.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Info.js +25 -0
- package/dist/providers/ToastContainer/icons/Info.js.map +1 -0
- package/dist/providers/ToastContainer/icons/Success.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Success.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Success.js +25 -0
- package/dist/providers/ToastContainer/icons/Success.js.map +1 -0
- package/dist/providers/ToastContainer/icons/Warning.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Warning.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Warning.js +25 -0
- package/dist/providers/ToastContainer/icons/Warning.js.map +1 -0
- package/dist/providers/ToastContainer/index.d.ts +3 -0
- package/dist/providers/ToastContainer/index.d.ts.map +1 -0
- package/dist/providers/ToastContainer/index.js +39 -0
- package/dist/providers/ToastContainer/index.js.map +1 -0
- package/dist/scss/app.scss +1 -1
- package/dist/scss/toasts.scss +111 -0
- package/package.json +5 -5
- package/dist/scss/toastify.scss +0 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport isDeepEqual from 'deep-equal'\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { wait } from 'payload/utilities'\nimport QueryString from 'qs'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type {\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.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 { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { getDataByPath as getDataByPathFunc } from './getDataByPath.js'\nimport { getSiblingData as getSiblingDataFunc } from './getSiblingData.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, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled: disabledFromProps,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { formQueryParams } = useFormQueryParams()\n\n const config = useConfig()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if (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 id,\n config,\n data,\n operation,\n siblingData: contextRef.current.getSiblingData(path),\n t,\n user,\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 (!isDeepEqual(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [id, user, operation, t, dispatchFields, config])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg,\n method: methodToUse = method,\n overrides = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) await wait(100)\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: fields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(([, field]) => field.valid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n toast.error(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const data = {\n ...reduceFieldsToValues(fields, true),\n ...overrides,\n }\n\n onSubmit(fields, data)\n }\n\n const formData = contextRef.current.createFormData(overrides)\n\n try {\n let res\n const actionEndpoint =\n actionArg ||\n (typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : null)\n\n if (actionEndpoint) {\n res = await requests[methodToUse.toLowerCase()](actionEndpoint, {\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)\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) json = await res.json()\n\n if (res.status < 400) {\n if (typeof onSuccess === 'function') await onSuccess(json)\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n toast.success(json.message || t('general:submissionSuccessful'), { autoClose: 3000 })\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 toast.error(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n toast.error(message)\n }\n } catch (err) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n\n toast.error(err)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n fields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n formQueryParams,\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 const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const newState = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n data,\n globalSlug,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [apiRoute, collectionSlug, dispatchFields, globalSlug, id, operation, serverURL],\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 getFieldStateBySchemaPath = useCallback(\n async ({ data, schemaPath }) => {\n const fieldSchema = await getFormState({\n apiRoute,\n body: {\n collectionSlug,\n data,\n globalSlug,\n schemaPath,\n },\n serverURL,\n })\n return fieldSchema\n },\n [apiRoute, collectionSlug, globalSlug, serverURL],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'ADD_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\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 async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\n )\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') setDisabled(disabledFromProps)\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') setSubmitted(submittedFromProps)\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ type: 'REPLACE_STATE', optimize: false, state: initialState })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useDebouncedEffect(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n revalidatedFormState = await onChangeFn({\n formState: revalidatedFormState,\n })\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n revalidatedFormState,\n )\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) void executeOnChange()\n },\n 150,\n // Make sure we trigger this whenever modified changes (not just when `fields` changes), otherwise we will miss merging server form state for the first form update/onChange. Here's why:\n // `fields` updates before `modified`, because setModified is in a setTimeout. So on the first change, modified is false, so we don't trigger the effect even though we should.\n [contextRef.current.fields, dispatchFields, onChange, modified],\n )\n\n const actionString =\n typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : ''\n\n return (\n <form\n action={method ? actionString : (action as string)}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"names":["isDeepEqual","useRouter","serialize","wait","QueryString","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useFormQueryParams","useLocale","useOperation","useTranslation","requests","getFormState","reduceFieldsToValues","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","globalSlug","action","beforeSubmit","children","className","disableSuccessStatus","disableValidationOnSubmit","disabled","disabledFromProps","handleResponse","initialState","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","formQueryParams","config","routes","api","apiRoute","serverURL","setDisabled","isMounted","setIsMounted","modified","setModified","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","stopPropagation","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","formState","resolve","every","error","formData","createFormData","res","actionEndpoint","stringify","addQueryPrefix","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","push","success","message","autoClose","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","indices","nullsAsUndefineds","reset","newState","schemaPath","replaceState","getFieldStateBySchemaPath","fieldSchema","addFieldRow","rowIndex","subFieldState","blockType","removeFieldRow","replaceFieldRow","optimize","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","actionString","form","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,kEAAkE,GAClE,OAAOA,iBAAiB,aAAY;AACpC,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,SAASC,IAAI,QAAQ,oBAAmB;AACxC,OAAOC,iBAAiB,KAAI;AAC5B,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AACnF,SAASC,KAAK,QAAQ,iBAAgB;AAStC,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,OAAOC,wBAAwB,oCAAmC;AAClE,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,kBAAkB,QAAQ,2CAA0C;AAC7E,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,QAAQ,QAAQ,yBAAwB;AACjD,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,oBAAoB,QAAQ,0CAAyC;AAC9E,SACEC,WAAW,EACXC,iBAAiB,EACjBC,gBAAgB,EAChBC,mBAAmB,EACnBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,QACX,eAAc;AACrB,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,iBAAiBC,iBAAiB,QAAQ,qBAAoB;AACvE,SAASC,kBAAkBC,kBAAkB,QAAQ,sBAAqB;AAC1E,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,oBAAoB,QAAQ,4BAA2B;AAEhE,MAAMC,YAAY;AAElB,OAAO,MAAMC,OAA4B,CAACC;IACxC,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAG5B;IAE3C,MAAM,EACJ6B,MAAM,EACNC,YAAY,EACZC,QAAQ,EACRC,SAAS,EACTC,oBAAoB,EACpBC,yBAAyB,EACzBC,UAAUC,iBAAiB,EAC3B,kEAAkE;IAClEC,cAAc,EACdC,YAAY,EACZC,gBAAgBC,qBAAqB,EACrCC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,WAAWC,kBAAkB,EAC7BC,IAAI,EACJC,mBAAmB,EACpB,GAAGvB;IAEJ,MAAMwB,SAAS,YAAYxB,QAAQA,OAAOwB,SAASC;IAEnD,MAAMC,SAASlE;IAEf,MAAM,EAAEmE,MAAMC,MAAM,EAAE,GAAGnD;IACzB,MAAM,EAAEoD,IAAI,EAAEC,CAAC,EAAE,GAAGnD;IACpB,MAAM,EAAEoD,aAAa,EAAEC,IAAI,EAAE,GAAG3D;IAChC,MAAM4D,YAAYvD;IAClB,MAAM,EAAEwD,eAAe,EAAE,GAAG1D;IAE5B,MAAM2D,SAAS7D;IACf,MAAM,EACJ8D,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAGJ;IAEJ,MAAM,CAACzB,UAAU8B,YAAY,GAAGvE,SAAS0C,qBAAqB;IAC9D,MAAM,CAAC8B,WAAWC,aAAa,GAAGzE,SAAS;IAC3C,MAAM,CAAC0E,UAAUC,YAAY,GAAG3E,SAAS;IACzC,MAAM,CAAC4E,cAAcC,gBAAgB,GAAG7E,SAAS8C;IACjD,MAAM,CAACgC,YAAYC,cAAc,GAAG/E,SAAS;IAC7C,MAAM,CAACmD,WAAW6B,aAAa,GAAGhF,SAAS;IAC3C,MAAMiF,UAAUlF,OAAwB;IACxC,MAAMmF,aAAanF,OAAO,CAAC;IAE3B,MAAMoF,gBAAgBrF,WAAWwB,cAAc,CAAC,GAAG,IAAMsB;IAEzD;;;GAGC,GACD,MAAM,CAACwC,QAAQC,eAAe,GAAGF;IAEjCD,WAAWI,OAAO,CAACF,MAAM,GAAGA;IAE5B,MAAMG,eAAe3F,YAAY;QAC/B,MAAM4F,sBAAsB,CAAC;QAC7B,IAAIC,UAAU;QAEd,MAAMC,kBAAkBR,WAAWI,OAAO,CAACK,OAAO;QAClD,MAAMC,OAAOF;QAEb,MAAMG,qBAAqBC,OAAOC,OAAO,CAACb,WAAWI,OAAO,CAACF,MAAM,EAAEY,GAAG,CACtE,OAAO,CAACC,MAAMC,MAAM;YAClB,MAAMC,iBAAiBD;YAEvB,IAAIA,MAAME,eAAe,KAAK,OAAO;gBACnC,IAAIC,mBAAqCF,eAAeG,KAAK;gBAE7D,IAAI,OAAOJ,MAAMK,QAAQ,KAAK,YAAY;oBACxC,IAAIC,kBAAkBN,MAAMO,KAAK;oBAEjC,IAAIP,OAAOQ,QAAQC,MAAMC,OAAO,CAACV,MAAMQ,IAAI,GAAG;wBAC5CF,kBAAkBtB,WAAWI,OAAO,CAAC/D,aAAa,CAAC0E;oBACrD;oBAEAI,mBAAmB,MAAMH,MAAMK,QAAQ,CAACC,iBAAiB;wBACvDxE;wBACAkC;wBACA0B;wBACA5B;wBACA6C,aAAa3B,WAAWI,OAAO,CAAC7D,cAAc,CAACwE;wBAC/CpC;wBACAE;oBACF;oBAEA,IAAI,OAAOsC,qBAAqB,UAAU;wBACxCF,eAAeW,YAAY,GAAGT;wBAC9BF,eAAeG,KAAK,GAAG;oBACzB,OAAO;wBACLH,eAAeG,KAAK,GAAG;wBACvBH,eAAeW,YAAY,GAAGtD;oBAChC;gBACF;gBAEA,IAAI2C,eAAeG,KAAK,KAAK,OAAO;oBAClCb,UAAU;gBACZ;YACF;YAEAD,mBAAmB,CAACS,KAAK,GAAGE;QAC9B;QAGF,MAAMY,QAAQC,GAAG,CAACnB;QAElB,IAAI,CAACvG,YAAY4F,WAAWI,OAAO,CAACF,MAAM,EAAEI,sBAAsB;YAChEH,eAAe;gBAAE4B,MAAM;gBAAiBC,OAAO1B;YAAoB;QACrE;QAEA,OAAOC;IACT,GAAG;QAACzD;QAAI+B;QAAMC;QAAWH;QAAGwB;QAAgBnB;KAAO;IAEnD,MAAMiD,SAASvH,YACb,OAAOwH,UAAyB,CAAC,CAAC,EAAEC;QAClC,MAAM,EACJlF,QAAQmF,SAAS,EACjB/D,QAAQgE,cAAchE,MAAM,EAC5BiE,YAAY,CAAC,CAAC,EACdC,cAAc,EACf,GAAGL;QAEJ,IAAI3E,UAAU;YACZ,IAAI4E,GAAG;gBACLA,EAAEK,cAAc;YAClB;YACA;QACF;QAEA,IAAIL,GAAG;YACLA,EAAEM,eAAe;YACjBN,EAAEK,cAAc;QAClB;QAEA3C,cAAc;QACdR,YAAY;QAEZ,IAAIjB,qBAAqB,MAAM7D,KAAK;QAEpC,kCAAkC;QAClC,IAAIkH,MAAMC,OAAO,CAACxE,eAAe;YAC/B,IAAIwF;YAEJ,MAAMxF,aAAayF,MAAM,CAAC,OAAOC,eAAeC;gBAC9C,MAAMD;gBAEN,MAAME,SAAS,MAAMD,eAAe;oBAClCE,WAAW7C;gBACb;gBAEAwC,uBAAuBI;YACzB,GAAGjB,QAAQmB,OAAO;YAElB,MAAMzC,UAAUK,OAAOC,OAAO,CAAC6B,sBAAsBO,KAAK,CAAC,CAAC,GAAGjC,MAAM,GAAKA,MAAMI,KAAK;YAErF,IAAI,CAACb,SAAS;gBACZV,cAAc;gBACdC,aAAa;gBACbT,YAAY;gBACZ,OAAOc,eAAe;oBAAE4B,MAAM;oBAAiBC,OAAOU;gBAAqB;YAC7E;QACF;QAEA,MAAMnC,UACJgC,kBAAkBjF,4BAA4B,OAAO,MAAM0C,WAAWI,OAAO,CAACC,YAAY;QAE5F,mCAAmC;QACnC,IAAI,CAACE,SAAS;YACZxF,MAAMmI,KAAK,CAACvE,EAAE;YACdkB,cAAc;YACdC,aAAa;YACbT,YAAY;YACZ;QACF;QAEA,sDAAsD;QACtD,IAAIvB,UAAU;YACZ,MAAM4C,OAAO;gBACX,GAAG/E,qBAAqBuE,QAAQ,KAAK;gBACrC,GAAGoC,SAAS;YACd;YAEAxE,SAASoC,QAAQQ;QACnB;QAEA,MAAMyC,WAAWnD,WAAWI,OAAO,CAACgD,cAAc,CAACd;QAEnD,IAAI;YACF,IAAIe;YACJ,MAAMC,iBACJlB,aACC,CAAA,OAAOnF,WAAW,WACf,CAAC,EAAEA,OAAO,EAAEzC,YAAY+I,SAAS,CAACxE,iBAAiB;gBAAEyE,gBAAgB;YAAK,GAAG,CAAC,GAC9E,IAAG;YAET,IAAIF,gBAAgB;gBAClBD,MAAM,MAAM5H,QAAQ,CAAC4G,YAAYoB,WAAW,GAAG,CAACH,gBAAgB;oBAC9DI,MAAMP;oBACNQ,SAAS;wBACP,mBAAmBjF,KAAKkF,QAAQ;oBAClC;gBACF;YACF,OAAO,IAAI,OAAO3G,WAAW,YAAY;gBACvCoG,MAAM,MAAMpG,OAAOkG;YACrB;YAEA1D,YAAY;YACZJ,YAAY;YAEZ,IAAI,OAAO5B,mBAAmB,YAAY;gBACxCA,eAAe4F;gBACf;YACF;YAEA,MAAMQ,cAAcR,IAAIM,OAAO,CAACG,GAAG,CAAC;YACpC,MAAMC,SAASF,eAAeA,YAAYG,OAAO,CAAC,wBAAwB,CAAC;YAE3E,8DAA8D;YAC9D,IAAIC,OAA4B,CAAC;YAEjC,IAAIF,QAAQE,OAAO,MAAMZ,IAAIY,IAAI;YAEjC,IAAIZ,IAAIa,MAAM,GAAG,KAAK;gBACpB,IAAI,OAAOnG,cAAc,YAAY,MAAMA,UAAUkG;gBACrDnE,aAAa;gBACbD,cAAc;gBAEd,IAAI7B,UAAU;oBACZO,OAAO4F,IAAI,CAACnG;gBACd,OAAO,IAAI,CAACX,sBAAsB;oBAChCtC,MAAMqJ,OAAO,CAACH,KAAKI,OAAO,IAAI1F,EAAE,iCAAiC;wBAAE2F,WAAW;oBAAK;gBACrF;YACF,OAAO;gBACLzE,cAAc;gBACdC,aAAa;gBAEbE,WAAWI,OAAO,GAAG;oBAAE,GAAGJ,WAAWI,OAAO;gBAAC,EAAE,6DAA6D;;gBAC5G,IAAI6D,KAAKI,OAAO,EAAE;oBAChBtJ,MAAMmI,KAAK,CAACe,KAAKI,OAAO;oBAExB;gBACF;gBAEA,IAAI5C,MAAMC,OAAO,CAACuC,KAAKM,MAAM,GAAG;oBAC9B,MAAM,CAACC,aAAaC,eAAe,GAAGR,KAAKM,MAAM,CAAC5B,MAAM,CACtD,CAAC,CAAC+B,WAAWC,aAAa,EAAEC;wBAC1B,MAAMC,eAAe,EAAE;wBACvB,MAAMC,kBAAkB,EAAE;wBAE1B,IAAIF,KAAKP,SAAS;4BAChBS,gBAAgBX,IAAI,CAACS;wBACvB;wBAEA,IAAInD,MAAMC,OAAO,CAACkD,KAAKlE,OAAO;4BAC5BkE,IAAIlE,IAAI,CAACqE,OAAO,CAAC,CAACC;gCAChB,IAAIA,WAAWhE,OAAO;oCACpB6D,aAAaV,IAAI,CAACa;gCACpB,OAAO;oCACLF,gBAAgBX,IAAI,CAACa;gCACvB;4BACF;wBACF;wBAEA,OAAO;4BACL;mCAAIN;mCAAcG;6BAAa;4BAC/B;mCAAIF;mCAAiBG;6BAAgB;yBACtC;oBACH,GACA;wBAAC,EAAE;wBAAE,EAAE;qBAAC;oBAGV3E,eAAe;wBACb4B,MAAM;wBACNwC,QAAQC;oBACV;oBAEAC,eAAeM,OAAO,CAAC,CAACH;wBACtB7J,MAAMmI,KAAK,CAAC0B,IAAIP,OAAO,IAAI1F,EAAE;oBAC/B;oBAEA;gBACF;gBAEA,MAAM0F,UAAUlI,eAAe,CAACkH,IAAIa,MAAM,CAAC,IAAIb,KAAK4B,cAActG,EAAE;gBAEpE5D,MAAMmI,KAAK,CAACmB;YACd;QACF,EAAE,OAAOO,KAAK;YACZ/E,cAAc;YACdC,aAAa;YACbT,YAAY;YAEZtE,MAAMmI,KAAK,CAAC0B;QACd;IACF,GACA;QACE1H;QACAD;QACAI;QACAC;QACAC;QACA4C;QACAD;QACAzC;QACAY;QACAP;QACAC;QACAC;QACAO;QACAI;QACAD;QACAN;QACAW;KACD;IAGH,MAAMmG,YAAYxK,YAAY,IAAMsF,WAAWI,OAAO,CAACF,MAAM,EAAE,EAAE;IAEjE,MAAMiF,WAAWzK,YAAY,CAACqG,OAAiBf,WAAWI,OAAO,CAACF,MAAM,CAACa,KAAK,EAAE,EAAE;IAElF,MAAMN,UAAU/F,YAAY,IAAMiB,qBAAqBqE,WAAWI,OAAO,CAACF,MAAM,EAAE,OAAO,EAAE;IAE3F,MAAM3D,iBAAiB7B,YACrB,CAACqG,OAAiBvE,mBAAmBwD,WAAWI,OAAO,CAACF,MAAM,EAAEa,OAChE,EAAE;IAEJ,MAAM1E,gBAAgB3B,YACpB,CAACqG,OAAiBzE,kBAAkB0D,WAAWI,OAAO,CAACF,MAAM,EAAEa,OAC/D,EAAE;IAGJ,8DAA8D;IAC9D,MAAMqC,iBAAiB1I,YAAY,CAAC4H,YAAiB,CAAC,CAAC;QACrD,MAAM5B,OAAO/E,qBAAqBqE,WAAWI,OAAO,CAACF,MAAM,EAAE;QAE7D,MAAMkF,OAAO1E,MAAM0E;QAEnB,IAAIA,MAAM;YACR,OAAO1E,KAAK0E,IAAI;QAClB;QAEA,MAAMC,oBAAoB;YACxB,GAAG3E,IAAI;YACP,GAAG4B,SAAS;QACd;QAEA,MAAMgD,kBAAkB;YACtBC,UAAUC,KAAKjC,SAAS,CAAC8B;YACzBD;QACF;QAEA,6FAA6F;QAC7F,MAAMjC,WAAW7I,UAAUgL,iBAAiB;YAAEG,SAAS;YAAMC,mBAAmB;QAAM;QAEtF,OAAOvC;IACT,GAAG,EAAE;IAEL,MAAMwC,QAAQjL,YACZ,OAAOgG;QACL,MAAMkF,WAAW,MAAMlK,aAAa;YAClCyD;YACAuE,MAAM;gBACJ5G;gBACAC;gBACA2D;gBACA1D;gBACA8B;gBACA+G,YAAY9I,kBAAkBC;YAChC;YACAoC;QACF;QAEAY,WAAWI,OAAO,GAAG;YAAE,GAAG3D,gBAAgB;QAAC;QAC3CgD,YAAY;QACZU,eAAe;YAAE4B,MAAM;YAAiBC,OAAO4D;QAAS;IAC1D,GACA;QAACzG;QAAUpC;QAAgBoD;QAAgBnD;QAAYF;QAAIgC;QAAWM;KAAU;IAGlF,MAAM0G,eAAepL,YACnB,CAACsH;QACChC,WAAWI,OAAO,GAAG;YAAE,GAAG3D,gBAAgB;QAAC;QAC3CgD,YAAY;QACZU,eAAe;YAAE4B,MAAM;YAAiBC;QAAM;IAChD,GACA;QAAC7B;KAAe;IAGlB,MAAM4F,4BAA4BrL,YAChC,OAAO,EAAEgG,IAAI,EAAEmF,UAAU,EAAE;QACzB,MAAMG,cAAc,MAAMtK,aAAa;YACrCyD;YACAuE,MAAM;gBACJ3G;gBACA2D;gBACA1D;gBACA6I;YACF;YACAzG;QACF;QACA,OAAO4G;IACT,GACA;QAAC7G;QAAUpC;QAAgBC;QAAYoC;KAAU;IAGnD,MAAM6G,cAA8CvL,YAClD,OAAO,EAAEgG,IAAI,EAAEK,IAAI,EAAEmF,QAAQ,EAAEL,UAAU,EAAE;QACzC,MAAMM,gBAAgB,MAAMJ,0BAA0B;YAAErF;YAAMmF;QAAW;QAEzE1F,eAAe;YACb4B,MAAM;YACNqE,WAAW1F,MAAM0F;YACjBrF;YACAmF;YACAC;QACF;IACF,GACA;QAACJ;QAA2B5F;KAAe;IAG7C,MAAMkG,iBAAoD3L,YACxD,CAAC,EAAEqG,IAAI,EAAEmF,QAAQ,EAAE;QACjB/F,eAAe;YAAE4B,MAAM;YAAchB;YAAMmF;QAAS;IACtD,GACA;QAAC/F;KAAe;IAGlB,MAAMmG,kBAAsD5L,YAC1D,OAAO,EAAEgG,IAAI,EAAEK,IAAI,EAAEmF,QAAQ,EAAEL,UAAU,EAAE;QACzC,MAAMM,gBAAgB,MAAMJ,0BAA0B;YAAErF;YAAMmF;QAAW;QAEzE1F,eAAe;YACb4B,MAAM;YACNqE,WAAW1F,MAAM0F;YACjBrF;YACAmF;YACAC;QACF;IACF,GACA;QAACJ;QAA2B5F;KAAe;IAG7CxF,UAAU;QACR,IAAIiD,0BAA0BU,WAAW;YACvCqB,gBAAgB/B;QAClB;IACF,GAAG;QAACA;KAAsB;IAE1BoC,WAAWI,OAAO,CAAC6B,MAAM,GAAGA;IAC5BjC,WAAWI,OAAO,CAAC8E,SAAS,GAAGA;IAC/BlF,WAAWI,OAAO,CAAC+E,QAAQ,GAAGA;IAC9BnF,WAAWI,OAAO,CAACK,OAAO,GAAGA;IAC7BT,WAAWI,OAAO,CAAC7D,cAAc,GAAGA;IACpCyD,WAAWI,OAAO,CAAC/D,aAAa,GAAGA;IACnC2D,WAAWI,OAAO,CAACC,YAAY,GAAGA;IAClCL,WAAWI,OAAO,CAACgD,cAAc,GAAGA;IACpCpD,WAAWI,OAAO,CAACX,WAAW,GAAGA;IACjCO,WAAWI,OAAO,CAACP,aAAa,GAAGA;IACnCG,WAAWI,OAAO,CAACN,YAAY,GAAGA;IAClCE,WAAWI,OAAO,CAAC7C,QAAQ,GAAGA;IAC9ByC,WAAWI,OAAO,CAACf,WAAW,GAAGA;IACjCW,WAAWI,OAAO,CAACL,OAAO,GAAGA;IAC7BC,WAAWI,OAAO,CAACuF,KAAK,GAAGA;IAC3B3F,WAAWI,OAAO,CAAC0F,YAAY,GAAGA;IAClC9F,WAAWI,OAAO,CAACD,cAAc,GAAGA;IACpCH,WAAWI,OAAO,CAAC6F,WAAW,GAAGA;IACjCjG,WAAWI,OAAO,CAACiG,cAAc,GAAGA;IACpCrG,WAAWI,OAAO,CAACkG,eAAe,GAAGA;IACrCtG,WAAWI,OAAO,CAACjC,IAAI,GAAGA;IAC1B6B,WAAWI,OAAO,CAACV,YAAY,GAAGA;IAElC/E,UAAU;QACR4E,aAAa;IACf,GAAG,EAAE;IAEL5E,UAAU;QACR,IAAI,OAAO6C,sBAAsB,WAAW6B,YAAY7B;IAC1D,GAAG;QAACA;KAAkB;IAEtB7C,UAAU;QACR,IAAI,OAAOuD,uBAAuB,WAAW4B,aAAa5B;IAC5D,GAAG;QAACA;KAAmB;IAEvBvD,UAAU;QACR,IAAI+C,cAAc;YAChBsC,WAAWI,OAAO,GAAG;gBAAE,GAAG3D,gBAAgB;YAAC;YAC3C0D,eAAe;gBAAE4B,MAAM;gBAAiBwE,UAAU;gBAAOvE,OAAOtE;YAAa;QAC/E;IACF,GAAG;QAACA;QAAcyC;KAAe;IAEjClF,mBACE;QACE2D;IACF,GACA,OACA;QAACsB;KAAO;IAGVvF,UAAU;QACRqF,WAAWI,OAAO,GAAG;YAAE,GAAGJ,WAAWI,OAAO;QAAC,EAAE,6DAA6D;;QAC5GX,YAAY;IACd,GAAG;QAAChB;KAAO;IAEX,MAAM+H,UAAU;QAACpJ;QAAWT;KAAU,CAAC8J,MAAM,CAACC,SAASC,IAAI,CAAC;IAE5D3L,mBACE;QACE,MAAM4L,kBAAkB;YACtB,IAAInF,MAAMC,OAAO,CAAC7D,WAAW;gBAC3B,IAAI6E,uBAAkC1C,WAAWI,OAAO,CAACF,MAAM;gBAE/D,KAAK,MAAM2G,cAAchJ,SAAU;oBACjC6E,uBAAuB,MAAMmE,WAAW;wBACtC9D,WAAWL;oBACb;gBACF;gBAEA,MAAM,EAAEoE,OAAO,EAAElB,QAAQ,EAAE,GAAGlJ,qBAC5BsD,WAAWI,OAAO,CAACF,MAAM,IAAI,CAAC,GAC9BwC;gBAGF,IAAIoE,SAAS;oBACX3G,eAAe;wBACb4B,MAAM;wBACNwE,UAAU;wBACVvE,OAAO4D;oBACT;gBACF;YACF;QACF;QAEA,IAAIpG,UAAU,KAAKoH;IACrB,GACA,KACA,yLAAyL;IACzL,+KAA+K;IAC/K;QAAC5G,WAAWI,OAAO,CAACF,MAAM;QAAEC;QAAgBtC;QAAU2B;KAAS;IAGjE,MAAMuH,eACJ,OAAO9J,WAAW,WACd,CAAC,EAAEA,OAAO,EAAEzC,YAAY+I,SAAS,CAACxE,iBAAiB;QAAEyE,gBAAgB;IAAK,GAAG,CAAC,GAC9E;IAEN,qBACE,KAACwD;QACC/J,QAAQoB,SAAS0I,eAAgB9J;QACjCG,WAAWoJ;QACXnI,QAAQA;QACR4I,UAAU;QACVnJ,UAAU,CAACqE,IAAMnC,WAAWI,OAAO,CAAC6B,MAAM,CAAC,CAAC,GAAGE;QAC/C+E,KAAKnH;kBAEL,cAAA,KAACnE,YAAYuL,QAAQ;YAAC5F,OAAOvB,WAAWI,OAAO;sBAC7C,cAAA,KAACtE,iBAAiBqL,QAAQ;gBACxB5F,OAAO;oBACLrB;oBACA,GAAGF,WAAWI,OAAO;gBACvB;0BAEA,cAAA,KAAClE,iBAAiBiL,QAAQ;oBAAC5F,OAAOtD;8BAChC,cAAA,KAAClC,oBAAoBoL,QAAQ;wBAAC5F,OAAO,CAACjC,aAAcA,aAAaI;kCAC/D,cAAA,KAACzD,kBAAkBkL,QAAQ;4BAAC5F,OAAO3B;sCACjC,cAAA,KAAC5D,gBAAgBmL,QAAQ;gCAAC5F,OAAO/B;0CAC/B,cAAA,KAAC3D,kBAAkBsL,QAAQ;oCAAC5F,OAAOtB;8CAChC9C;;;;;;;;;AAUrB,EAAC;AAED,SACEvB,WAAW,EACXC,iBAAiB,EACjBC,gBAAgB,EAChBE,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChBkL,gBAAgB,EAChBC,OAAO,EACPC,aAAa,EACbC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChBC,YAAY,QACP,eAAc"}
|
|
1
|
+
{"version":3,"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport isDeepEqual from 'deep-equal'\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { wait } from 'payload/utilities'\nimport QueryString from 'qs'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.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 { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { getDataByPath as getDataByPathFunc } from './getDataByPath.js'\nimport { getSiblingData as getSiblingDataFunc } from './getSiblingData.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, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled: disabledFromProps,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { formQueryParams } = useFormQueryParams()\n\n const config = useConfig()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if (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 id,\n config,\n data,\n operation,\n siblingData: contextRef.current.getSiblingData(path),\n t,\n user,\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 (!isDeepEqual(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [id, user, operation, t, dispatchFields, config])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg,\n method: methodToUse = method,\n overrides = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let successToast, errorToast\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) await wait(100)\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: fields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(([, field]) => field.valid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const data = {\n ...reduceFieldsToValues(fields, true),\n ...overrides,\n }\n\n onSubmit(fields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = contextRef.current.createFormData(overrides)\n\n try {\n let res\n const actionEndpoint =\n actionArg ||\n (typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : null)\n\n if (actionEndpoint) {\n res = await requests[methodToUse.toLowerCase()](actionEndpoint, {\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)\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) json = await res.json()\n if (res.status < 400) {\n if (typeof onSuccess === 'function') await onSuccess(json)\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err)\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n fields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n formQueryParams,\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 const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const newState = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n data,\n globalSlug,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [apiRoute, collectionSlug, dispatchFields, globalSlug, id, operation, serverURL],\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 getFieldStateBySchemaPath = useCallback(\n async ({ data, schemaPath }) => {\n const fieldSchema = await getFormState({\n apiRoute,\n body: {\n collectionSlug,\n data,\n globalSlug,\n schemaPath,\n },\n serverURL,\n })\n return fieldSchema\n },\n [apiRoute, collectionSlug, globalSlug, serverURL],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'ADD_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\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 async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\n )\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') setDisabled(disabledFromProps)\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') setSubmitted(submittedFromProps)\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ type: 'REPLACE_STATE', optimize: false, state: initialState })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useDebouncedEffect(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n revalidatedFormState = await onChangeFn({\n formState: revalidatedFormState,\n })\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n revalidatedFormState,\n )\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) void executeOnChange()\n },\n 150,\n // Make sure we trigger this whenever modified changes (not just when `fields` changes), otherwise we will miss merging server form state for the first form update/onChange. Here's why:\n // `fields` updates before `modified`, because setModified is in a setTimeout. So on the first change, modified is false, so we don't trigger the effect even though we should.\n [contextRef.current.fields, dispatchFields, onChange, modified],\n )\n\n const actionString =\n typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : ''\n\n return (\n <form\n action={method ? actionString : (action as string)}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"names":["isDeepEqual","useRouter","serialize","wait","QueryString","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useFormQueryParams","useLocale","useOperation","useTranslation","requests","getFormState","reduceFieldsToValues","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","globalSlug","action","beforeSubmit","children","className","disableSuccessStatus","disableValidationOnSubmit","disabled","disabledFromProps","handleResponse","initialState","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","formQueryParams","config","routes","api","apiRoute","serverURL","setDisabled","isMounted","setIsMounted","modified","setModified","initializing","setInitializing","processing","setProcessing","setSubmitted","formRef","contextRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","successToast","errorToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","formState","every","formData","createFormData","res","actionEndpoint","stringify","addQueryPrefix","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","indices","nullsAsUndefineds","reset","newState","schemaPath","replaceState","getFieldStateBySchemaPath","fieldSchema","addFieldRow","rowIndex","subFieldState","blockType","removeFieldRow","replaceFieldRow","optimize","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","actionString","form","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { useModal } from '@faceless-ui/modal';
|
|
|
4
4
|
import { usePathname, useRouter } from 'next/navigation.js';
|
|
5
5
|
import qs from 'qs';
|
|
6
6
|
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
|
7
|
-
import { toast } from '
|
|
7
|
+
import { toast } from 'sonner';
|
|
8
8
|
import { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js';
|
|
9
9
|
import { useDebounce } from '../../hooks/useDebounce.js';
|
|
10
10
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Permissions } from 'payload/auth'\nimport type { MeOperationResult } from 'payload/types'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport qs from 'qs'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => void\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n token?: string\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\nexport const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const { searchParams } = useSearchParams()\n const [user, setUser] = useState<ClientUser | null>()\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n // const { code } = useLocale()\n const code = 'en' // TODO: re-enable i18n asap\n\n const config = useConfig()\n\n const {\n admin: {\n autoLogin,\n routes: { inactivity: logoutInactivityRoute },\n routes: { login: loginRoute },\n user: userSlug,\n },\n routes: { admin, api },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>()\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(admin)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`)\n } else {\n router.replace(`${admin}${logoutInactivityRoute}`)\n }\n closeAllModals()\n }, [router, admin, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(async () => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n api,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, api, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${api}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, api, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(async () => {\n const params = {\n locale: code,\n }\n\n try {\n const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n }, [serverURL, api, i18n, code])\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else if (autoLogin && autoLogin.prefillOnly !== true) {\n // auto log-in with the provided autoLogin credentials. This is used in dev mode\n // so you don't have to log in over and over again\n const autoLoginResult = await requests.post(\n `${serverURL}${api}/${userSlug}${loginRoute}`,\n {\n body: JSON.stringify({\n email: autoLogin.email,\n password: autoLogin.password,\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n if (autoLoginResult.status === 200) {\n const autoLoginJson = await autoLoginResult.json()\n setUser(autoLoginJson.user)\n if (autoLoginJson?.token) {\n setTokenAndExpiration(autoLoginJson)\n }\n router.replace(\n typeof searchParams['redirect'] === 'string' ? searchParams['redirect'] : admin,\n )\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [\n serverURL,\n api,\n userSlug,\n i18n.language,\n autoLogin,\n setTokenAndExpiration,\n router,\n searchParams,\n admin,\n revokeTokenAndExpire,\n loginRoute,\n ])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","useConfig","useSearchParams","Context","maxTimeoutTime","AuthProvider","children","searchParams","user","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","code","config","admin","autoLogin","routes","inactivity","logoutInactivityRoute","login","loginRoute","userSlug","api","serverURL","permissions","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","params","locale","get","stringify","Error","fetchFullUser","prefillOnly","autoLoginResult","body","JSON","email","password","autoLoginJson","reminder","max","min","clearTimeout","forceLogOut","Provider","value","useAuth"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Permissions } from 'payload/auth'\nimport type { MeOperationResult } from 'payload/types'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport qs from 'qs'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => void\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n token?: string\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\nexport const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const { searchParams } = useSearchParams()\n const [user, setUser] = useState<ClientUser | null>()\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n // const { code } = useLocale()\n const code = 'en' // TODO: re-enable i18n asap\n\n const config = useConfig()\n\n const {\n admin: {\n autoLogin,\n routes: { inactivity: logoutInactivityRoute },\n routes: { login: loginRoute },\n user: userSlug,\n },\n routes: { admin, api },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>()\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(admin)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`)\n } else {\n router.replace(`${admin}${logoutInactivityRoute}`)\n }\n closeAllModals()\n }, [router, admin, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(async () => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n api,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, api, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${api}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, api, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(async () => {\n const params = {\n locale: code,\n }\n\n try {\n const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n }, [serverURL, api, i18n, code])\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else if (autoLogin && autoLogin.prefillOnly !== true) {\n // auto log-in with the provided autoLogin credentials. This is used in dev mode\n // so you don't have to log in over and over again\n const autoLoginResult = await requests.post(\n `${serverURL}${api}/${userSlug}${loginRoute}`,\n {\n body: JSON.stringify({\n email: autoLogin.email,\n password: autoLogin.password,\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n if (autoLoginResult.status === 200) {\n const autoLoginJson = await autoLoginResult.json()\n setUser(autoLoginJson.user)\n if (autoLoginJson?.token) {\n setTokenAndExpiration(autoLoginJson)\n }\n router.replace(\n typeof searchParams['redirect'] === 'string' ? searchParams['redirect'] : admin,\n )\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [\n serverURL,\n api,\n userSlug,\n i18n.language,\n autoLogin,\n setTokenAndExpiration,\n router,\n searchParams,\n admin,\n revokeTokenAndExpire,\n loginRoute,\n ])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","useConfig","useSearchParams","Context","maxTimeoutTime","AuthProvider","children","searchParams","user","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","code","config","admin","autoLogin","routes","inactivity","logoutInactivityRoute","login","loginRoute","userSlug","api","serverURL","permissions","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","params","locale","get","stringify","Error","fetchFullUser","prefillOnly","autoLoginResult","body","JSON","email","password","autoLoginJson","reminder","max","min","clearTimeout","forceLogOut","Provider","value","useAuth"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EAEV,KAAK,EAEL,aAAa,EAGb,eAAe,EAChB,MAAM,eAAe,CAAA;AA2BtB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,KAAK,EAEV,KAAK,EAEL,aAAa,EAGb,eAAe,EAChB,MAAM,eAAe,CAAA;AA2BtB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;AAgBnB,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,+BAA+B,CAAA;IACpD,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,aA6uBA,CAAA"}
|
|
@@ -4,6 +4,15 @@ import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types';
|
|
|
4
4
|
import React, { Fragment } from 'react';
|
|
5
5
|
import { HiddenInput } from '../../../fields/HiddenInput/index.js';
|
|
6
6
|
import { FieldDescription } from '../../../forms/FieldDescription/index.js';
|
|
7
|
+
function generateFieldPath(parentPath, name) {
|
|
8
|
+
let tabPath = parentPath || '';
|
|
9
|
+
if (parentPath && name) {
|
|
10
|
+
tabPath = `${parentPath}.${name}`;
|
|
11
|
+
} else if (!parentPath && name) {
|
|
12
|
+
tabPath = name;
|
|
13
|
+
}
|
|
14
|
+
return tabPath;
|
|
15
|
+
}
|
|
7
16
|
export const mapFields = (args)=>{
|
|
8
17
|
const { WithServerSideProps, config, disableAddingID, fieldSchema, filter, i18n, i18n: { t }, parentPath, readOnly: readOnlyOverride } = args;
|
|
9
18
|
const result = fieldSchema.reduce((acc, field)=>{
|
|
@@ -19,7 +28,7 @@ export const mapFields = (args)=>{
|
|
|
19
28
|
}
|
|
20
29
|
}
|
|
21
30
|
const isFieldAffectingData = fieldAffectsData(field);
|
|
22
|
-
const path =
|
|
31
|
+
const path = generateFieldPath(parentPath, isFieldAffectingData && 'name' in field ? field.name : '');
|
|
23
32
|
const AfterInput = 'admin' in field && 'components' in field.admin && 'afterInput' in field.admin.components && Array.isArray(field.admin?.components?.afterInput) && /*#__PURE__*/ _jsx(Fragment, {
|
|
24
33
|
children: field.admin.components.afterInput.map((Component, i)=>/*#__PURE__*/ _jsx(WithServerSideProps, {
|
|
25
34
|
Component: Component
|
|
@@ -321,6 +330,7 @@ export const mapFields = (args)=>{
|
|
|
321
330
|
parentPath: path,
|
|
322
331
|
readOnly: readOnlyOverride
|
|
323
332
|
}),
|
|
333
|
+
hideGutter: field.admin?.hideGutter,
|
|
324
334
|
readOnly: field.admin?.readOnly,
|
|
325
335
|
style: field.admin?.style,
|
|
326
336
|
width: field.admin?.width
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { CustomComponent } from 'payload/config'\nimport type {\n CellComponentProps,\n Field,\n FieldDescriptionProps,\n FieldWithPath,\n LabelProps,\n Option,\n SanitizedConfig,\n} from 'payload/types'\n\nimport { MissingEditorProp } from 'payload/errors'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types'\nimport React, { Fragment } from 'react'\n\nimport type { ArrayFieldProps } from '../../../fields/Array/index.js'\nimport type { BlocksFieldProps } from '../../../fields/Blocks/index.js'\nimport type { CheckboxFieldProps } from '../../../fields/Checkbox/index.js'\nimport type { CodeFieldProps } from '../../../fields/Code/index.js'\nimport type { CollapsibleFieldProps } from '../../../fields/Collapsible/index.js'\nimport type { DateFieldProps } from '../../../fields/DateTime/index.js'\nimport type { EmailFieldProps } from '../../../fields/Email/index.js'\nimport type { GroupFieldProps } from '../../../fields/Group/index.js'\nimport type { JSONFieldProps } from '../../../fields/JSON/index.js'\nimport type { NumberFieldProps } from '../../../fields/Number/index.js'\nimport type { PointFieldProps } from '../../../fields/Point/index.js'\nimport type { RadioFieldProps } from '../../../fields/RadioGroup/index.js'\nimport type { RelationshipFieldProps } from '../../../fields/Relationship/types.js'\nimport type { RichTextFieldProps } from '../../../fields/RichText/index.js'\nimport type { RowFieldProps } from '../../../fields/Row/types.js'\nimport type { SelectFieldProps } from '../../../fields/Select/index.js'\nimport type { TabsFieldProps } from '../../../fields/Tabs/index.js'\nimport type { TextFieldProps } from '../../../fields/Text/types.js'\nimport type { TextareaFieldProps } from '../../../fields/Textarea/types.js'\nimport type { UploadFieldProps } from '../../../fields/Upload/types.js'\nimport type { FormFieldBase } from '../../../fields/shared/index.js'\nimport type { WithServerSidePropsPrePopulated } from './index.js'\nimport type {\n FieldComponentProps,\n FieldMap,\n MappedField,\n MappedTab,\n ReducedBlock,\n} from './types.js'\n\nimport { HiddenInput } from '../../../fields/HiddenInput/index.js'\nimport { FieldDescription } from '../../../forms/FieldDescription/index.js'\n\nexport const mapFields = (args: {\n WithServerSideProps: WithServerSidePropsPrePopulated\n config: SanitizedConfig\n /**\n * If mapFields is used outside of collections, you might not want it to add an id field\n */\n disableAddingID?: boolean\n fieldSchema: FieldWithPath[]\n filter?: (field: Field) => boolean\n i18n: I18nClient\n parentPath?: string\n readOnly?: boolean\n}): FieldMap => {\n const {\n WithServerSideProps,\n config,\n disableAddingID,\n fieldSchema,\n filter,\n i18n,\n i18n: { t },\n parentPath,\n readOnly: readOnlyOverride,\n } = args\n\n const result: FieldMap = fieldSchema.reduce((acc, field): FieldMap => {\n const fieldIsPresentational = fieldIsPresentationalOnly(field)\n let CustomFieldComponent: CustomComponent<FieldComponentProps> = field.admin?.components?.Field\n\n let CustomCellComponent = field.admin?.components?.Cell\n\n const isHidden = field?.admin && 'hidden' in field.admin && field.admin.hidden\n\n if (fieldIsPresentational || (!field?.hidden && field?.admin?.disabled !== true)) {\n if ((filter && typeof filter === 'function' && filter(field)) || !filter) {\n if (isHidden) {\n if (CustomFieldComponent) {\n CustomFieldComponent = HiddenInput\n }\n }\n\n const isFieldAffectingData = fieldAffectsData(field)\n\n const path = `${parentPath ? `${parentPath}.` : ''}${\n field.path || (isFieldAffectingData && 'name' in field ? field.name : '')\n }`\n\n const AfterInput =\n ('admin' in field &&\n 'components' in field.admin &&\n 'afterInput' in field.admin.components &&\n Array.isArray(field.admin?.components?.afterInput) && (\n <Fragment>\n {field.admin.components.afterInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n const BeforeInput =\n ('admin' in field &&\n field.admin?.components &&\n 'beforeInput' in field.admin.components &&\n Array.isArray(field.admin.components.beforeInput) && (\n <Fragment>\n {field.admin.components.beforeInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n let label = undefined\n if ('label' in field) {\n if (typeof field.label === 'string' || typeof field.label === 'object') {\n label = field.label\n } else if (typeof field.label === 'function') {\n label = field.label({ t })\n }\n }\n\n const labelProps: LabelProps = {\n label,\n required: 'required' in field ? field.required : undefined,\n }\n\n const CustomLabelComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Label' in field.admin.components &&\n field.admin.components?.Label) ||\n undefined\n\n // If we return undefined here (so if no CUSTOM label component is set), the field client component is responsible for falling back to the default label\n const CustomLabel =\n CustomLabelComponent !== undefined ? (\n <WithServerSideProps Component={CustomLabelComponent} {...(labelProps || {})} />\n ) : undefined\n\n let description = undefined\n if (field.admin && 'description' in field.admin) {\n if (\n typeof field.admin?.description === 'string' ||\n typeof field.admin?.description === 'object'\n ) {\n description = field.admin.description\n } else if (typeof field.admin?.description === 'function') {\n description = field.admin?.description({ t })\n }\n }\n\n const descriptionProps: FieldDescriptionProps = {\n description,\n }\n\n let CustomDescriptionComponent = undefined\n if (\n field.admin?.components &&\n 'Description' in field.admin.components &&\n field.admin.components?.Description\n ) {\n CustomDescriptionComponent = field.admin.components.Description\n } else if (description) {\n CustomDescriptionComponent = FieldDescription\n }\n\n const CustomDescription =\n CustomDescriptionComponent !== undefined ? (\n <WithServerSideProps\n Component={CustomDescriptionComponent}\n {...(descriptionProps || {})}\n />\n ) : undefined\n\n const errorProps = {\n path,\n }\n\n const CustomErrorComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Error' in field.admin.components &&\n field.admin?.components?.Error) ||\n undefined\n\n const CustomError =\n CustomErrorComponent !== undefined ? (\n <WithServerSideProps Component={CustomErrorComponent} {...(errorProps || {})} />\n ) : undefined\n\n // These fields are shared across all field types even if they are not used in the default field, as the custom field component can use them\n const baseFieldProps: FormFieldBase = {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n custom: 'admin' in field && 'custom' in field.admin ? field.admin?.custom : undefined,\n descriptionProps,\n disabled: 'admin' in field && 'disabled' in field.admin ? field.admin?.disabled : false,\n errorProps,\n label: labelProps?.label,\n path,\n required: 'required' in field ? field.required : undefined,\n }\n\n let fieldComponentProps: FieldComponentProps\n\n let fieldOptions: Option[]\n\n if ('options' in field) {\n fieldOptions = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n const cellComponentProps: CellComponentProps = {\n name: 'name' in field ? field.name : undefined,\n fieldType: field.type,\n isFieldAffectingData,\n label: labelProps?.label || undefined,\n labels: 'labels' in field ? field.labels : undefined,\n options: 'options' in field ? fieldOptions : undefined,\n relationTo: 'relationTo' in field ? field.relationTo : undefined,\n schemaPath: path,\n }\n\n switch (field.type) {\n case 'array': {\n let CustomRowLabel: React.ReactNode\n\n if (\n 'admin' in field &&\n field.admin.components &&\n 'RowLabel' in field.admin.components &&\n field.admin.components.RowLabel\n ) {\n const CustomRowLabelComponent = field.admin.components.RowLabel\n CustomRowLabel = (\n <WithServerSideProps Component={CustomRowLabelComponent} {...(labelProps || {})} />\n )\n }\n\n const arrayFieldProps: Omit<ArrayFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n CustomRowLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n isSortable: field.admin?.isSortable,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = arrayFieldProps\n break\n }\n case 'blocks': {\n const blocks = field.blocks.map((block) => {\n const blockFieldMap = mapFields({\n WithServerSideProps,\n config,\n fieldSchema: block.fields,\n filter,\n i18n,\n parentPath: `${path}.${block.slug}`,\n readOnly: readOnlyOverride,\n })\n\n const reducedBlock: ReducedBlock = {\n slug: block.slug,\n custom: block.admin?.custom,\n fieldMap: blockFieldMap,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n labels: block.labels,\n }\n\n return reducedBlock\n })\n\n const blocksField: Omit<BlocksFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n blocks,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n isSortable: field.admin?.isSortable,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = blocksField\n\n cellComponentProps.blocks = field.blocks.map((b) => ({\n slug: b.slug,\n labels: b.labels,\n }))\n\n break\n }\n case 'checkbox': {\n const checkboxField: CheckboxFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = checkboxField\n break\n }\n case 'code': {\n const codeField: CodeFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n language: field.admin?.language,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = codeField\n break\n }\n case 'collapsible': {\n let CustomCollapsibleLabel: React.ReactNode\n if (\n field?.admin?.components &&\n 'RowLabel' in field.admin.components &&\n field?.admin?.components?.RowLabel\n ) {\n const CustomCollapsibleLabelComponent = field.admin.components.RowLabel\n CustomCollapsibleLabel = (\n <WithServerSideProps\n Component={CustomCollapsibleLabelComponent}\n {...(labelProps || {})}\n />\n )\n }\n\n const collapsibleField: Omit<CollapsibleFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n CustomLabel: CustomCollapsibleLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n initCollapsed: field.admin?.initCollapsed,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = collapsibleField as CollapsibleFieldProps // TODO: dunno why this is needed\n break\n }\n case 'date': {\n const dateField: DateFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n date: field.admin?.date,\n disabled: field.admin?.disabled,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = dateField\n cellComponentProps.dateDisplayFormat = field.admin?.date?.displayFormat\n break\n }\n case 'email': {\n const emailField: EmailFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = emailField\n break\n }\n case 'group': {\n const groupField: Omit<GroupFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n readOnly: field.admin?.readOnly,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = groupField\n break\n }\n case 'json': {\n const jsonField: JSONFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n jsonSchema: field.jsonSchema,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = jsonField\n break\n }\n case 'number': {\n const numberField: NumberFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n max: field.max,\n maxRows: field.maxRows,\n min: field.min,\n readOnly: field.admin?.readOnly,\n required: field.required,\n step: field.admin?.step,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = numberField\n break\n }\n case 'point': {\n const pointField: PointFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = pointField\n break\n }\n case 'relationship': {\n const relationshipField: RelationshipFieldProps = {\n ...baseFieldProps,\n name: field.name,\n allowCreate: field.admin.allowCreate,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n isSortable: field.admin?.isSortable,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n sortOptions: field.admin.sortOptions,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = relationshipField\n break\n }\n case 'radio': {\n const radioField: RadioFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = radioField\n break\n }\n case 'richText': {\n const richTextField: RichTextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const RichTextFieldComponent = field.editor.FieldComponent\n const RichTextCellComponent = field.editor.CellComponent\n\n if (typeof field.editor.generateComponentMap === 'function') {\n const result = field.editor.generateComponentMap({\n WithServerSideProps,\n config,\n i18n,\n schemaPath: path,\n })\n richTextField.richTextComponentMap = result\n cellComponentProps.richTextComponentMap = result\n }\n\n if (RichTextFieldComponent) {\n CustomFieldComponent = RichTextFieldComponent\n }\n\n if (RichTextCellComponent) {\n CustomCellComponent = RichTextCellComponent\n }\n\n fieldComponentProps = richTextField\n\n break\n }\n case 'row': {\n const rowField: Omit<RowFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = rowField\n break\n }\n case 'tabs': {\n // `tabs` fields require a field map of each of its tab's nested fields\n const tabs = field.tabs.map((tab) => {\n const tabFieldMap = mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: tab.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n })\n\n const reducedTab: MappedTab = {\n name: 'name' in tab ? tab.name : undefined,\n fieldMap: tabFieldMap,\n label: tab.label,\n }\n\n return reducedTab\n })\n\n const tabsField: Omit<TabsFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: 'name' in field ? (field.name as string) : undefined,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n tabs,\n width: field.admin?.width,\n }\n\n fieldComponentProps = tabsField\n break\n }\n case 'text': {\n const textField: TextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textField\n break\n }\n case 'textarea': {\n const textareaField: TextareaFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n rows: field.admin?.rows,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textareaField\n break\n }\n case 'ui': {\n fieldComponentProps = baseFieldProps\n break\n }\n case 'upload': {\n const uploadField: UploadFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n filterOptions: field.filterOptions,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = uploadField\n break\n }\n case 'select': {\n const selectField: SelectFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n isClearable: field.admin?.isClearable,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = selectField\n break\n }\n default: {\n break\n }\n }\n\n const reducedField: MappedField = {\n name: 'name' in field ? field.name : undefined,\n type: field.type,\n CustomCell: CustomCellComponent ? (\n <WithServerSideProps Component={CustomCellComponent} {...cellComponentProps} />\n ) : undefined,\n CustomField: CustomFieldComponent ? (\n <WithServerSideProps Component={CustomFieldComponent} {...fieldComponentProps} />\n ) : undefined,\n cellComponentProps,\n custom: field?.admin?.custom,\n disableBulkEdit:\n 'admin' in field && 'disableBulkEdit' in field.admin && field.admin.disableBulkEdit,\n disableListColumn:\n 'admin' in field && 'disableListColumn' in field.admin && field.admin.disableListColumn,\n disableListFilter:\n 'admin' in field && 'disableListFilter' in field.admin && field.admin.disableListFilter,\n fieldComponentProps,\n fieldIsPresentational,\n isFieldAffectingData,\n isHidden,\n isSidebar:\n 'admin' in field && 'position' in field.admin && field.admin.position === 'sidebar',\n localized: 'localized' in field ? field.localized : false,\n unique: 'unique' in field ? field.unique : false,\n }\n\n acc.push(reducedField)\n }\n }\n\n return acc\n }, [])\n\n const hasID =\n result.findIndex((f) => 'name' in f && f.isFieldAffectingData && f.name === 'id') > -1\n\n if (!disableAddingID && !hasID) {\n // TODO: For all fields (not just this one) we need to add the name to both .fieldComponentProps.name AND .name. This can probably be improved\n result.push({\n name: 'id',\n type: 'text',\n CustomField: null,\n cellComponentProps: {\n name: 'id',\n schemaPath: 'id',\n },\n disableBulkEdit: true,\n fieldComponentProps: {\n name: 'id',\n label: 'ID',\n },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n isHidden: true,\n localized: undefined,\n })\n }\n\n return result\n}\n"],"names":["MissingEditorProp","fieldAffectsData","fieldIsPresentationalOnly","React","Fragment","HiddenInput","FieldDescription","mapFields","args","WithServerSideProps","config","disableAddingID","fieldSchema","filter","i18n","t","parentPath","readOnly","readOnlyOverride","result","reduce","acc","field","fieldIsPresentational","CustomFieldComponent","admin","components","Field","CustomCellComponent","Cell","isHidden","hidden","disabled","isFieldAffectingData","path","name","AfterInput","Array","isArray","afterInput","map","Component","i","BeforeInput","beforeInput","label","undefined","labelProps","required","CustomLabelComponent","Label","CustomLabel","description","descriptionProps","CustomDescriptionComponent","Description","CustomDescription","errorProps","CustomErrorComponent","Error","CustomError","baseFieldProps","custom","fieldComponentProps","fieldOptions","options","option","value","cellComponentProps","fieldType","type","labels","relationTo","schemaPath","CustomRowLabel","RowLabel","CustomRowLabelComponent","arrayFieldProps","className","fieldMap","fields","isSortable","maxRows","minRows","style","width","blocks","block","blockFieldMap","slug","reducedBlock","imageAltText","imageURL","blocksField","b","checkboxField","codeField","editorOptions","language","CustomCollapsibleLabel","CustomCollapsibleLabelComponent","collapsibleField","initCollapsed","dateField","date","placeholder","dateDisplayFormat","displayFormat","emailField","groupField","jsonField","jsonSchema","numberField","hasMany","max","min","step","pointField","relationshipField","allowCreate","sortOptions","radioField","richTextField","editor","RichTextFieldComponent","FieldComponent","RichTextCellComponent","CellComponent","generateComponentMap","richTextComponentMap","rowField","tabs","tab","tabFieldMap","reducedTab","tabsField","textField","maxLength","minLength","textareaField","rows","uploadField","filterOptions","selectField","isClearable","reducedField","CustomCell","CustomField","disableBulkEdit","disableListColumn","disableListFilter","isSidebar","position","localized","unique","push","hasID","findIndex","f"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { CustomComponent } from 'payload/config'\nimport type {\n CellComponentProps,\n Field,\n FieldDescriptionProps,\n FieldWithPath,\n LabelProps,\n Option,\n SanitizedConfig,\n} from 'payload/types'\n\nimport { MissingEditorProp } from 'payload/errors'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types'\nimport React, { Fragment } from 'react'\n\nimport type { ArrayFieldProps } from '../../../fields/Array/index.js'\nimport type { BlocksFieldProps } from '../../../fields/Blocks/index.js'\nimport type { CheckboxFieldProps } from '../../../fields/Checkbox/index.js'\nimport type { CodeFieldProps } from '../../../fields/Code/index.js'\nimport type { CollapsibleFieldProps } from '../../../fields/Collapsible/index.js'\nimport type { DateFieldProps } from '../../../fields/DateTime/index.js'\nimport type { EmailFieldProps } from '../../../fields/Email/index.js'\nimport type { GroupFieldProps } from '../../../fields/Group/index.js'\nimport type { JSONFieldProps } from '../../../fields/JSON/index.js'\nimport type { NumberFieldProps } from '../../../fields/Number/index.js'\nimport type { PointFieldProps } from '../../../fields/Point/index.js'\nimport type { RadioFieldProps } from '../../../fields/RadioGroup/index.js'\nimport type { RelationshipFieldProps } from '../../../fields/Relationship/types.js'\nimport type { RichTextFieldProps } from '../../../fields/RichText/index.js'\nimport type { RowFieldProps } from '../../../fields/Row/types.js'\nimport type { SelectFieldProps } from '../../../fields/Select/index.js'\nimport type { TabsFieldProps } from '../../../fields/Tabs/index.js'\nimport type { TextFieldProps } from '../../../fields/Text/types.js'\nimport type { TextareaFieldProps } from '../../../fields/Textarea/types.js'\nimport type { UploadFieldProps } from '../../../fields/Upload/types.js'\nimport type { FormFieldBase } from '../../../fields/shared/index.js'\nimport type { WithServerSidePropsPrePopulated } from './index.js'\nimport type {\n FieldComponentProps,\n FieldMap,\n MappedField,\n MappedTab,\n ReducedBlock,\n} from './types.js'\n\nimport { HiddenInput } from '../../../fields/HiddenInput/index.js'\nimport { FieldDescription } from '../../../forms/FieldDescription/index.js'\n\nfunction generateFieldPath(parentPath, name) {\n let tabPath = parentPath || ''\n if (parentPath && name) {\n tabPath = `${parentPath}.${name}`\n } else if (!parentPath && name) {\n tabPath = name\n }\n\n return tabPath\n}\n\nexport const mapFields = (args: {\n WithServerSideProps: WithServerSidePropsPrePopulated\n config: SanitizedConfig\n /**\n * If mapFields is used outside of collections, you might not want it to add an id field\n */\n disableAddingID?: boolean\n fieldSchema: FieldWithPath[]\n filter?: (field: Field) => boolean\n i18n: I18nClient\n parentPath?: string\n readOnly?: boolean\n}): FieldMap => {\n const {\n WithServerSideProps,\n config,\n disableAddingID,\n fieldSchema,\n filter,\n i18n,\n i18n: { t },\n parentPath,\n readOnly: readOnlyOverride,\n } = args\n\n const result: FieldMap = fieldSchema.reduce((acc, field): FieldMap => {\n const fieldIsPresentational = fieldIsPresentationalOnly(field)\n let CustomFieldComponent: CustomComponent<FieldComponentProps> = field.admin?.components?.Field\n\n let CustomCellComponent = field.admin?.components?.Cell\n\n const isHidden = field?.admin && 'hidden' in field.admin && field.admin.hidden\n\n if (fieldIsPresentational || (!field?.hidden && field?.admin?.disabled !== true)) {\n if ((filter && typeof filter === 'function' && filter(field)) || !filter) {\n if (isHidden) {\n if (CustomFieldComponent) {\n CustomFieldComponent = HiddenInput\n }\n }\n\n const isFieldAffectingData = fieldAffectsData(field)\n\n const path = generateFieldPath(\n parentPath,\n isFieldAffectingData && 'name' in field ? field.name : '',\n )\n\n const AfterInput =\n ('admin' in field &&\n 'components' in field.admin &&\n 'afterInput' in field.admin.components &&\n Array.isArray(field.admin?.components?.afterInput) && (\n <Fragment>\n {field.admin.components.afterInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n const BeforeInput =\n ('admin' in field &&\n field.admin?.components &&\n 'beforeInput' in field.admin.components &&\n Array.isArray(field.admin.components.beforeInput) && (\n <Fragment>\n {field.admin.components.beforeInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n let label = undefined\n if ('label' in field) {\n if (typeof field.label === 'string' || typeof field.label === 'object') {\n label = field.label\n } else if (typeof field.label === 'function') {\n label = field.label({ t })\n }\n }\n\n const labelProps: LabelProps = {\n label,\n required: 'required' in field ? field.required : undefined,\n }\n\n const CustomLabelComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Label' in field.admin.components &&\n field.admin.components?.Label) ||\n undefined\n\n // If we return undefined here (so if no CUSTOM label component is set), the field client component is responsible for falling back to the default label\n const CustomLabel =\n CustomLabelComponent !== undefined ? (\n <WithServerSideProps Component={CustomLabelComponent} {...(labelProps || {})} />\n ) : undefined\n\n let description = undefined\n if (field.admin && 'description' in field.admin) {\n if (\n typeof field.admin?.description === 'string' ||\n typeof field.admin?.description === 'object'\n ) {\n description = field.admin.description\n } else if (typeof field.admin?.description === 'function') {\n description = field.admin?.description({ t })\n }\n }\n\n const descriptionProps: FieldDescriptionProps = {\n description,\n }\n\n let CustomDescriptionComponent = undefined\n if (\n field.admin?.components &&\n 'Description' in field.admin.components &&\n field.admin.components?.Description\n ) {\n CustomDescriptionComponent = field.admin.components.Description\n } else if (description) {\n CustomDescriptionComponent = FieldDescription\n }\n\n const CustomDescription =\n CustomDescriptionComponent !== undefined ? (\n <WithServerSideProps\n Component={CustomDescriptionComponent}\n {...(descriptionProps || {})}\n />\n ) : undefined\n\n const errorProps = {\n path,\n }\n\n const CustomErrorComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Error' in field.admin.components &&\n field.admin?.components?.Error) ||\n undefined\n\n const CustomError =\n CustomErrorComponent !== undefined ? (\n <WithServerSideProps Component={CustomErrorComponent} {...(errorProps || {})} />\n ) : undefined\n\n // These fields are shared across all field types even if they are not used in the default field, as the custom field component can use them\n const baseFieldProps: FormFieldBase = {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n custom: 'admin' in field && 'custom' in field.admin ? field.admin?.custom : undefined,\n descriptionProps,\n disabled: 'admin' in field && 'disabled' in field.admin ? field.admin?.disabled : false,\n errorProps,\n label: labelProps?.label,\n path,\n required: 'required' in field ? field.required : undefined,\n }\n\n let fieldComponentProps: FieldComponentProps\n\n let fieldOptions: Option[]\n\n if ('options' in field) {\n fieldOptions = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n const cellComponentProps: CellComponentProps = {\n name: 'name' in field ? field.name : undefined,\n fieldType: field.type,\n isFieldAffectingData,\n label: labelProps?.label || undefined,\n labels: 'labels' in field ? field.labels : undefined,\n options: 'options' in field ? fieldOptions : undefined,\n relationTo: 'relationTo' in field ? field.relationTo : undefined,\n schemaPath: path,\n }\n\n switch (field.type) {\n case 'array': {\n let CustomRowLabel: React.ReactNode\n\n if (\n 'admin' in field &&\n field.admin.components &&\n 'RowLabel' in field.admin.components &&\n field.admin.components.RowLabel\n ) {\n const CustomRowLabelComponent = field.admin.components.RowLabel\n CustomRowLabel = (\n <WithServerSideProps Component={CustomRowLabelComponent} {...(labelProps || {})} />\n )\n }\n\n const arrayFieldProps: Omit<ArrayFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n CustomRowLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n isSortable: field.admin?.isSortable,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = arrayFieldProps\n break\n }\n case 'blocks': {\n const blocks = field.blocks.map((block) => {\n const blockFieldMap = mapFields({\n WithServerSideProps,\n config,\n fieldSchema: block.fields,\n filter,\n i18n,\n parentPath: `${path}.${block.slug}`,\n readOnly: readOnlyOverride,\n })\n\n const reducedBlock: ReducedBlock = {\n slug: block.slug,\n custom: block.admin?.custom,\n fieldMap: blockFieldMap,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n labels: block.labels,\n }\n\n return reducedBlock\n })\n\n const blocksField: Omit<BlocksFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n blocks,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n isSortable: field.admin?.isSortable,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = blocksField\n\n cellComponentProps.blocks = field.blocks.map((b) => ({\n slug: b.slug,\n labels: b.labels,\n }))\n\n break\n }\n case 'checkbox': {\n const checkboxField: CheckboxFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = checkboxField\n break\n }\n case 'code': {\n const codeField: CodeFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n language: field.admin?.language,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = codeField\n break\n }\n case 'collapsible': {\n let CustomCollapsibleLabel: React.ReactNode\n if (\n field?.admin?.components &&\n 'RowLabel' in field.admin.components &&\n field?.admin?.components?.RowLabel\n ) {\n const CustomCollapsibleLabelComponent = field.admin.components.RowLabel\n CustomCollapsibleLabel = (\n <WithServerSideProps\n Component={CustomCollapsibleLabelComponent}\n {...(labelProps || {})}\n />\n )\n }\n\n const collapsibleField: Omit<CollapsibleFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n CustomLabel: CustomCollapsibleLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n initCollapsed: field.admin?.initCollapsed,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = collapsibleField as CollapsibleFieldProps // TODO: dunno why this is needed\n break\n }\n case 'date': {\n const dateField: DateFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n date: field.admin?.date,\n disabled: field.admin?.disabled,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = dateField\n cellComponentProps.dateDisplayFormat = field.admin?.date?.displayFormat\n break\n }\n case 'email': {\n const emailField: EmailFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = emailField\n break\n }\n case 'group': {\n const groupField: Omit<GroupFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n hideGutter: field.admin?.hideGutter,\n readOnly: field.admin?.readOnly,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = groupField\n break\n }\n case 'json': {\n const jsonField: JSONFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n jsonSchema: field.jsonSchema,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = jsonField\n break\n }\n case 'number': {\n const numberField: NumberFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n max: field.max,\n maxRows: field.maxRows,\n min: field.min,\n readOnly: field.admin?.readOnly,\n required: field.required,\n step: field.admin?.step,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = numberField\n break\n }\n case 'point': {\n const pointField: PointFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = pointField\n break\n }\n case 'relationship': {\n const relationshipField: RelationshipFieldProps = {\n ...baseFieldProps,\n name: field.name,\n allowCreate: field.admin.allowCreate,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n isSortable: field.admin?.isSortable,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n sortOptions: field.admin.sortOptions,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = relationshipField\n break\n }\n case 'radio': {\n const radioField: RadioFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = radioField\n break\n }\n case 'richText': {\n const richTextField: RichTextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const RichTextFieldComponent = field.editor.FieldComponent\n const RichTextCellComponent = field.editor.CellComponent\n\n if (typeof field.editor.generateComponentMap === 'function') {\n const result = field.editor.generateComponentMap({\n WithServerSideProps,\n config,\n i18n,\n schemaPath: path,\n })\n richTextField.richTextComponentMap = result\n cellComponentProps.richTextComponentMap = result\n }\n\n if (RichTextFieldComponent) {\n CustomFieldComponent = RichTextFieldComponent\n }\n\n if (RichTextCellComponent) {\n CustomCellComponent = RichTextCellComponent\n }\n\n fieldComponentProps = richTextField\n\n break\n }\n case 'row': {\n const rowField: Omit<RowFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = rowField\n break\n }\n case 'tabs': {\n // `tabs` fields require a field map of each of its tab's nested fields\n const tabs = field.tabs.map((tab) => {\n const tabFieldMap = mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: tab.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n })\n\n const reducedTab: MappedTab = {\n name: 'name' in tab ? tab.name : undefined,\n fieldMap: tabFieldMap,\n label: tab.label,\n }\n\n return reducedTab\n })\n\n const tabsField: Omit<TabsFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: 'name' in field ? (field.name as string) : undefined,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n tabs,\n width: field.admin?.width,\n }\n\n fieldComponentProps = tabsField\n break\n }\n case 'text': {\n const textField: TextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textField\n break\n }\n case 'textarea': {\n const textareaField: TextareaFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n rows: field.admin?.rows,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textareaField\n break\n }\n case 'ui': {\n fieldComponentProps = baseFieldProps\n break\n }\n case 'upload': {\n const uploadField: UploadFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n filterOptions: field.filterOptions,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = uploadField\n break\n }\n case 'select': {\n const selectField: SelectFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n isClearable: field.admin?.isClearable,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = selectField\n break\n }\n default: {\n break\n }\n }\n\n const reducedField: MappedField = {\n name: 'name' in field ? field.name : undefined,\n type: field.type,\n CustomCell: CustomCellComponent ? (\n <WithServerSideProps Component={CustomCellComponent} {...cellComponentProps} />\n ) : undefined,\n CustomField: CustomFieldComponent ? (\n <WithServerSideProps Component={CustomFieldComponent} {...fieldComponentProps} />\n ) : undefined,\n cellComponentProps,\n custom: field?.admin?.custom,\n disableBulkEdit:\n 'admin' in field && 'disableBulkEdit' in field.admin && field.admin.disableBulkEdit,\n disableListColumn:\n 'admin' in field && 'disableListColumn' in field.admin && field.admin.disableListColumn,\n disableListFilter:\n 'admin' in field && 'disableListFilter' in field.admin && field.admin.disableListFilter,\n fieldComponentProps,\n fieldIsPresentational,\n isFieldAffectingData,\n isHidden,\n isSidebar:\n 'admin' in field && 'position' in field.admin && field.admin.position === 'sidebar',\n localized: 'localized' in field ? field.localized : false,\n unique: 'unique' in field ? field.unique : false,\n }\n\n acc.push(reducedField)\n }\n }\n\n return acc\n }, [])\n\n const hasID =\n result.findIndex((f) => 'name' in f && f.isFieldAffectingData && f.name === 'id') > -1\n\n if (!disableAddingID && !hasID) {\n // TODO: For all fields (not just this one) we need to add the name to both .fieldComponentProps.name AND .name. This can probably be improved\n result.push({\n name: 'id',\n type: 'text',\n CustomField: null,\n cellComponentProps: {\n name: 'id',\n schemaPath: 'id',\n },\n disableBulkEdit: true,\n fieldComponentProps: {\n name: 'id',\n label: 'ID',\n },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n isHidden: true,\n localized: undefined,\n })\n }\n\n return result\n}\n"],"names":["MissingEditorProp","fieldAffectsData","fieldIsPresentationalOnly","React","Fragment","HiddenInput","FieldDescription","generateFieldPath","parentPath","name","tabPath","mapFields","args","WithServerSideProps","config","disableAddingID","fieldSchema","filter","i18n","t","readOnly","readOnlyOverride","result","reduce","acc","field","fieldIsPresentational","CustomFieldComponent","admin","components","Field","CustomCellComponent","Cell","isHidden","hidden","disabled","isFieldAffectingData","path","AfterInput","Array","isArray","afterInput","map","Component","i","BeforeInput","beforeInput","label","undefined","labelProps","required","CustomLabelComponent","Label","CustomLabel","description","descriptionProps","CustomDescriptionComponent","Description","CustomDescription","errorProps","CustomErrorComponent","Error","CustomError","baseFieldProps","custom","fieldComponentProps","fieldOptions","options","option","value","cellComponentProps","fieldType","type","labels","relationTo","schemaPath","CustomRowLabel","RowLabel","CustomRowLabelComponent","arrayFieldProps","className","fieldMap","fields","isSortable","maxRows","minRows","style","width","blocks","block","blockFieldMap","slug","reducedBlock","imageAltText","imageURL","blocksField","b","checkboxField","codeField","editorOptions","language","CustomCollapsibleLabel","CustomCollapsibleLabelComponent","collapsibleField","initCollapsed","dateField","date","placeholder","dateDisplayFormat","displayFormat","emailField","groupField","hideGutter","jsonField","jsonSchema","numberField","hasMany","max","min","step","pointField","relationshipField","allowCreate","sortOptions","radioField","richTextField","editor","RichTextFieldComponent","FieldComponent","RichTextCellComponent","CellComponent","generateComponentMap","richTextComponentMap","rowField","tabs","tab","tabFieldMap","reducedTab","tabsField","textField","maxLength","minLength","textareaField","rows","uploadField","filterOptions","selectField","isClearable","reducedField","CustomCell","CustomField","disableBulkEdit","disableListColumn","disableListFilter","isSidebar","position","localized","unique","push","hasID","findIndex","f"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -22,8 +22,16 @@ export type ListQueryContext = Handlers & {
|
|
|
22
22
|
data: PaginatedDocs;
|
|
23
23
|
defaultLimit?: number;
|
|
24
24
|
defaultSort?: string;
|
|
25
|
+
refineListData: (args: RefineOverrides) => void;
|
|
25
26
|
};
|
|
26
27
|
export declare const useListQuery: () => ListQueryContext;
|
|
28
|
+
type RefineOverrides = {
|
|
29
|
+
limit?: string;
|
|
30
|
+
page?: string;
|
|
31
|
+
search?: string;
|
|
32
|
+
sort?: string;
|
|
33
|
+
where?: Where;
|
|
34
|
+
};
|
|
27
35
|
export declare const ListQueryProvider: React.FC<ListQueryProps>;
|
|
28
36
|
export {};
|
|
29
37
|
//# sourceMappingURL=index.d.ts.map
|