@payloadcms/ui 3.34.0-canary.5 → 3.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +2 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +5 -3
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +127 -302
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/Table/OrderableTable.js +0 -1
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js +102 -17
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
- 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 +23 -23
- package/dist/exports/client/index.js.map +4 -4
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +16 -0
- 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 +37 -54
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts +8 -9
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +50 -101
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +7 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +16 -5
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +1 -5
- package/dist/utilities/renderTable.js.map +1 -1
- package/package.json +4 -4
- package/dist/forms/Form/mergeErrorPaths.d.ts +0 -5
- package/dist/forms/Form/mergeErrorPaths.d.ts.map +0 -1
- package/dist/forms/Form/mergeErrorPaths.js +0 -30
- package/dist/forms/Form/mergeErrorPaths.js.map +0 -1
- package/dist/utilities/arraysHaveSameStrings.d.ts +0 -2
- package/dist/utilities/arraysHaveSameStrings.d.ts.map +0 -1
- package/dist/utilities/arraysHaveSameStrings.js +0 -17
- package/dist/utilities/arraysHaveSameStrings.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","lastRenderedPath","fieldPermissions","fieldState","fieldSchema","name","hasPermission","read","access","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","event","previousValue","initialValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","i","toHexString","idKey","value","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","undefined","previousRows","previousRow","prevRow","newRow","isLoading","collapsedRowIDsFromPrefs","collapsed","admin","initCollapsed","length","Promise","all","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","blockField","fieldKey","blockNameKey","blockName","collapsedRowIDs","groupSelect","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabSelect","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","tabPermissions","pathSegments","split","tabPassesCondition","condition","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n 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 Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n 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 renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = field.validate\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields,\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 const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\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 acc.rows.push(newRow)\n\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n const collapsed = (() => {\n if (previousRow) {\n return previousRow.collapsed ?? false\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })()\n\n if (collapsed) {\n acc.rows[acc.rows.length - 1].collapsed = collapsed\n }\n\n return acc\n },\n {\n promises: [],\n rows: undefined,\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const parentPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = parentPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\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 collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n const collapsed =\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id)\n\n if (collapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = collapsed\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // 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 renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n 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,\n parentSchemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n let tabSelect: SelectType | undefined\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n\n if (typeof select?.[tab.name] === 'object') {\n tabSelect = select?.[tab.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n const pathSegments = path ? path.split('.') : []\n\n // If passesCondition is false then this should always result to false\n // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result\n let tabPassesCondition = passesCondition\n\n if (passesCondition && typeof tab.admin?.condition === 'function') {\n tabPassesCondition = tab.admin.condition(fullData, data, {\n blockData,\n path: pathSegments,\n user: req.user,\n })\n }\n\n if (tab?.id) {\n state[tab.id] = {\n passesCondition: tabPassesCondition,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentPassesCondition: tabPassesCondition,\n parentPath: isNamedTab ? tabPath : parentPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldState = state[path]\n\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 (!fieldState) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState,\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\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","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","name","hasPermission","read","access","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","event","previousValue","initialValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","i","toHexString","idKey","value","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","undefined","previousRows","previousRow","prevRow","newRow","isLoading","collapsedRowIDsFromPrefs","collapsed","admin","initCollapsed","length","Promise","all","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","blockField","fieldKey","blockNameKey","blockName","collapsedRowIDs","groupSelect","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabSelect","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","tabPermissions","pathSegments","split","tabPassesCondition","condition","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n 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 Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n 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 renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n 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 if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = field.validate\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields,\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 const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\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 acc.rows.push(newRow)\n\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n const collapsed = (() => {\n if (previousRow) {\n return previousRow.collapsed ?? false\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })()\n\n if (collapsed) {\n acc.rows[acc.rows.length - 1].collapsed = collapsed\n }\n\n return acc\n },\n {\n promises: [],\n rows: undefined,\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const parentPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = parentPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\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 collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n const collapsed =\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id)\n\n if (collapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = collapsed\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // 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 renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n 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,\n parentSchemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n let tabSelect: SelectType | undefined\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n\n if (typeof select?.[tab.name] === 'object') {\n tabSelect = select?.[tab.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n const pathSegments = path ? path.split('.') : []\n\n // If passesCondition is false then this should always result to false\n // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result\n let tabPassesCondition = passesCondition\n\n if (passesCondition && typeof tab.admin?.condition === 'function') {\n tabPassesCondition = tab.admin.condition(fullData, data, {\n blockData,\n path: pathSegments,\n user: req.user,\n })\n }\n\n if (tab?.id) {\n state[tab.id] = {\n passesCondition: tabPassesCondition,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentPassesCondition: tabPassesCondition,\n parentPath: isNamedTab ? tabPath : parentPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (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 renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAEd,SAAS,EAET,cAAc,EACd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,KAAK,IAAI,GAAG;IACV;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;IAC3B;;;;OAIG;IACH,cAAc,EAAE,cAAc,GAAG,SAAS,CAAA;IAC1C,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC/B,WAAW,EAAE,0BAA0B,CAAA;IACvC,WAAW,EAAE,mBAAmB,CAAA;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAC7B;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,eAAO,MAAM,uBAAuB,uQAqBjC,IAAI,KAAG,OAAO,CAAC,SAAS,CAgE1B,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["calculateDefaultValues","iterateFields","fieldSchemasToFormState","id","clientFieldSchemaMap","collectionSlug","data","documentData","fields","fieldSchemaMap","initialBlockData","mockRSCs","operation","permissions","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipValidation","console","warn","length","state","dataWithDefaultValues","locale","siblingData","user","fullData","addErrorPathToParent","blockData","parentIndexPath","parentPassesCondition","parentPath","parentSchemaPath"],"sources":["../../../src/forms/fieldSchemasToFormState/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n} from 'payload'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { calculateDefaultValues } from './calculateDefaultValues/index.js'\nimport { iterateFields } from './iterateFields.js'\n\ntype Args = {\n /**\n * The client field schema map is required for field rendering.\n * If fields should not be rendered (=> `renderFieldFn` is not provided),\n * then the client field schema map is not required.\n */\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data?: Data\n /**\n * If this is undefined, the `data` passed to this function will serve as `fullData` and `data` when iterating over\n * the top-level-fields to generate form state.\n * For sub fields, the `data` will be narrowed down to the sub fields, while `fullData` remains the same.\n *\n * Usually, the `data` passed to this function will be the document data. This means that running validation, read access control\n * or executing filterOptions here will have access to the full document through the passed `fullData` parameter, and that `fullData` and `data` will be identical.\n *\n * In some cases however, this function is used to generate form state solely for sub fields - independent from the parent form state.\n * This means that `data` will be the form state of the sub fields - the document data won't be available here.\n *\n * In these cases, you can pass `documentData` which will be used as `fullData` instead of `data`.\n *\n * This is useful for lexical blocks, as lexical block fields there are not part of the parent form state, yet we still want\n * document data to be available for validation and filterOptions, under the `data` key.\n */\n documentData?: Data\n fields: Field[] | undefined\n /**\n * The field schema map is required for field rendering.\n * If fields should not be rendered (=> `renderFieldFn` is not provided),\n * then the field schema map is not required.\n */\n fieldSchemaMap: FieldSchemaMap | undefined\n id?: number | string\n /**\n * Validation, filterOptions and read access control will receive the `blockData`, which is the data of the nearest parent block. You can pass in\n * the initial block data here, which will be used as `blockData` for the top-level fields, until the first block is encountered.\n */\n initialBlockData?: Data\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n operation?: 'create' | 'update'\n permissions: SanitizedFieldsPermissions\n preferences: DocumentPreferences\n /**\n * Optionally accept the previous form state,\n * to be able to determine if custom fields need to be re-rendered.\n */\n previousFormState?: FormState\n /**\n * If renderAllFields is true, then no matter what is in previous form state,\n * all custom fields will be re-rendered.\n */\n renderAllFields: boolean\n renderFieldFn?: RenderFieldMethod\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n skipValidation?: boolean\n}\n\nexport const fieldSchemasToFormState = async ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data = {},\n documentData,\n fields,\n fieldSchemaMap,\n initialBlockData,\n mockRSCs,\n operation,\n permissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n}: Args): Promise<FormState> => {\n if (!clientFieldSchemaMap && renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to fieldSchemasToFormState - this will reduce performance',\n )\n }\n\n if (fields && fields.length) {\n const state: FormStateWithoutComponents = {}\n\n const dataWithDefaultValues = { ...data }\n\n await calculateDefaultValues({\n id,\n data: dataWithDefaultValues,\n fields,\n locale: req.locale,\n req,\n select,\n selectMode,\n siblingData: dataWithDefaultValues,\n user: req.user,\n })\n\n let fullData = dataWithDefaultValues\n\n if (documentData) {\n // By the time this function is used to get form state for nested forms, their default values should have already been calculated\n // => no need to run calculateDefaultValues here\n fullData = documentData\n }\n\n await iterateFields({\n id,\n addErrorPathToParent: null,\n blockData: initialBlockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: dataWithDefaultValues,\n fields,\n fieldSchemaMap,\n fullData,\n mockRSCs,\n operation,\n parentIndexPath: '',\n parentPassesCondition: true,\n parentPath: '',\n parentSchemaPath: schemaPath,\n permissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipValidation,\n state,\n })\n\n return state\n }\n\n return {}\n}\n\nexport { iterateFields }\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["calculateDefaultValues","iterateFields","fieldSchemasToFormState","id","clientFieldSchemaMap","collectionSlug","data","documentData","fields","fieldSchemaMap","initialBlockData","mockRSCs","operation","permissions","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipValidation","console","warn","length","state","dataWithDefaultValues","locale","siblingData","user","fullData","addErrorPathToParent","blockData","parentIndexPath","parentPassesCondition","parentPath","parentSchemaPath"],"sources":["../../../src/forms/fieldSchemasToFormState/index.tsx"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n} from 'payload'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { calculateDefaultValues } from './calculateDefaultValues/index.js'\nimport { iterateFields } from './iterateFields.js'\n\ntype Args = {\n /**\n * The client field schema map is required for field rendering.\n * If fields should not be rendered (=> `renderFieldFn` is not provided),\n * then the client field schema map is not required.\n */\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data?: Data\n /**\n * If this is undefined, the `data` passed to this function will serve as `fullData` and `data` when iterating over\n * the top-level-fields to generate form state.\n * For sub fields, the `data` will be narrowed down to the sub fields, while `fullData` remains the same.\n *\n * Usually, the `data` passed to this function will be the document data. This means that running validation, read access control\n * or executing filterOptions here will have access to the full document through the passed `fullData` parameter, and that `fullData` and `data` will be identical.\n *\n * In some cases however, this function is used to generate form state solely for sub fields - independent from the parent form state.\n * This means that `data` will be the form state of the sub fields - the document data won't be available here.\n *\n * In these cases, you can pass `documentData` which will be used as `fullData` instead of `data`.\n *\n * This is useful for lexical blocks, as lexical block fields there are not part of the parent form state, yet we still want\n * document data to be available for validation and filterOptions, under the `data` key.\n */\n documentData?: Data\n fields: Field[] | undefined\n /**\n * The field schema map is required for field rendering.\n * If fields should not be rendered (=> `renderFieldFn` is not provided),\n * then the field schema map is not required.\n */\n fieldSchemaMap: FieldSchemaMap | undefined\n id?: number | string\n /**\n * Validation, filterOptions and read access control will receive the `blockData`, which is the data of the nearest parent block. You can pass in\n * the initial block data here, which will be used as `blockData` for the top-level fields, until the first block is encountered.\n */\n initialBlockData?: Data\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n operation?: 'create' | 'update'\n permissions: SanitizedFieldsPermissions\n preferences: DocumentPreferences\n /**\n * Optionally accept the previous form state,\n * to be able to determine if custom fields need to be re-rendered.\n */\n previousFormState?: FormState\n /**\n * If renderAllFields is true, then no matter what is in previous form state,\n * all custom fields will be re-rendered.\n */\n renderAllFields: boolean\n renderFieldFn?: RenderFieldMethod\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n skipValidation?: boolean\n}\n\nexport const fieldSchemasToFormState = async ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data = {},\n documentData,\n fields,\n fieldSchemaMap,\n initialBlockData,\n mockRSCs,\n operation,\n permissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n}: Args): Promise<FormState> => {\n if (!clientFieldSchemaMap && renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to fieldSchemasToFormState - this will reduce performance',\n )\n }\n\n if (fields && fields.length) {\n const state: FormStateWithoutComponents = {}\n\n const dataWithDefaultValues = { ...data }\n\n await calculateDefaultValues({\n id,\n data: dataWithDefaultValues,\n fields,\n locale: req.locale,\n req,\n select,\n selectMode,\n siblingData: dataWithDefaultValues,\n user: req.user,\n })\n\n let fullData = dataWithDefaultValues\n\n if (documentData) {\n // By the time this function is used to get form state for nested forms, their default values should have already been calculated\n // => no need to run calculateDefaultValues here\n fullData = documentData\n }\n\n await iterateFields({\n id,\n addErrorPathToParent: null,\n blockData: initialBlockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: dataWithDefaultValues,\n fields,\n fieldSchemaMap,\n fullData,\n mockRSCs,\n operation,\n parentIndexPath: '',\n parentPassesCondition: true,\n parentPath: '',\n parentSchemaPath: schemaPath,\n permissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipValidation,\n state,\n })\n\n return state\n }\n\n return {}\n}\n\nexport { iterateFields }\n"],"mappings":"AAkBA,SAASA,sBAAsB,QAAQ;AACvC,SAASC,aAAa,QAAQ;AA+D9B,OAAO,MAAMC,uBAAA,GAA0B,MAAAA,CAAO;EAC5CC,EAAE;EACFC,oBAAoB;EACpBC,cAAc;EACdC,IAAA,GAAO,CAAC,CAAC;EACTC,YAAY;EACZC,MAAM;EACNC,cAAc;EACdC,gBAAgB;EAChBC,QAAQ;EACRC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,iBAAiB;EACjBC,eAAe;EACfC,aAAa;EACbC,GAAG;EACHC,UAAU;EACVC,MAAM;EACNC,UAAU;EACVC;AAAc,CACT;EACL,IAAI,CAAClB,oBAAA,IAAwBa,aAAA,EAAe;IAC1CM,OAAA,CAAQC,IAAI,CACV;EAEJ;EAEA,IAAIhB,MAAA,IAAUA,MAAA,CAAOiB,MAAM,EAAE;IAC3B,MAAMC,KAAA,GAAoC,CAAC;IAE3C,MAAMC,qBAAA,GAAwB;MAAE,GAAGrB;IAAK;IAExC,MAAMN,sBAAA,CAAuB;MAC3BG,EAAA;MACAG,IAAA,EAAMqB,qBAAA;MACNnB,MAAA;MACAoB,MAAA,EAAQV,GAAA,CAAIU,MAAM;MAClBV,GAAA;MACAE,MAAA;MACAC,UAAA;MACAQ,WAAA,EAAaF,qBAAA;MACbG,IAAA,EAAMZ,GAAA,CAAIY;IACZ;IAEA,IAAIC,QAAA,GAAWJ,qBAAA;IAEf,IAAIpB,YAAA,EAAc;MAChB;MACA;MACAwB,QAAA,GAAWxB,YAAA;IACb;IAEA,MAAMN,aAAA,CAAc;MAClBE,EAAA;MACA6B,oBAAA,EAAsB;MACtBC,SAAA,EAAWvB,gBAAA;MACXN,oBAAA;MACAC,cAAA;MACAC,IAAA,EAAMqB,qBAAA;MACNnB,MAAA;MACAC,cAAA;MACAsB,QAAA;MACApB,QAAA;MACAC,SAAA;MACAsB,eAAA,EAAiB;MACjBC,qBAAA,EAAuB;MACvBC,UAAA,EAAY;MACZC,gBAAA,EAAkBlB,UAAA;MAClBN,WAAA;MACAC,WAAA;MACAC,iBAAA;MACAC,eAAA;MACAC,aAAA;MACAC,GAAA;MACAE,MAAA;MACAC,UAAA;MACAC,cAAA;MACAI;IACF;IAEA,OAAOA,KAAA;EACT;EAEA,OAAO,CAAC;AACV;AAEA,SAASzB,aAAa","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/iterateFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,IAAI,WAAW,EACpB,cAAc,
|
|
1
|
+
{"version":3,"file":"iterateFields.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/iterateFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,IAAI,WAAW,EACpB,cAAc,EAEd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInD,KAAK,IAAI,GAAG;IACV,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,WAAW,EAAE,0BAA0B,CAAA;IACvC,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,CAAC,EAAE,0BAA0B,CAAA;CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,wdAgCvB,IAAI,KAAG,OAAO,CAAC,IAAI,CA8FrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iterateFields.js","names":["stripUnselectedFields","getFieldPaths","addFieldStatePromise","iterateFields","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","fields","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","mockRSCs","omitParents","operation","parentIndexPath","parentPassesCondition","parentPath","parentSchemaPath","permissions","preferences","previousFormState","renderAllFields","renderFieldFn","req","select","selectMode","skipConditionChecks","skipValidation","state","promises","forEach","field","fieldIndex","passesCondition","indexPath","path","schemaPath","index","shouldContinue","siblingDoc","pathSegments","split","Boolean","admin","condition","user","err","payload","logger","error","msg","push","parentPermissions","Promise","all"],"sources":["../../../src/forms/fieldSchemasToFormState/iterateFields.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field as FieldSchema,\n FieldSchemaMap,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n} from 'payload'\n\nimport { stripUnselectedFields } from 'payload'\nimport { getFieldPaths } from 'payload/shared'\n\nimport type { AddFieldStatePromiseArgs } from './addFieldStatePromise.js'\nimport type { RenderFieldMethod } from './types.js'\n\nimport { addFieldStatePromise } from './addFieldStatePromise.js'\n\ntype Args = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if any parents is localized, then the field is localized. @default false\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 fields: FieldSchema[]\n fieldSchemaMap: FieldSchemaMap\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id?: number | string\n /**\n * Whether the field schema should be included in the state. @default false\n */\n includeSchema?: boolean\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n /**\n * operation is only needed for validation\n */\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPassesCondition?: boolean\n parentPath: string\n parentSchemaPath: string\n permissions: SanitizedFieldsPermissions\n preferences?: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n req: PayloadRequest\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 */\nexport const iterateFields = async ({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n mockRSCs,\n omitParents = false,\n operation,\n parentIndexPath,\n parentPassesCondition = true,\n parentPath,\n parentSchemaPath,\n permissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn: renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state = {},\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field, fieldIndex) => {\n let passesCondition = true\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n if (path !== 'id') {\n const shouldContinue = stripUnselectedFields({\n field,\n select,\n selectMode,\n siblingDoc: data,\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n const pathSegments = path ? path.split('.') : []\n\n if (!skipConditionChecks) {\n try {\n passesCondition = Boolean(\n (field?.admin?.condition\n ? Boolean(\n field.admin.condition(fullData || {}, data || {}, {\n blockData,\n path: pathSegments,\n user: req.user,\n }),\n )\n : true) && parentPassesCondition,\n )\n } catch (err) {\n passesCondition = false\n\n req.payload.logger.error({\n err,\n msg: `Error evaluating field condition at path: ${path}`,\n })\n }\n }\n\n promises.push(\n addFieldStatePromise({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldIndex,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n indexPath,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath,\n parentPath,\n parentPermissions: permissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n })\n\n await Promise.all(promises)\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"iterateFields.js","names":["stripUnselectedFields","getFieldPaths","addFieldStatePromise","iterateFields","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","fields","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","mockRSCs","omitParents","operation","parentIndexPath","parentPassesCondition","parentPath","parentSchemaPath","permissions","preferences","previousFormState","renderAllFields","renderFieldFn","req","select","selectMode","skipConditionChecks","skipValidation","state","promises","forEach","field","fieldIndex","passesCondition","indexPath","path","schemaPath","index","shouldContinue","siblingDoc","pathSegments","split","Boolean","admin","condition","user","err","payload","logger","error","msg","push","parentPermissions","Promise","all"],"sources":["../../../src/forms/fieldSchemasToFormState/iterateFields.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field as FieldSchema,\n FieldSchemaMap,\n FieldState,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n} from 'payload'\n\nimport { stripUnselectedFields } from 'payload'\nimport { getFieldPaths } from 'payload/shared'\n\nimport type { AddFieldStatePromiseArgs } from './addFieldStatePromise.js'\nimport type { RenderFieldMethod } from './types.js'\n\nimport { addFieldStatePromise } from './addFieldStatePromise.js'\n\ntype Args = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if any parents is localized, then the field is localized. @default false\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 fields: FieldSchema[]\n fieldSchemaMap: FieldSchemaMap\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id?: number | string\n /**\n * Whether the field schema should be included in the state. @default false\n */\n includeSchema?: boolean\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n /**\n * operation is only needed for validation\n */\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPassesCondition?: boolean\n parentPath: string\n parentSchemaPath: string\n permissions: SanitizedFieldsPermissions\n preferences?: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n req: PayloadRequest\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 */\nexport const iterateFields = async ({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n mockRSCs,\n omitParents = false,\n operation,\n parentIndexPath,\n parentPassesCondition = true,\n parentPath,\n parentSchemaPath,\n permissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn: renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state = {},\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field, fieldIndex) => {\n let passesCondition = true\n\n const { indexPath, path, schemaPath } = getFieldPaths({\n field,\n index: fieldIndex,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath,\n parentSchemaPath,\n })\n\n if (path !== 'id') {\n const shouldContinue = stripUnselectedFields({\n field,\n select,\n selectMode,\n siblingDoc: data,\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n const pathSegments = path ? path.split('.') : []\n\n if (!skipConditionChecks) {\n try {\n passesCondition = Boolean(\n (field?.admin?.condition\n ? Boolean(\n field.admin.condition(fullData || {}, data || {}, {\n blockData,\n path: pathSegments,\n user: req.user,\n }),\n )\n : true) && parentPassesCondition,\n )\n } catch (err) {\n passesCondition = false\n\n req.payload.logger.error({\n err,\n msg: `Error evaluating field condition at path: ${path}`,\n })\n }\n }\n\n promises.push(\n addFieldStatePromise({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldIndex,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n indexPath,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath,\n parentPath,\n parentPermissions: permissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n })\n\n await Promise.all(promises)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -142,7 +142,7 @@ export const renderField = ({
|
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
|
-
* Set the lastRenderedPath equal to the new path of the field
|
|
145
|
+
* Set the `lastRenderedPath` equal to the new path of the field, this will prevent it from being rendered again
|
|
146
146
|
*/
|
|
147
147
|
fieldState.lastRenderedPath = path;
|
|
148
148
|
if (fieldIsHiddenOrDisabled(clientField)) {
|
|
@@ -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","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","renderAllFields","req","schemaPath","siblingData","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","readOnly","customComponents","includes","serverProps","user","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","admin","components","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","blockReferences","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","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 -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir\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 formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\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 = clientFieldSchemaMap\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: typeof permissions === 'boolean' ? !permissions : !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 }\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.blockReferences ?? 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\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 })}\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',\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',\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","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","renderAllFields","req","schemaPath","siblingData","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","readOnly","customComponents","includes","serverProps","user","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","admin","components","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","blockReferences","find","block","slug","Label","Object","keys","length","description","editor","Error","Field","_jsx","FieldComponent","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 -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir\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 formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\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 = clientFieldSchemaMap\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: typeof permissions === 'boolean' ? !permissions : !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 }\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.blockReferences ?? 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 })}\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',\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',\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":[]}
|