@payloadcms/ui 3.57.0-internal.f26caed → 3.57.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.
Files changed (145) hide show
  1. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FileSidebar/index.js +74 -38
  3. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FileSidebar/index.scss +14 -1
  5. package/dist/elements/BulkUpload/FormsManager/index.d.ts +6 -1
  6. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.js +52 -14
  8. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +2 -2
  10. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/reducer.js +5 -5
  12. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  13. package/dist/elements/BulkUpload/index.d.ts +30 -5
  14. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  15. package/dist/elements/BulkUpload/index.js +130 -28
  16. package/dist/elements/BulkUpload/index.js.map +1 -1
  17. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  18. package/dist/elements/ConfirmationModal/index.js +1 -0
  19. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  20. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  21. package/dist/elements/DocumentLocked/index.js +41 -33
  22. package/dist/elements/DocumentLocked/index.js.map +1 -1
  23. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentTakeOver/index.js +27 -19
  25. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  26. package/dist/elements/Drawer/index.d.ts.map +1 -1
  27. package/dist/elements/Drawer/index.js +1 -0
  28. package/dist/elements/Drawer/index.js.map +1 -1
  29. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  30. package/dist/elements/FullscreenModal/index.js +1 -0
  31. package/dist/elements/FullscreenModal/index.js.map +1 -1
  32. package/dist/elements/LivePreview/IFrame/index.d.ts +1 -7
  33. package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -1
  34. package/dist/elements/LivePreview/IFrame/index.js +39 -18
  35. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  36. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  37. package/dist/elements/LivePreview/Window/index.js +135 -61
  38. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  39. package/dist/elements/PublishButton/index.js +1 -1
  40. package/dist/elements/PublishButton/index.js.map +1 -1
  41. package/dist/elements/SearchBar/index.scss +4 -0
  42. package/dist/elements/Status/index.d.ts.map +1 -1
  43. package/dist/elements/Status/index.js +9 -19
  44. package/dist/elements/Status/index.js.map +1 -1
  45. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  46. package/dist/elements/Table/DefaultCell/index.js +20 -14
  47. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  48. package/dist/elements/Thumbnail/index.d.ts +4 -2
  49. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  50. package/dist/elements/Thumbnail/index.js +6 -2
  51. package/dist/elements/Thumbnail/index.js.map +1 -1
  52. package/dist/elements/Thumbnail/index.scss +11 -9
  53. package/dist/elements/Toasts/fieldErrors.js +1 -1
  54. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  55. package/dist/exports/client/index.js +24 -24
  56. package/dist/exports/client/index.js.map +4 -4
  57. package/dist/exports/rsc/index.d.ts +1 -0
  58. package/dist/exports/rsc/index.d.ts.map +1 -1
  59. package/dist/exports/rsc/index.js +1 -0
  60. package/dist/exports/rsc/index.js.map +1 -1
  61. package/dist/exports/shared/index.js +2 -2
  62. package/dist/exports/shared/index.js.map +3 -3
  63. package/dist/fields/Blocks/index.d.ts.map +1 -1
  64. package/dist/fields/Blocks/index.js +36 -16
  65. package/dist/fields/Blocks/index.js.map +1 -1
  66. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  67. package/dist/fields/Relationship/Input.js +1 -5
  68. package/dist/fields/Relationship/Input.js.map +1 -1
  69. package/dist/fields/Upload/Input.js +20 -20
  70. package/dist/fields/Upload/Input.js.map +1 -1
  71. package/dist/forms/Form/index.js +1 -2
  72. package/dist/forms/Form/index.js.map +1 -1
  73. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  74. package/dist/forms/Form/mergeServerFormState.js +8 -0
  75. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  76. package/dist/forms/Form/types.d.ts +2 -2
  77. package/dist/forms/Form/types.d.ts.map +1 -1
  78. package/dist/forms/Form/types.js.map +1 -1
  79. package/dist/forms/RenderFields/RenderField.js +223 -236
  80. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  81. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  82. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +33 -2
  83. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  84. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  85. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  86. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  87. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  88. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +2 -0
  89. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  90. package/dist/forms/fieldSchemasToFormState/types.d.ts +6 -0
  91. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  92. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  93. package/dist/forms/useField/index.d.ts.map +1 -1
  94. package/dist/forms/useField/index.js +76 -73
  95. package/dist/forms/useField/index.js.map +1 -1
  96. package/dist/forms/useField/types.d.ts +5 -9
  97. package/dist/forms/useField/types.d.ts.map +1 -1
  98. package/dist/forms/useField/types.js.map +1 -1
  99. package/dist/providers/LivePreview/context.d.ts +17 -2
  100. package/dist/providers/LivePreview/context.d.ts.map +1 -1
  101. package/dist/providers/LivePreview/context.js +3 -2
  102. package/dist/providers/LivePreview/context.js.map +1 -1
  103. package/dist/providers/LivePreview/index.d.ts +2 -2
  104. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  105. package/dist/providers/LivePreview/index.js +33 -19
  106. package/dist/providers/LivePreview/index.js.map +1 -1
  107. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  108. package/dist/providers/RouteCache/index.js +62 -25
  109. package/dist/providers/RouteCache/index.js.map +1 -1
  110. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  111. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  112. package/dist/providers/TableColumns/buildColumnState/index.js +2 -0
  113. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  114. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  115. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  116. package/dist/providers/TableColumns/buildColumnState/renderCell.js +39 -2
  117. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  118. package/dist/styles.css +1 -1
  119. package/dist/utilities/buildFormState.d.ts +2 -0
  120. package/dist/utilities/buildFormState.d.ts.map +1 -1
  121. package/dist/utilities/buildFormState.js +20 -1
  122. package/dist/utilities/buildFormState.js.map +1 -1
  123. package/dist/utilities/formatAbsoluteURL.d.ts +8 -0
  124. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -0
  125. package/dist/utilities/formatAbsoluteURL.js +15 -0
  126. package/dist/utilities/formatAbsoluteURL.js.map +1 -0
  127. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
  128. package/dist/utilities/getFolderResultsComponentAndData.js +0 -4
  129. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  130. package/dist/utilities/handleLivePreview.d.ts +58 -0
  131. package/dist/utilities/handleLivePreview.d.ts.map +1 -0
  132. package/dist/utilities/handleLivePreview.js +96 -0
  133. package/dist/utilities/handleLivePreview.js.map +1 -0
  134. package/dist/utilities/handleTakeOver.d.ts +17 -4
  135. package/dist/utilities/handleTakeOver.d.ts.map +1 -1
  136. package/dist/utilities/handleTakeOver.js +18 -2
  137. package/dist/utilities/handleTakeOver.js.map +1 -1
  138. package/dist/utilities/renderTable.d.ts +3 -2
  139. package/dist/utilities/renderTable.d.ts.map +1 -1
  140. package/dist/utilities/renderTable.js +2 -0
  141. package/dist/utilities/renderTable.js.map +1 -1
  142. package/dist/views/Edit/index.d.ts.map +1 -1
  143. package/dist/views/Edit/index.js +48 -13
  144. package/dist/views/Edit/index.js.map +1 -1
  145. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  import ObjectIdImport from 'bson-objectid';
