@payloadcms/ui 4.0.0-internal.0b9bec1 → 4.0.0-internal.167c7cd
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/css/app.css +121 -0
- package/dist/css/forms.css +0 -6
- package/dist/css/spacing.css +10 -3
- package/dist/css/z-index.css +1 -0
- package/dist/elements/AddNewRelation/index.css +0 -1
- package/dist/elements/AppHeader/index.css +0 -3
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +5 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/CodeEditor/index.css +0 -5
- package/dist/elements/CommandPalette/index.css +0 -7
- package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +4 -1
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +1 -0
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.css +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +16 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +2 -2
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
- package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
- package/dist/elements/FileManager/index.js +1 -0
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
- package/dist/elements/InputStepper/index.css +0 -1
- package/dist/elements/Locked/index.css +0 -8
- package/dist/elements/Locked/index.d.ts.map +1 -1
- package/dist/elements/Locked/index.js +70 -64
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.css +0 -5
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
- package/dist/elements/NavGroup/index.css +0 -1
- package/dist/elements/PreviewButton/index.d.ts +1 -2
- package/dist/elements/PreviewButton/index.d.ts.map +1 -1
- package/dist/elements/PreviewButton/index.js +11 -5
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.css +8 -9
- package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
- package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
- package/dist/elements/ReactSelect/index.css +0 -3
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +32 -0
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SelectRow/index.d.ts +4 -3
- package/dist/elements/SelectRow/index.d.ts.map +1 -1
- package/dist/elements/SelectRow/index.js +10 -7
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/SidebarToggle/index.css +0 -17
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +42 -38
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Tooltip/index.css +15 -34
- package/dist/elements/Tooltip/index.d.ts +11 -3
- package/dist/elements/Tooltip/index.d.ts.map +1 -1
- package/dist/elements/Tooltip/index.js +151 -85
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/index.css +0 -5
- package/dist/exports/client/index.d.ts +3 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +1 -1
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Checkbox/Input.d.ts +2 -0
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +32 -26
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.css +37 -73
- package/dist/fields/FieldError/index.css +0 -9
- package/dist/fields/FieldError/index.d.ts.map +1 -1
- package/dist/fields/FieldError/index.js +19 -9
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.css +0 -7
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +32 -14
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Slug/index.css +0 -1
- package/dist/fields/Slug/index.d.ts.map +1 -1
- package/dist/fields/Slug/index.js +80 -125
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +3 -1
- 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 +6 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/types.d.ts +1 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
- package/dist/forms/WatchChildErrors/index.js +2 -2
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +8 -2
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/providers/Embed/index.d.ts +24 -0
- package/dist/providers/Embed/index.d.ts.map +1 -0
- package/dist/providers/Embed/index.js +105 -0
- package/dist/providers/Embed/index.js.map +1 -0
- package/dist/providers/FormErrorHandler/index.d.ts +20 -0
- package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
- package/dist/providers/FormErrorHandler/index.js +6 -0
- package/dist/providers/FormErrorHandler/index.js.map +1 -0
- package/dist/providers/Root/index.d.ts +1 -0
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +33 -27
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/SidebarTabs/index.d.ts +3 -2
- package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
- package/dist/providers/SidebarTabs/index.js.map +1 -1
- package/dist/providers/Theme/index.d.ts +3 -0
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +107 -95
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/styles.css +12 -10
- package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
- package/dist/utilities/combineFieldLabel.js +5 -1
- package/dist/utilities/combineFieldLabel.js.map +1 -1
- package/dist/utilities/generateFieldID.d.ts +1 -1
- package/dist/utilities/generateFieldID.d.ts.map +1 -1
- package/dist/utilities/generateFieldID.js +2 -2
- package/dist/utilities/generateFieldID.js.map +1 -1
- package/dist/utilities/getRequestEmbed.d.ts +14 -0
- package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
- package/dist/utilities/getRequestEmbed.js +10 -0
- package/dist/utilities/getRequestEmbed.js.map +1 -0
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +18 -2
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/slugify.js +49 -6
- package/dist/utilities/slugify.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +0 -8
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +4 -0
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Logout/index.d.ts.map +1 -1
- package/dist/views/Logout/index.js +11 -0
- package/dist/views/Logout/index.js.map +1 -1
- package/package.json +5 -10
- package/dist/scss/app.scss +0 -183
- package/dist/scss/colors.scss +0 -191
- package/dist/scss/custom.css +0 -1
- package/dist/scss/queries.scss +0 -27
- package/dist/scss/styles.scss +0 -9
- package/dist/scss/svg.scss +0 -10
- package/dist/scss/toastify.scss +0 -61
- package/dist/scss/vars.scss +0 -192
- package/dist/scss/z-index.scss +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/Form/types.ts"],"sourcesContent":["import type {\n ClientField,\n Data,\n FormField,\n FormState,\n Row,\n User,\n ValidationFieldError,\n} from 'payload'\nimport type React from 'react'\nimport type { Dispatch } from 'react'\n\nimport type { AcceptValues } from './mergeServerFormState.js'\n\nexport type Preferences = {\n [key: string]: unknown\n}\n\nexport type FormOnSuccess<T = unknown, C = Record<string, unknown>> = (\n json: T,\n ctx?: {\n /**\n * Arbitrary context passed to the onSuccess callback.\n */\n context?: C\n /**\n * The form state that was sent with the request when retrieving the `json` arg.\n */\n formState?: FormState\n },\n) => Promise<FormState | void> | void\n\nexport type FormProps = {\n beforeSubmit?: ((args: { formState: FormState }) => Promise<FormState>)[]\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n disableSuccessStatus?: boolean\n /**\n * If you would like to solely leverage server-side validation on submit,\n * you can disable checks that the form makes before it submits\n */\n disableValidationOnSubmit?: boolean\n /**\n * If you don't want the form to be a <form> element, you can pass a string here to use as the wrapper element.\n */\n el?: string\n /**\n * By default, the form will get the field schema (not data) from the current document. If you pass this in, you can override that behavior.\n * This is very useful for sub-forms, where the form's field schema is not necessarily the field schema of the current document (e.g. for the Blocks\n * feature of the Lexical Rich Text field)\n */\n fields?: ClientField[]\n handleResponse?: (\n res: Response,\n successToast: (value: string) => void,\n errorToast: (value: string) => void,\n ) => void\n initialState?: FormState\n /**\n * Determines if this Form is the main, top-level Form of a document. If set to true, the\n * Form's children will be wrapped in a DocumentFormContext, which lets you access this document\n * Form's data and fields from any child component - even if that child component is wrapped in a child\n * Form (e.g. a lexical block).\n */\n isDocumentForm?: boolean\n isInitializing?: boolean\n log?: boolean\n onChange?: ((args: { formState: FormState; submitted?: boolean }) => Promise<FormState>)[]\n onSubmit?: (fields: FormState, data: Data) => void\n onSuccess?: FormOnSuccess\n redirect?: string\n submitted?: boolean\n uuid?: string\n validationOperation?: 'create' | 'update'\n waitForAutocomplete?: boolean\n} & (\n | {\n action: (formData: FormData) => Promise<void>\n }\n | {\n action?: string\n method?: 'DELETE' | 'GET' | 'PATCH' | 'POST'\n }\n)\n\nexport type SubmitOptions<C = Record<string, unknown>> = {\n acceptValues?: AcceptValues\n action?: string\n /**\n * If you want to pass additional data to the onSuccess callback, you can use this context object.\n *\n * @experimental This property is experimental and may change in the future.\n */\n context?: C\n /**\n * When true, will disable the form while it is processing.\n * @default true\n */\n disableFormWhileProcessing?: boolean\n /**\n * When true, will disable the success toast after form submission.\n * @default false\n */\n disableSuccessStatus?: boolean\n method?: string\n overrides?: ((formState) => FormData) | Record<string, unknown>\n /**\n * When true, will skip validation before submitting the form.\n * @default false\n */\n skipValidation?: boolean\n}\n\nexport type DispatchFields = React.Dispatch<any>\n\nexport type Submit = <T extends Response, C extends Record<string, unknown>>(\n options?: SubmitOptions<C>,\n e?: React.FormEvent<HTMLFormElement>,\n) => Promise</**\n * Returns the form state and the response from the server.\n *\n * @experimental - Note: the `{ res: ... }` return type is experimental and may change in the future. Use at your own risk.\n */\n{ formState?: FormState; res: T } | void>\n\nexport type ValidateForm = () => Promise<boolean>\n\nexport type CreateFormData = (\n overrides?: Record<string, unknown>,\n /**\n * If mergeOverrideData true, the data will be merged with the existing data in the form state.\n * @default true\n */\n options?: {\n /**\n * If provided, will use this instead of of derived data from the current form state.\n */\n data?: Data\n mergeOverrideData?: boolean\n },\n) => FormData | Promise<FormData>\n\nexport type GetFields = () => FormState\nexport type GetField = (path: string) => FormField\nexport type GetData = () => Data\nexport type GetSiblingData = (path: string) => Data\nexport type GetDataByPath = <T = unknown>(path: string) => T\nexport type SetModified = (modified: boolean) => void\nexport type SetSubmitted = (submitted: boolean) => void\nexport type SetProcessing = (processing: boolean) => void\n\nexport type Reset = (data: unknown) => Promise<void>\n\nexport type REPLACE_STATE = {\n optimize?: boolean\n /**\n * If `sanitize` is true, default values will be set for form field properties that are not present in the incoming state.\n * For example, `valid` will be set to true if it is not present in the incoming state.\n */\n sanitize?: boolean\n state: FormState\n type: 'REPLACE_STATE'\n}\n\nexport type REMOVE = {\n path: string\n type: 'REMOVE'\n}\n\nexport type MODIFY_CONDITION = {\n path: string\n result: boolean\n type: 'MODIFY_CONDITION'\n user: User\n}\n\nexport type UPDATE = {\n path: string\n type: 'UPDATE'\n} & Partial<FormField>\n\nexport type UPDATE_MANY = {\n formState: FormState\n type: 'UPDATE_MANY'\n}\n\nexport type REMOVE_ROW = {\n path: string\n rowIndex: number\n type: 'REMOVE_ROW'\n}\n\nexport type ADD_ROW = {\n blockType?: string\n path: string\n rowIndex?: number\n subFieldState?: FormState\n type: 'ADD_ROW'\n}\n\nexport type MERGE_SERVER_STATE = {\n acceptValues?: AcceptValues\n prevStateRef
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/Form/types.ts"],"sourcesContent":["import type {\n ClientField,\n Data,\n FormField,\n FormState,\n Row,\n User,\n ValidationFieldError,\n} from 'payload'\nimport type React from 'react'\nimport type { Dispatch } from 'react'\n\nimport type { AcceptValues } from './mergeServerFormState.js'\n\nexport type Preferences = {\n [key: string]: unknown\n}\n\nexport type FormOnSuccess<T = unknown, C = Record<string, unknown>> = (\n json: T,\n ctx?: {\n /**\n * Arbitrary context passed to the onSuccess callback.\n */\n context?: C\n /**\n * The form state that was sent with the request when retrieving the `json` arg.\n */\n formState?: FormState\n },\n) => Promise<FormState | void> | void\n\nexport type FormProps = {\n beforeSubmit?: ((args: { formState: FormState }) => Promise<FormState>)[]\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n disableSuccessStatus?: boolean\n /**\n * If you would like to solely leverage server-side validation on submit,\n * you can disable checks that the form makes before it submits\n */\n disableValidationOnSubmit?: boolean\n /**\n * If you don't want the form to be a <form> element, you can pass a string here to use as the wrapper element.\n */\n el?: string\n /**\n * By default, the form will get the field schema (not data) from the current document. If you pass this in, you can override that behavior.\n * This is very useful for sub-forms, where the form's field schema is not necessarily the field schema of the current document (e.g. for the Blocks\n * feature of the Lexical Rich Text field)\n */\n fields?: ClientField[]\n handleResponse?: (\n res: Response,\n successToast: (value: string) => void,\n errorToast: (value: string) => void,\n ) => void\n initialState?: FormState\n /**\n * Determines if this Form is the main, top-level Form of a document. If set to true, the\n * Form's children will be wrapped in a DocumentFormContext, which lets you access this document\n * Form's data and fields from any child component - even if that child component is wrapped in a child\n * Form (e.g. a lexical block).\n */\n isDocumentForm?: boolean\n isInitializing?: boolean\n log?: boolean\n onChange?: ((args: { formState: FormState; submitted?: boolean }) => Promise<FormState>)[]\n onSubmit?: (fields: FormState, data: Data) => void\n onSuccess?: FormOnSuccess\n redirect?: string\n submitted?: boolean\n uuid?: string\n validationOperation?: 'create' | 'update'\n waitForAutocomplete?: boolean\n} & (\n | {\n action: (formData: FormData) => Promise<void>\n }\n | {\n action?: string\n method?: 'DELETE' | 'GET' | 'PATCH' | 'POST'\n }\n)\n\nexport type SubmitOptions<C = Record<string, unknown>> = {\n acceptValues?: AcceptValues\n action?: string\n /**\n * If you want to pass additional data to the onSuccess callback, you can use this context object.\n *\n * @experimental This property is experimental and may change in the future.\n */\n context?: C\n /**\n * When true, will disable the form while it is processing.\n * @default true\n */\n disableFormWhileProcessing?: boolean\n /**\n * When true, will disable the success toast after form submission.\n * @default false\n */\n disableSuccessStatus?: boolean\n method?: string\n overrides?: ((formState) => FormData) | Record<string, unknown>\n /**\n * When true, will skip validation before submitting the form.\n * @default false\n */\n skipValidation?: boolean\n}\n\nexport type DispatchFields = React.Dispatch<any>\n\nexport type Submit = <T extends Response, C extends Record<string, unknown>>(\n options?: SubmitOptions<C>,\n e?: React.FormEvent<HTMLFormElement>,\n) => Promise</**\n * Returns the form state and the response from the server.\n *\n * @experimental - Note: the `{ res: ... }` return type is experimental and may change in the future. Use at your own risk.\n */\n{ formState?: FormState; res: T } | void>\n\nexport type ValidateForm = () => Promise<boolean>\n\nexport type CreateFormData = (\n overrides?: Record<string, unknown>,\n /**\n * If mergeOverrideData true, the data will be merged with the existing data in the form state.\n * @default true\n */\n options?: {\n /**\n * If provided, will use this instead of of derived data from the current form state.\n */\n data?: Data\n mergeOverrideData?: boolean\n },\n) => FormData | Promise<FormData>\n\nexport type GetFields = () => FormState\nexport type GetField = (path: string) => FormField\nexport type GetData = () => Data\nexport type GetSiblingData = (path: string) => Data\nexport type GetDataByPath = <T = unknown>(path: string) => T\nexport type SetModified = (modified: boolean) => void\nexport type SetSubmitted = (submitted: boolean) => void\nexport type SetProcessing = (processing: boolean) => void\n\nexport type Reset = (data: unknown) => Promise<void>\n\nexport type REPLACE_STATE = {\n optimize?: boolean\n /**\n * If `sanitize` is true, default values will be set for form field properties that are not present in the incoming state.\n * For example, `valid` will be set to true if it is not present in the incoming state.\n */\n sanitize?: boolean\n state: FormState\n type: 'REPLACE_STATE'\n}\n\nexport type REMOVE = {\n path: string\n type: 'REMOVE'\n}\n\nexport type MODIFY_CONDITION = {\n path: string\n result: boolean\n type: 'MODIFY_CONDITION'\n user: User\n}\n\nexport type UPDATE = {\n path: string\n type: 'UPDATE'\n} & Partial<FormField>\n\nexport type UPDATE_MANY = {\n formState: FormState\n type: 'UPDATE_MANY'\n}\n\nexport type REMOVE_ROW = {\n path: string\n rowIndex: number\n type: 'REMOVE_ROW'\n}\n\nexport type ADD_ROW = {\n blockType?: string\n path: string\n rowIndex?: number\n subFieldState?: FormState\n type: 'ADD_ROW'\n}\n\nexport type MERGE_SERVER_STATE = {\n acceptValues?: AcceptValues\n prevStateRef?: React.RefObject<FormState>\n serverState: FormState\n type: 'MERGE_SERVER_STATE'\n}\n\nexport type REPLACE_ROW = {\n blockType?: string\n path: string\n rowIndex: number\n subFieldState?: FormState\n type: 'REPLACE_ROW'\n}\n\nexport type DUPLICATE_ROW = {\n path: string\n rowIndex: number\n type: 'DUPLICATE_ROW'\n}\n\nexport type MOVE_ROW = {\n moveFromIndex: number\n moveToIndex: number\n path: string\n type: 'MOVE_ROW'\n}\n\nexport type ADD_SERVER_ERRORS = {\n errors: ValidationFieldError[]\n type: 'ADD_SERVER_ERRORS'\n}\n\nexport type SET_ROW_COLLAPSED = {\n path: string\n type: 'SET_ROW_COLLAPSED'\n updatedRows: Row[]\n}\n\nexport type SET_ALL_ROWS_COLLAPSED = {\n path: string\n type: 'SET_ALL_ROWS_COLLAPSED'\n updatedRows: Row[]\n}\n\nexport type FieldAction =\n | ADD_ROW\n | ADD_SERVER_ERRORS\n | DUPLICATE_ROW\n | MERGE_SERVER_STATE\n | MODIFY_CONDITION\n | MOVE_ROW\n | REMOVE\n | REMOVE_ROW\n | REPLACE_ROW\n | REPLACE_STATE\n | SET_ALL_ROWS_COLLAPSED\n | SET_ROW_COLLAPSED\n | UPDATE\n | UPDATE_MANY\n\nexport type FormFieldsContext = [FormState, Dispatch<FieldAction>]\n\nexport type Context = {\n addFieldRow: ({\n blockType,\n path,\n rowIndex,\n schemaPath,\n subFieldState,\n }: {\n blockType?: string\n path: string\n rowIndex?: number\n schemaPath: string\n subFieldState?: FormState\n }) => void\n buildRowErrors: () => void\n createFormData: CreateFormData\n disabled: boolean\n dispatchFields: Dispatch<FieldAction>\n /**\n * Form context fields may be outdated and should not be relied on. Instead, prefer `useFormFields`.\n */\n fields: FormState\n formRef: React.RefObject<HTMLFormElement>\n getData: GetData\n getDataByPath: GetDataByPath\n getField: GetField\n getFields: GetFields\n getSiblingData: GetSiblingData\n initializing: boolean\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n isValid: boolean\n moveFieldRow: ({\n moveFromIndex,\n moveToIndex,\n path,\n }: {\n moveFromIndex: number\n moveToIndex: number\n path: string\n }) => void\n removeFieldRow: ({ path, rowIndex }: { path: string; rowIndex: number }) => void\n replaceFieldRow: ({\n blockType,\n path,\n rowIndex,\n schemaPath,\n subFieldState,\n }: {\n blockType?: string\n path: string\n rowIndex: number\n schemaPath: string\n subFieldState?: FormState\n }) => void\n replaceState: (state: FormState) => void\n reset: Reset\n /**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\n setBackgroundProcessing: SetProcessing\n setDisabled: (disabled: boolean) => void\n setIsValid: (processing: boolean) => void\n setModified: SetModified\n setProcessing: SetProcessing\n setSubmitted: SetSubmitted\n submit: Submit\n uuid?: string\n validateForm: ValidateForm\n}\n"],"mappings":"AAwQA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/WatchChildErrors/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,KAAK,6BAA6B,GAAG;IACnC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB;;;;;OAKG;IACH,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC,CAAA;AACD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/WatchChildErrors/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,KAAK,6BAA6B,GAAG;IACnC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB;;;;;OAKG;IACH,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC,CAAA;AACD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAgDpE,CAAA"}
|
|
@@ -25,8 +25,8 @@ export const WatchChildErrors = t0 => {
|
|
|
25
25
|
let t2;
|
|
26
26
|
if ($[2] !== formState || $[3] !== hasSubmitted || $[4] !== parentPath || $[5] !== segmentsToMatch || $[6] !== setErrorCount) {
|
|
27
27
|
t2 = () => {
|
|
28
|
+
let errorCount = 0;
|
|
28
29
|
if (hasSubmitted) {
|
|
29
|
-
let errorCount = 0;
|
|
30
30
|
Object.entries(formState).forEach(t3 => {
|
|
31
31
|
const [key] = t3;
|
|
32
32
|
const matchingSegment = segmentsToMatch?.some(segment => {
|
|
@@ -45,8 +45,8 @@ export const WatchChildErrors = t0 => {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
-
setErrorCount(errorCount);
|
|
49
48
|
}
|
|
49
|
+
setErrorCount(errorCount);
|
|
50
50
|
};
|
|
51
51
|
$[2] = formState;
|
|
52
52
|
$[3] = hasSubmitted;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useThrottledEffect","useAllFormFields","useFormSubmitted","buildPathSegments","WatchChildErrors","t0","$","fields","path","parentPath","setErrorCount","formState","hasSubmitted","t1","segmentsToMatch","t2","errorCount","Object","entries","forEach","t3","key","matchingSegment","some","segment","segmentToMatch","join","endsWith","pathWithoutDot","slice","startsWith","pathState","valid"],"sources":["../../../src/forms/WatchChildErrors/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\nimport type React from 'react'\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAllFormFields, useFormSubmitted } from '../Form/context.js'\nimport { buildPathSegments } from './buildPathSegments.js'\n\ntype TrackSubSchemaErrorCountProps = {\n fields?: ClientField[]\n /**\n * This path should only include path segments that affect data\n * i.e. it should not include _index-0 type segments\n *\n * For collapsibles and tabs you can simply pass their parent path\n */\n path: (number | string)[]\n setErrorCount: (count: number) => void\n}\nexport const WatchChildErrors: React.FC<TrackSubSchemaErrorCountProps> = ({\n fields,\n path: parentPath,\n setErrorCount,\n}) => {\n const [formState] = useAllFormFields()\n const hasSubmitted = useFormSubmitted()\n\n const segmentsToMatch = buildPathSegments(fields)\n\n useThrottledEffect(\n () => {\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useThrottledEffect","useAllFormFields","useFormSubmitted","buildPathSegments","WatchChildErrors","t0","$","fields","path","parentPath","setErrorCount","formState","hasSubmitted","t1","segmentsToMatch","t2","errorCount","Object","entries","forEach","t3","key","matchingSegment","some","segment","segmentToMatch","join","endsWith","pathWithoutDot","slice","startsWith","pathState","valid"],"sources":["../../../src/forms/WatchChildErrors/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\nimport type React from 'react'\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAllFormFields, useFormSubmitted } from '../Form/context.js'\nimport { buildPathSegments } from './buildPathSegments.js'\n\ntype TrackSubSchemaErrorCountProps = {\n fields?: ClientField[]\n /**\n * This path should only include path segments that affect data\n * i.e. it should not include _index-0 type segments\n *\n * For collapsibles and tabs you can simply pass their parent path\n */\n path: (number | string)[]\n setErrorCount: (count: number) => void\n}\nexport const WatchChildErrors: React.FC<TrackSubSchemaErrorCountProps> = ({\n fields,\n path: parentPath,\n setErrorCount,\n}) => {\n const [formState] = useAllFormFields()\n const hasSubmitted = useFormSubmitted()\n\n const segmentsToMatch = buildPathSegments(fields)\n\n useThrottledEffect(\n () => {\n // Errors are only surfaced after a submit attempt. Once the form is no longer\n // submitted (e.g. after a successful save resets the submitted flag), reset the\n // count to 0 so stale error indicators don't linger on the tab.\n let errorCount = 0\n\n if (hasSubmitted) {\n Object.entries(formState).forEach(([key]) => {\n const matchingSegment = segmentsToMatch?.some((segment) => {\n const segmentToMatch = [...parentPath, segment].join('.')\n // match fields with same parent path\n if (segmentToMatch.endsWith('.')) {\n // Match both nested fields (key starts with segmentToMatch)\n // and the field itself (key equals segmentToMatch without trailing dot)\n const pathWithoutDot = segmentToMatch.slice(0, -1)\n return key.startsWith(segmentToMatch) || key === pathWithoutDot\n }\n // match fields with same path\n return key === segmentToMatch\n })\n\n if (matchingSegment) {\n const pathState = formState[key]\n if ('valid' in pathState && !pathState.valid) {\n errorCount += 1\n }\n }\n })\n }\n\n setErrorCount(errorCount)\n },\n 250,\n [formState, hasSubmitted, fields],\n )\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,kBAAkB,QAAQ;AACnC,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ;AACnD,SAASC,iBAAiB,QAAQ;AAalC,OAAO,MAAMC,gBAAA,GAA4DC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,MAAA;IAAAC,IAAA,EAAAC,UAAA;IAAAC;EAAA,IAAAL,EAIzE;EACC,OAAAM,SAAA,IAAoBV,gBAAA;EACpB,MAAAW,YAAA,GAAqBV,gBAAA;EAAA,IAAAW,EAAA;EAAA,IAAAP,CAAA,QAAAC,MAAA;IAEGM,EAAA,GAAAV,iBAAA,CAAkBI,MAAA;IAAAD,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA1C,MAAAQ,eAAA,GAAwBD,EAAkB;EAAA,IAAAE,EAAA;EAAA,IAAAT,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAM,YAAA,IAAAN,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAQ,eAAA,IAAAR,CAAA,QAAAI,aAAA;IAGxCK,EAAA,GAAAA,CAAA;MAIE,IAAAC,UAAA;MAAiB,IAEbJ,YAAA;QACFK,MAAA,CAAAC,OAAA,CAAeP,SAAA,EAAAQ,OAAA,CAAAC,EAAA;UAAoB,OAAAC,GAAA,IAAAD,EAAK;UACtC,MAAAE,eAAA,GAAwBR,eAAA,EAAAS,IAAA,CAAAC,OAAA;YACtB,MAAAC,cAAA,GAAuB,IAAIhB,UAAA,EAAYe,OAAA,EAAAE,IAAA,CAAc;YAAA,IAEjDD,cAAA,CAAAE,QAAA,CAAwB;cAG1B,MAAAC,cAAA,GAAuBH,cAAA,CAAAI,KAAA,MAAyB;cAAA,OACzCR,GAAA,CAAAS,UAAA,CAAeL,cAAA,KAAmBJ,GAAA,KAAQO,cAAA;YAAA;YAAA,OAG5CP,GAAA,KAAQI,cAAA;UAAA;UACjB,IAEIH,eAAA;YACF,MAAAS,SAAA,GAAkBpB,SAAS,CAACU,GAAA;YAAI,IAC5B,WAAWU,SAAA,KAAcA,SAAA,CAAAC,KAAe;cAC1ChB,UAAA,GAAAA,UAAA,IAAc;cAAdA,UAAA;YAAA;UAAA;QAAA,CAGN;MAAA;MAGFN,aAAA,CAAcM,UAAA;IAAA;IAChBV,CAAA,MAAAK,SAAA;IAAAL,CAAA,MAAAM,YAAA;IAAAN,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAQ,eAAA;IAAAR,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAA,IAAAc,EAAA;EAAA,IAAAd,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAK,SAAA,IAAAL,CAAA,SAAAM,YAAA;IAEAQ,EAAA,IAACT,SAAA,EAAWC,YAAA,EAAcL,MAAA;IAAOD,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAK,SAAA;IAAAL,CAAA,OAAAM,YAAA;IAAAN,CAAA,OAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAlCnCN,kBAAA,CACEe,EA+BA,OAEAK,EAAiC;EAAA;AAAA,CAIrC","ignoreList":[]}
|
|
@@ -545,7 +545,7 @@ export const addFieldStatePromise = async args => {
|
|
|
545
545
|
case 'select':
|
|
546
546
|
{
|
|
547
547
|
if (typeof field.filterOptions === 'function') {
|
|
548
|
-
fieldState.selectFilterOptions = field.filterOptions({
|
|
548
|
+
fieldState.selectFilterOptions = await field.filterOptions({
|
|
549
549
|
data: fullData,
|
|
550
550
|
options: field.options,
|
|
551
551
|
req,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","tabHasName","resolveFilterOptions","isRowCollapsed","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","globalSlug","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","readOnly","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","isPresentationalWithSubFields","type","name","undefined","value","initialValue","hasPermission","read","access","collection","payload","collections","config","global","globals","find","g","slug","siblingData","validate","validationResult","jsonError","JSON","parse","e","event","previousValue","err","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","rowIndex","rowPath","toHexString","idKey","fields","localized","parentIndexPath","parentPassesCondition","permissions","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","i","blockTypeToMatch","blockType","block","blocks","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","isNamedTab","shouldContinue","siblingDoc","childPermissions","tabSelect","tabPermissions","tabs","tab","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field | TabAsField\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n globalSlug?: string\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n globalSlug,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n // Short-circuit hidden fields to prevent recursing and rendering. Two exclusions:\n // - `tab`: visibility is keyed by `field.id` (not `path`); the tab branch owns that write.\n // - presentational containers (row, collapsible, unnamed group): they hold no value, so\n // returning here drops their nested fields' values.\n const isPresentationalWithSubFields = fieldHasSubFields(field) && !fieldAffectsData(field)\n\n if (passesCondition === false && field.type !== 'tab' && !isPresentationalWithSubFields) {\n if (fieldAffectsData(field) && data?.[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n return\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field) && field.type !== 'tab') {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n const collection = collectionSlug\n ? (req.payload.collections[collectionSlug]?.config ?? null)\n : null\n const global = globalSlug\n ? (req.payload.globals.config.find((g) => g.slug === globalSlug) ?? null)\n : null\n\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n ...(collection ? { collection } : { global }),\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = 'validate' in field ? field.validate : undefined\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, rowIndex: number) => {\n const rowPath = path + '.' + rowIndex\n\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: Awaited<\n ReturnType<typeof validateBlocksFilterOptions>\n > | null = null\n if (field.filterOptions) {\n filterOptionsValidationResult = await validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const rowPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = rowPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = rowPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n // Presentational containers are hidden client-side via `withCondition`, which reads\n // `passesCondition` from their own state entry. Must be set here since these fields\n // are excluded from the short-circuit above (which would otherwise carry the flag).\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n mockRSCs,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tab') {\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: { ...field, type: 'tab' },\n select,\n selectMode,\n siblingDoc: data?.[field.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n // Tab visibility on the client is keyed by `field.id`, not `path` (like all other fields).\n if (field?.id) {\n state[field.id] = {\n passesCondition,\n }\n\n // Flag newly added tab entries so the client accepts them during merge.\n // Otherwise, tabs revealed after a hidden ancestor becomes visible would never make it into client form state.\n if (!renderAllFields && !previousFormState?.[field.id]) {\n state[field.id].addedByServer = true\n }\n }\n\n if (!passesCondition) {\n return\n }\n\n let childPermissions: SanitizedFieldsPermissions\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[field.name]\n childPermissions = tabPermissions === true ? true : tabPermissions?.fields\n }\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[field.name] || {} : data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","tabHasName","resolveFilterOptions","isRowCollapsed","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","globalSlug","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","readOnly","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","isPresentationalWithSubFields","type","name","undefined","value","initialValue","hasPermission","read","access","collection","payload","collections","config","global","globals","find","g","slug","siblingData","validate","validationResult","jsonError","JSON","parse","e","event","previousValue","err","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","rowIndex","rowPath","toHexString","idKey","fields","localized","parentIndexPath","parentPassesCondition","permissions","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","i","blockTypeToMatch","blockType","block","blocks","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","isNamedTab","shouldContinue","siblingDoc","childPermissions","tabSelect","tabPermissions","tabs","tab","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field | TabAsField\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n globalSlug?: string\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n globalSlug,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n // Short-circuit hidden fields to prevent recursing and rendering. Two exclusions:\n // - `tab`: visibility is keyed by `field.id` (not `path`); the tab branch owns that write.\n // - presentational containers (row, collapsible, unnamed group): they hold no value, so\n // returning here drops their nested fields' values.\n const isPresentationalWithSubFields = fieldHasSubFields(field) && !fieldAffectsData(field)\n\n if (passesCondition === false && field.type !== 'tab' && !isPresentationalWithSubFields) {\n if (fieldAffectsData(field) && data?.[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n return\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field) && field.type !== 'tab') {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n const collection = collectionSlug\n ? (req.payload.collections[collectionSlug]?.config ?? null)\n : null\n const global = globalSlug\n ? (req.payload.globals.config.find((g) => g.slug === globalSlug) ?? null)\n : null\n\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n ...(collection ? { collection } : { global }),\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = 'validate' in field ? field.validate : undefined\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, rowIndex: number) => {\n const rowPath = path + '.' + rowIndex\n\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: Awaited<\n ReturnType<typeof validateBlocksFilterOptions>\n > | null = null\n if (field.filterOptions) {\n filterOptionsValidationResult = await validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const rowPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = rowPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = rowPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = await field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n // Presentational containers are hidden client-side via `withCondition`, which reads\n // `passesCondition` from their own state entry. Must be set here since these fields\n // are excluded from the short-circuit above (which would otherwise carry the flag).\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n mockRSCs,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tab') {\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: { ...field, type: 'tab' },\n select,\n selectMode,\n siblingDoc: data?.[field.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n // Tab visibility on the client is keyed by `field.id`, not `path` (like all other fields).\n if (field?.id) {\n state[field.id] = {\n passesCondition,\n }\n\n // Flag newly added tab entries so the client accepts them during merge.\n // Otherwise, tabs revealed after a hidden ancestor becomes visible would never make it into client form state.\n if (!renderAllFields && !previousFormState?.[field.id]) {\n state[field.id].addedByServer = true\n }\n }\n\n if (!passesCondition) {\n return\n }\n\n let childPermissions: SanitizedFieldsPermissions\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[field.name]\n childPermissions = tabPermissions === true ? true : tabPermissions?.fields\n }\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[field.name] || {} : data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAcnD,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAcnD,eAAO,MAAM,WAAW,EAAE,iBAsXzB,CAAA"}
|
|
@@ -31,9 +31,7 @@ export const renderField = ({
|
|
|
31
31
|
schemaPath,
|
|
32
32
|
siblingData
|
|
33
33
|
}) => {
|
|
34
|
-
|
|
35
|
-
const hasBeforeOrAfterInput = fieldConfig.admin?.components && ('beforeInput' in fieldConfig.admin.components || 'afterInput' in fieldConfig.admin.components);
|
|
36
|
-
const requiresRender = renderAllFields || !lastRenderedPath || lastRenderedPath !== path || hasBeforeOrAfterInput;
|
|
34
|
+
const requiresRender = renderAllFields || !lastRenderedPath || lastRenderedPath !== path;
|
|
37
35
|
if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {
|
|
38
36
|
return;
|
|
39
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","hasBeforeOrAfterInput","admin","components","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","sanitizedEditorConfig","editorConfig","undefined","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n FlattenedBlock,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n // Fields with beforeInput/afterInput need custom components created, so they require render\n const hasBeforeOrAfterInput =\n fieldConfig.admin?.components &&\n ('beforeInput' in fieldConfig.admin.components || 'afterInput' in fieldConfig.admin.components)\n\n const requiresRender =\n renderAllFields || !lastRenderedPath || lastRenderedPath !== path || hasBeforeOrAfterInput\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n (fieldConfig.blocks.find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.rows[rowIndex]?.customComponents) {\n fieldState.rows[rowIndex].customComponents = {}\n }\n\n fieldState.rows[rowIndex].customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n }\n\n if (!requiresRender) {\n return\n }\n\n /**\n * Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again\n */\n fieldState.lastRenderedPath = path\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n // Manually inject lexical-specific `sanitizedEditorConfig` server prop, in order to reduce the size of the field schema.\n // Otherwise, the editorConfig would be included twice - once on the top-level, and once as part of the `FieldComponent` server props.\n sanitizedEditorConfig:\n 'editorConfig' in fieldConfig.editor ? fieldConfig.editor.editorConfig : undefined,\n },\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n : 'Mock'\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = !mockRSCs ? (\n <FieldDescription\n description={fieldConfig.admin?.description({\n i18n: req.i18n,\n t: req.i18n.t,\n })}\n path={path}\n />\n ) : (\n 'Mock'\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.afterInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.beforeInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","admin","components","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","sanitizedEditorConfig","editorConfig","undefined","Description","t","AfterInput","afterInput","BeforeInput","beforeInput"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n FlattenedBlock,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, MissingEditorProp } from 'payload'\nimport { fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n const requiresRender = renderAllFields || !lastRenderedPath || lastRenderedPath !== path\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n (fieldConfig.blocks.find(\n (block) => typeof block !== 'string' && block.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (blockConfig.admin?.components && 'Label' in blockConfig.admin.components) {\n if (!fieldState.rows[rowIndex]?.customComponents) {\n fieldState.rows[rowIndex].customComponents = {}\n }\n\n fieldState.rows[rowIndex].customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: blockConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n blockType: row.blockType,\n rowLabel: `${getTranslation(blockConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n }\n\n if (!requiresRender) {\n return\n }\n\n /**\n * Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again\n */\n fieldState.lastRenderedPath = path\n\n if (fieldIsHiddenOrDisabled(clientField)) {\n return\n }\n\n /**\n * Only create the `customComponents` object if needed.\n * This will prevent unnecessary data from being transferred to the client.\n */\n if (fieldConfig.admin) {\n if (\n (Object.keys(fieldConfig.admin.components || {}).length > 0 ||\n fieldConfig.type === 'richText' ||\n ('description' in fieldConfig.admin &&\n typeof fieldConfig.admin.description === 'function')) &&\n !fieldState?.customComponents\n ) {\n fieldState.customComponents = {}\n }\n }\n\n switch (fieldConfig.type) {\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.editor.FieldComponent,\n importMap: req.payload.importMap,\n serverProps: {\n ...serverProps,\n // Manually inject lexical-specific `sanitizedEditorConfig` server prop, in order to reduce the size of the field schema.\n // Otherwise, the editorConfig would be included twice - once on the top-level, and once as part of the `FieldComponent` server props.\n sanitizedEditorConfig:\n 'editorConfig' in fieldConfig.editor ? fieldConfig.editor.editorConfig : undefined,\n },\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n\n const Component = fieldConfig.admin.components[key]\n\n fieldState.customComponents[key] = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component,\n importMap: req.payload.importMap,\n key: `field.admin.components.${key}`,\n serverProps,\n })\n : 'Mock'\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if (\n 'description' in fieldConfig.admin &&\n typeof fieldConfig.admin?.description === 'function'\n ) {\n fieldState.customComponents.Description = !mockRSCs ? (\n <FieldDescription\n description={fieldConfig.admin?.description({\n i18n: req.i18n,\n t: req.i18n.t,\n })}\n path={path}\n />\n ) : (\n 'Mock'\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.afterInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.afterInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.beforeInput,\n importMap: req.payload.importMap,\n key: `field.admin.components.beforeInput.${path}`,\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Description,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Description',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Error,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Error',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Label,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Label',\n serverProps,\n })\n : 'Mock'\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = !mockRSCs ? (\n <WatchCondition path={path}>\n {RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.Field,\n importMap: req.payload.importMap,\n key: 'field.admin.components.Field',\n serverProps,\n })}\n </WatchCondition>\n ) : (\n 'Mock'\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ImportMap, SanitizedConfig, ServerAdapter, ServerFunctionClient } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { type CheckDependenciesArgs } from '../../utilities/checkDependencies.js';
|
|
4
|
-
import '@payloadcms/ui/
|
|
4
|
+
import '@payloadcms/ui/css/app.css';
|
|
5
5
|
type Font = {
|
|
6
6
|
className?: string;
|
|
7
7
|
variable?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,eAAe,EACf,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,eAAe,EACf,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAUpG,OAAO,4BAA4B,CAAA;AAEnC,KAAK,IAAI,GAAG;IACV,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,QAAQ;IACnB,WAAW;IACX,KAAK;CACN,CAAA;AAED,KAAK,eAAe,GAAG;IACrB;;;;OAIG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,qBAAqB,CAAA;IAC3D,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACvB;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAA;IAC9D,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAA;IAC/D;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,UAAU,UAAW,eAAe,sBAUhD,CAAA"}
|
|
@@ -7,13 +7,14 @@ import { ProgressBar, RootProvider } from '../../exports/client/index.js';
|
|
|
7
7
|
import { checkDependencies } from '../../utilities/checkDependencies.js';
|
|
8
8
|
import { getClientConfig } from '../../utilities/getClientConfig.js';
|
|
9
9
|
import { getLanguageDir } from '../../utilities/getLanguageDir.js';
|
|
10
|
+
import { getRequestEmbed } from '../../utilities/getRequestEmbed.js';
|
|
10
11
|
import { getRequestHighContrast } from '../../utilities/getRequestHighContrast.js';
|
|
11
12
|
import { getRequestTheme } from '../../utilities/getRequestTheme.js';
|
|
12
13
|
import { initReq } from '../../utilities/initReq.js';
|
|
13
14
|
import { NestProviders } from './NestProviders.js';
|
|
14
15
|
import { getViewportMeta } from './viewport.js';
|
|
15
|
-
// eslint-disable-next-line payload/no-imports-from-self -- Self-import via package path ensures consumer's bundler resolves the full
|
|
16
|
-
import '@payloadcms/ui/
|
|
16
|
+
// eslint-disable-next-line payload/no-imports-from-self -- Self-import via package path ensures consumer's bundler resolves the full CSS chain (design tokens, preflight, etc.) in prod builds
|
|
17
|
+
import '@payloadcms/ui/css/app.css';
|
|
17
18
|
export const metadata = {
|
|
18
19
|
description: 'Generated by Next.js',
|
|
19
20
|
title: 'Next.js'
|
|
@@ -72,6 +73,10 @@ const RootLayoutContent = async ({
|
|
|
72
73
|
const dir = getLanguageDir({
|
|
73
74
|
languageCode
|
|
74
75
|
});
|
|
76
|
+
const embed = getRequestEmbed({
|
|
77
|
+
config,
|
|
78
|
+
cookies
|
|
79
|
+
});
|
|
75
80
|
const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
|
|
76
81
|
if (Object.keys(config.i18n.supportedLanguages).includes(language)) {
|
|
77
82
|
acc.push({
|
|
@@ -111,6 +116,7 @@ const RootLayoutContent = async ({
|
|
|
111
116
|
children: [/*#__PURE__*/_jsxs(RootProvider, {
|
|
112
117
|
config: clientConfig,
|
|
113
118
|
dateFNSKey: req.i18n.dateFNSKey,
|
|
119
|
+
embed: embed,
|
|
114
120
|
fallbackLang: config.i18n.fallbackLanguage,
|
|
115
121
|
highContrastMode: highContrastMode,
|
|
116
122
|
isNavOpen: navPrefs?.open ?? true,
|