2
- import { getBlockSelect, stripUnselectedFields } from 'payload';
2
+ import { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload';
3
3
  import { deepCopyObjectSimple, fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled, fieldIsID, fieldIsLocalized, getFieldPaths, tabHasName } from 'payload/shared';
4
4
  import { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js';
5
5
  import { isRowCollapsed } from './isRowCollapsed.js';
@@ -124,6 +124,11 @@ export const addFieldStatePromise = async args => {
124
124
  });
125
125
  }
126
126
  }
127
+ /**
128
+ * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.
129
+ * It does not add the error **message** to the current field, as that shouldn't apply to all parents.
130
+ * This is done separately below.
131
+ */
127
132
  const addErrorPathToParent = errorPath => {
128
133
  if (typeof addErrorPathToParentArg === 'function') {
129
134
  addErrorPathToParentArg(errorPath);
@@ -225,7 +230,7 @@ export const addFieldStatePromise = async args => {
225
230
  return acc;
226
231
  }, {
227
232
  promises: [],
228
- rows: undefined
233
+ rows: []
229
234
  });
230
235
  // Wait for all promises and update fields with the results
231
236
  await Promise.all(promises);
@@ -249,6 +254,19 @@ export const addFieldStatePromise = async args => {
249
254
  case 'blocks':
250
255
  {
251
256
  const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : [];
257
+ // Handle blocks filterOptions
258
+ let filterOptionsValidationResult = null;
259
+ if (field.filterOptions) {
260
+ filterOptionsValidationResult = validateBlocksFilterOptions({
261
+ id,
262
+ data: fullData,
263
+ filterOptions: field.filterOptions,
264
+ req,
265
+ siblingData: data,
266
+ value: data[field.name]
267
+ });
268
+ fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs;
269
+ }
252
270
  const {
253
271
  promises,
254
272
  rowMetadata
@@ -276,6 +294,19 @@ export const addFieldStatePromise = async args => {
276
294
  initialValue: row.id,
277
295
  value: row.id
278
296
  };
297
+ // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed
298
+ if (filterOptionsValidationResult?.invalidBlockSlugs?.length && filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)) {
299
+ state[idKey].errorMessage = req.t('validation:invalidBlock', {
300
+ block: row.blockType
301
+ });
302
+ state[idKey].valid = false;
303
+ addErrorPathToParent(idKey);
304
+ // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related
305
+ // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,
306
+ // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.
307
+ // Instead, we want only the 2 error paths for the individual, invalid blocks.
308
+ fieldState.errorPaths = fieldState.errorPaths.filter(errorPath => errorPath !== path);
309
+ }
279
310
  if (includeSchema) {
280
311
  state[idKey].fieldSchema = includeSchema ? block.fields.find(blockField => fieldIsID(blockField)) : undefined;
281
312
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","isRowCollapsed","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","readOnly","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","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","blockField","fieldKey","blockNameKey","blockName","groupSelect","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","tabs","tab","tabIndex","isNamedTab","tabSelect","tabField","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","shouldContinue","siblingDoc","tabPermissions","pathSegments","split","tabPassesCondition","admin","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 TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields } 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 { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\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 readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n 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 readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: 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 (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = 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 readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n 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 readOnly,\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 tabField: TabAsField = {\n ...tab,\n type: 'tab',\n }\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: tabField,\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: tabField,\n select,\n selectMode,\n siblingDoc: data?.[tab.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n\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 operation,\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 readOnly,\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 readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","isRowCollapsed","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","readOnly","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","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","tabs","tab","tabIndex","isNamedTab","tabSelect","tabField","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","shouldContinue","siblingDoc","tabPermissions","pathSegments","split","tabPassesCondition","admin","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 TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\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 readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n 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 /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, 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 readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: null | ReturnType<typeof validateBlocksFilterOptions> =\n null\n if (field.filterOptions) {\n filterOptionsValidationResult = validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.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 the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = 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 readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n 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 readOnly,\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 tabField: TabAsField = {\n ...tab,\n type: 'tab',\n }\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: tabField,\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: tabField,\n select,\n selectMode,\n siblingDoc: data?.[tab.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n\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 operation,\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 readOnly,\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 readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAcnD,eAAO,MAAM,WAAW,EAAE,iBA8WzB,CAAA"}
1
+ {"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAcnD,eAAO,MAAM,WAAW,EAAE,iBAgXzB,CAAA"}
@@ -14,6 +14,7 @@ export const renderField = ({
14
14
  fieldConfig,
15
15
  fieldSchemaMap,
16
16
  fieldState,
17
+ forceCreateClientField,
17
18
  formState,
18
19
  indexPath,
19
20
  lastRenderedPath,
@@ -34,7 +35,7 @@ export const renderField = ({
34
35
  if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {
35
36
  return;
36
37
  }
37
- const clientField = clientFieldSchemaMap ? clientFieldSchemaMap.get(schemaPath) : createClientField({
38
+ const clientField = clientFieldSchemaMap && !forceCreateClientField ? clientFieldSchemaMap.get(schemaPath) : createClientField({
38
39
  defaultIDType: req.payload.config.db.defaultIDType,
39
40
  field: fieldConfig,
40
41
  i18n: req.i18n,
@@ -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","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","admin","components","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","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 -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n const requiresRender = renderAllFields || !lastRenderedPath || lastRenderedPath !== path\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField = 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:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n ((fieldConfig.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":[]}
1
+ {"version":3,"file":"renderField.js","names":["getTranslation","createClientField","MissingEditorProp","fieldIsHiddenOrDisabled","RenderServerComponent","FieldDescription","WatchCondition","defaultUIFieldComponentKeys","renderField","id","clientFieldSchemaMap","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","forceCreateClientField","formState","indexPath","lastRenderedPath","mockRSCs","operation","parentPath","parentSchemaPath","path","permissions","preferences","readOnly","readOnlyFromProps","renderAllFields","req","schemaPath","siblingData","requiresRender","type","clientField","get","defaultIDType","payload","config","db","field","i18n","importMap","clientProps","customComponents","includes","serverProps","user","value","name","rows","forEach","row","rowIndex","rowLastRenderedPath","rowPath","rowRequiresRender","admin","components","RowLabel","Component","key","rowLabel","labels","singular","String","padStart","rowNumber","blockTypeToMatch","blockType","blockConfig","blocks","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 -- MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\nimport { FieldDescription, WatchCondition } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n forceCreateClientField,\n formState,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n preferences,\n readOnly: readOnlyFromProps,\n renderAllFields,\n req,\n schemaPath,\n siblingData,\n}) => {\n const requiresRender = renderAllFields || !lastRenderedPath || lastRenderedPath !== path\n\n if (!requiresRender && fieldConfig.type !== 'array' && fieldConfig.type !== 'blocks') {\n return\n }\n\n const clientField =\n clientFieldSchemaMap && !forceCreateClientField\n ? (clientFieldSchemaMap.get(schemaPath) as ClientField)\n : createClientField({\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n field: clientField,\n path,\n permissions,\n readOnly:\n readOnlyFromProps === true\n ? true\n : typeof permissions === 'boolean'\n ? !permissions\n : !permissions?.[operation],\n schemaPath,\n }\n\n if (fieldState?.customComponents) {\n clientProps.customComponents = fieldState.customComponents\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n clientFieldSchemaMap,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n value: 'name' in fieldConfig && data?.[fieldConfig.name],\n }\n\n switch (fieldConfig.type) {\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!row.customComponents) {\n row.customComponents = {}\n }\n\n row.customComponents.RowLabel = !mockRSCs\n ? RenderServerComponent({\n clientProps,\n Component: fieldConfig.admin.components.RowLabel,\n importMap: req.payload.importMap,\n key: `${rowIndex}`,\n serverProps: {\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n },\n })\n : 'Mock'\n }\n })\n\n break\n }\n\n case 'blocks': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n const rowLastRenderedPath = row.lastRenderedPath\n\n const rowPath = `${path}.${rowIndex}`\n\n const rowRequiresRender =\n renderAllFields || !rowLastRenderedPath || rowLastRenderedPath !== rowPath\n\n if (!rowRequiresRender) {\n return\n }\n\n row.lastRenderedPath = rowPath\n\n const blockTypeToMatch: string = row.blockType\n\n const blockConfig =\n req.payload.blocks[blockTypeToMatch] ??\n ((fieldConfig.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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderFieldServerFn.d.ts","sourceRoot":"","sources":["../../../../src/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAOrF,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AACD,MAAM,MAAM,6BAA6B,GAAG,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,cAAc,CACvD,uBAAuB,EACvB,OAAO,CAAC,6BAA6B,CAAC,CA4EvC,CAAA"}
1
+ {"version":3,"file":"renderFieldServerFn.d.ts","sourceRoot":"","sources":["../../../../src/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAOrF,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AACD,MAAM,MAAM,6BAA6B,GAAG,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,cAAc,CACvD,uBAAuB,EACvB,OAAO,CAAC,6BAA6B,CAAC,CA8EvC,CAAA"}
@@ -72,6 +72,8 @@ export const _internal_renderFieldHandler = async ({
72
72
  preferences: {
73
73
  fields: {}
74
74
  },
75
+ // If we are passed a field override, we want to ensure we create a new client field based on that override
76
+ forceCreateClientField: fieldArg ? true : false,
75
77
  previousFieldState: undefined,
76
78
  renderAllFields: true,
77
79
  req,
@@ -1 +1 @@
1
- {"version":3,"file":"renderFieldServerFn.js","names":["deepMerge","getClientConfig","getClientSchemaMap","getSchemaMap","renderField","_internal_renderFieldHandler","field","fieldArg","initialValue","path","req","schemaPath","user","Error","entityType","entitySlug","fieldPath","split","schemaMap","collectionSlug","undefined","config","payload","globalSlug","i18n","clientSchemaMap","importMap","targetField","get","join","clone","data","name","fieldState","clientFieldSchemaMap","fieldConfig","fieldSchemaMap","formState","indexPath","lastRenderedPath","operation","parentPath","parentSchemaPath","permissions","preferences","fields","previousFieldState","renderAllFields","siblingData","customComponents"],"sources":["../../../../src/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.ts"],"sourcesContent":["import { deepMerge, type Field, type FieldState, type ServerFunction } from 'payload'\n\nimport { getClientConfig } from '../../../utilities/getClientConfig.js'\nimport { getClientSchemaMap } from '../../../utilities/getClientSchemaMap.js'\nimport { getSchemaMap } from '../../../utilities/getSchemaMap.js'\nimport { renderField } from '../renderField.js'\n\nexport type RenderFieldServerFnArgs = {\n /**\n * Override field config pulled from schemaPath lookup\n */\n field?: Partial<Field>\n /**\n * Pass the value this field will receive when rendering it on the server.\n * For richText, this helps provide initial state for sub-fields that are immediately rendered (like blocks)\n * so that we can avoid multiple waterfall requests for each block that renders on the client.\n */\n initialValue?: unknown\n /**\n * Path to the field to render\n * @default field name\n */\n path?: string\n /**\n * Dot schema path to a richText field declared in your config.\n * Format:\n * \"collection.<collectionSlug>.<fieldPath>\"\n * \"global.<globalSlug>.<fieldPath>\"\n *\n * Examples:\n * \"collection.posts.richText\"\n * \"global.siteSettings.content\"\n */\n schemaPath: string\n}\nexport type RenderFieldServerFnReturnType = {} & FieldState['customComponents']\n\n/**\n * @experimental - may break in minor releases\n */\nexport const _internal_renderFieldHandler: ServerFunction<\n RenderFieldServerFnArgs,\n Promise<RenderFieldServerFnReturnType>\n // eslint-disable-next-line @typescript-eslint/require-await\n> = async ({ field: fieldArg, initialValue, path, req, schemaPath }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const [entityType, entitySlug, ...fieldPath] = schemaPath.split('.')\n\n const schemaMap = getSchemaMap({\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n config: req.payload.config,\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n i18n: req.i18n,\n })\n\n // Provide client schema map as it would have been provided if the target editor field would have been rendered.\n // For lexical, only then will it contain all the lexical-internal entries\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n config: getClientConfig({\n config: req.payload.config,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n user: req.user,\n }),\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n i18n: req.i18n,\n payload: req.payload,\n schemaMap,\n })\n\n const targetField = schemaMap.get(`${entitySlug}.${fieldPath.join('.')}`) as Field | undefined\n\n if (!targetField) {\n throw new Error(`Could not find target field at schemaPath: ${schemaPath}`)\n }\n\n const field: Field = fieldArg ? deepMerge(targetField, fieldArg, { clone: false }) : targetField\n\n let data = {}\n if (typeof initialValue !== 'undefined') {\n if ('name' in field) {\n data[field.name] = initialValue\n } else {\n data = initialValue\n }\n }\n\n const fieldState: FieldState = {}\n renderField({\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug: entityType === 'collection' && entitySlug ? entitySlug : '-',\n data,\n fieldConfig: field,\n fieldSchemaMap: schemaMap,\n fieldState, // TODO,\n formState: {}, // TODO,\n indexPath: '',\n lastRenderedPath: '',\n operation: 'create',\n parentPath: '',\n parentSchemaPath: '',\n path: path ?? ('name' in field ? field.name : ''),\n permissions: true,\n preferences: {\n fields: {},\n },\n previousFieldState: undefined,\n renderAllFields: true,\n req,\n schemaPath: `${entitySlug}.${fieldPath.join('.')}`,\n siblingData: data,\n })\n\n return fieldState.customComponents ?? {}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderFieldServerFn.js","names":["deepMerge","getClientConfig","getClientSchemaMap","getSchemaMap","renderField","_internal_renderFieldHandler","field","fieldArg","initialValue","path","req","schemaPath","user","Error","entityType","entitySlug","fieldPath","split","schemaMap","collectionSlug","undefined","config","payload","globalSlug","i18n","clientSchemaMap","importMap","targetField","get","join","clone","data","name","fieldState","clientFieldSchemaMap","fieldConfig","fieldSchemaMap","formState","indexPath","lastRenderedPath","operation","parentPath","parentSchemaPath","permissions","preferences","fields","forceCreateClientField","previousFieldState","renderAllFields","siblingData","customComponents"],"sources":["../../../../src/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.ts"],"sourcesContent":["import { deepMerge, type Field, type FieldState, type ServerFunction } from 'payload'\n\nimport { getClientConfig } from '../../../utilities/getClientConfig.js'\nimport { getClientSchemaMap } from '../../../utilities/getClientSchemaMap.js'\nimport { getSchemaMap } from '../../../utilities/getSchemaMap.js'\nimport { renderField } from '../renderField.js'\n\nexport type RenderFieldServerFnArgs = {\n /**\n * Override field config pulled from schemaPath lookup\n */\n field?: Partial<Field>\n /**\n * Pass the value this field will receive when rendering it on the server.\n * For richText, this helps provide initial state for sub-fields that are immediately rendered (like blocks)\n * so that we can avoid multiple waterfall requests for each block that renders on the client.\n */\n initialValue?: unknown\n /**\n * Path to the field to render\n * @default field name\n */\n path?: string\n /**\n * Dot schema path to a richText field declared in your config.\n * Format:\n * \"collection.<collectionSlug>.<fieldPath>\"\n * \"global.<globalSlug>.<fieldPath>\"\n *\n * Examples:\n * \"collection.posts.richText\"\n * \"global.siteSettings.content\"\n */\n schemaPath: string\n}\nexport type RenderFieldServerFnReturnType = {} & FieldState['customComponents']\n\n/**\n * @experimental - may break in minor releases\n */\nexport const _internal_renderFieldHandler: ServerFunction<\n RenderFieldServerFnArgs,\n Promise<RenderFieldServerFnReturnType>\n // eslint-disable-next-line @typescript-eslint/require-await\n> = async ({ field: fieldArg, initialValue, path, req, schemaPath }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const [entityType, entitySlug, ...fieldPath] = schemaPath.split('.')\n\n const schemaMap = getSchemaMap({\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n config: req.payload.config,\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n i18n: req.i18n,\n })\n\n // Provide client schema map as it would have been provided if the target editor field would have been rendered.\n // For lexical, only then will it contain all the lexical-internal entries\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n config: getClientConfig({\n config: req.payload.config,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n user: req.user,\n }),\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n i18n: req.i18n,\n payload: req.payload,\n schemaMap,\n })\n\n const targetField = schemaMap.get(`${entitySlug}.${fieldPath.join('.')}`) as Field | undefined\n\n if (!targetField) {\n throw new Error(`Could not find target field at schemaPath: ${schemaPath}`)\n }\n\n const field: Field = fieldArg ? deepMerge(targetField, fieldArg, { clone: false }) : targetField\n\n let data = {}\n if (typeof initialValue !== 'undefined') {\n if ('name' in field) {\n data[field.name] = initialValue\n } else {\n data = initialValue\n }\n }\n\n const fieldState: FieldState = {}\n renderField({\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug: entityType === 'collection' && entitySlug ? entitySlug : '-',\n data,\n fieldConfig: field,\n fieldSchemaMap: schemaMap,\n fieldState, // TODO,\n formState: {}, // TODO,\n indexPath: '',\n lastRenderedPath: '',\n operation: 'create',\n parentPath: '',\n parentSchemaPath: '',\n path: path ?? ('name' in field ? field.name : ''),\n permissions: true,\n preferences: {\n fields: {},\n },\n // If we are passed a field override, we want to ensure we create a new client field based on that override\n forceCreateClientField: fieldArg ? true : false,\n previousFieldState: undefined,\n renderAllFields: true,\n req,\n schemaPath: `${entitySlug}.${fieldPath.join('.')}`,\n siblingData: data,\n })\n\n return fieldState.customComponents ?? {}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,12 @@ export type RenderFieldArgs = {
6
6
  fieldConfig: Field;
7
7
  fieldSchemaMap: FieldSchemaMap;
8
8
  fieldState: FieldState;
9
+ /**
10
+ * If set to true, it will force creating a clientField based on the passed fieldConfig instead of pulling
11
+ * the client field from the clientFieldSchemaMap. This is useful if the passed fieldConfig differs from the one in the schema map,
12
+ * e.g. when calling the render-field server function and passing a field config override.
13
+ */
14
+ forceCreateClientField?: boolean;
9
15
  formState: FormState;
10
16
  id?: number | string;
11
17
  indexPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,KAAK,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,WAAW,EAAE,mBAAmB,CAAA;IAChC,kBAAkB,EAAE,UAAU,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,eAAe,GAAG;IAC5B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,KAAK,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,UAAU,CAAA;IACtB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,SAAS,EAAE,SAAS,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,SAAS,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,WAAW,EAAE,mBAAmB,CAAA;IAChC,kBAAkB,EAAE,UAAU,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FormState,\n Operation,\n PayloadRequest,\n SanitizedFieldPermissions,\n} from 'payload'\n\nexport type RenderFieldArgs = {\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug: string\n data: Data\n fieldConfig: Field\n fieldSchemaMap: FieldSchemaMap\n fieldState: FieldState\n formState: FormState\n id?: number | string\n indexPath: string\n lastRenderedPath: string\n mockRSCs?: boolean\n operation: Operation\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n preferences: DocumentPreferences\n previousFieldState: FieldState\n readOnly?: boolean\n renderAllFields: boolean\n req: PayloadRequest\n schemaPath: string\n siblingData: Data\n}\n\nexport type RenderFieldMethod = (args: RenderFieldArgs) => void\n"],"mappings":"AAuCA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/fieldSchemasToFormState/types.ts"],"sourcesContent":["import type {\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FormState,\n Operation,\n PayloadRequest,\n SanitizedFieldPermissions,\n} from 'payload'\n\nexport type RenderFieldArgs = {\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug: string\n data: Data\n fieldConfig: Field\n fieldSchemaMap: FieldSchemaMap\n fieldState: FieldState\n /**\n * If set to true, it will force creating a clientField based on the passed fieldConfig instead of pulling\n * the client field from the clientFieldSchemaMap. This is useful if the passed fieldConfig differs from the one in the schema map,\n * e.g. when calling the render-field server function and passing a field config override.\n */\n forceCreateClientField?: boolean\n formState: FormState\n id?: number | string\n indexPath: string\n lastRenderedPath: string\n mockRSCs?: boolean\n operation: Operation\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n preferences: DocumentPreferences\n previousFieldState: FieldState\n readOnly?: boolean\n renderAllFields: boolean\n req: PayloadRequest\n schemaPath: string\n siblingData: Data\n}\n\nexport type RenderFieldMethod = (args: RenderFieldArgs) => void\n"],"mappings":"AA6CA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAG3D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AA2NlC;;;;GAIG;AACH,eAAO,MAAM,YAAY,mCAAiE,CAAA;AAE1F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAa,OAAO,KAAG,SAAS,CAAC,MAAM,CAiCrE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAG3D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AA4NlC;;;;GAIG;AACH,eAAO,MAAM,YAAY,mCAAiE,CAAA;AAE1F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAa,OAAO,KAAG,SAAS,CAAC,MAAM,CAiCrE,CAAA"}