@payloadcms/ui 3.39.1 → 3.40.0-internal.9cc3927

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 (40) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.js +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  3. package/dist/elements/DocumentControls/index.js +1 -1
  4. package/dist/elements/DocumentControls/index.js.map +1 -1
  5. package/dist/elements/FolderView/CollectionTypePill/index.js +1 -1
  6. package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
  7. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  8. package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -2
  9. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  10. package/dist/exports/client/index.js +10 -10
  11. package/dist/exports/client/index.js.map +4 -4
  12. package/dist/fields/Select/Input.d.ts +1 -0
  13. package/dist/fields/Select/Input.d.ts.map +1 -1
  14. package/dist/fields/Select/Input.js +50 -47
  15. package/dist/fields/Select/Input.js.map +1 -1
  16. package/dist/fields/Select/index.d.ts.map +1 -1
  17. package/dist/fields/Select/index.js +4 -0
  18. package/dist/fields/Select/index.js.map +1 -1
  19. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  20. package/dist/fields/Upload/HasMany/index.js +1 -2
  21. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  22. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  23. package/dist/fields/Upload/HasOne/index.js +1 -2
  24. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  25. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  26. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +19 -0
  27. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  28. package/dist/forms/useField/index.d.ts.map +1 -1
  29. package/dist/forms/useField/index.js +60 -57
  30. package/dist/forms/useField/index.js.map +1 -1
  31. package/dist/forms/useField/types.d.ts +2 -1
  32. package/dist/forms/useField/types.d.ts.map +1 -1
  33. package/dist/forms/useField/types.js.map +1 -1
  34. package/dist/views/List/ListHeader/index.js +1 -1
  35. package/dist/views/List/ListHeader/index.js.map +1 -1
  36. package/package.json +5 -5
  37. package/dist/utilities/getBestFitFromSizes.d.ts +0 -25
  38. package/dist/utilities/getBestFitFromSizes.d.ts.map +0 -1
  39. package/dist/utilities/getBestFitFromSizes.js +0 -45
  40. package/dist/utilities/getBestFitFromSizes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","name","hasPermission","read","access","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","event","previousValue","initialValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","i","toHexString","idKey","value","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","undefined","previousRows","previousRow","prevRow","newRow","isLoading","collapsedRowIDsFromPrefs","collapsed","admin","initCollapsed","length","Promise","all","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","blockField","fieldKey","blockNameKey","blockName","collapsedRowIDs","groupSelect","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","tabIndex","isNamedTab","tabSelect","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","tabPermissions","pathSegments","split","tabPassesCondition","condition","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = field.validate\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rows.push(newRow)\n\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n const collapsed = (() => {\n if (previousRow) {\n return previousRow.collapsed ?? false\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })()\n\n if (collapsed) {\n acc.rows[acc.rows.length - 1].collapsed = collapsed\n }\n\n return acc\n },\n {\n promises: [],\n rows: undefined,\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const parentPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (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 renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n const collapsed =\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id)\n\n if (collapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = collapsed\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, 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 renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n let tabSelect: SelectType | undefined\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n\n if (typeof select?.[tab.name] === 'object') {\n tabSelect = select?.[tab.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n const pathSegments = path ? path.split('.') : []\n\n // If passesCondition is false then this should always result to false\n // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result\n let tabPassesCondition = passesCondition\n\n if (passesCondition && typeof tab.admin?.condition === 'function') {\n tabPassesCondition = tab.admin.condition(fullData, data, {\n blockData,\n 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 renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","getFieldPaths","tabHasName","resolveFilterOptions","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","name","hasPermission","read","access","siblingData","validate","validationResult","jsonError","type","JSON","parse","e","event","previousValue","initialValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","i","toHexString","idKey","value","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","undefined","previousRows","previousRow","prevRow","newRow","isLoading","collapsedRowIDsFromPrefs","collapsed","admin","initCollapsed","length","Promise","all","disableFormData","blocksValue","rowMetadata","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","blockField","fieldKey","blockNameKey","blockName","collapsedRowIDs","groupSelect","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","tabs","tab","tabIndex","isNamedTab","tabSelect","tabIndexPath","tabPath","tabSchemaPath","index","childPermissions","tabPermissions","pathSegments","split","tabPassesCondition","condition","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n getFieldPaths,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field)) {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = field.validate\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, i: number) => {\n const parentPath = path + '.' + i\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rows.push(newRow)\n\n const collapsedRowIDsFromPrefs = preferences?.fields?.[path]?.collapsed\n\n const collapsed = (() => {\n if (previousRow) {\n return previousRow.collapsed ?? false\n }\n\n // If previousFormState is undefined, check preferences\n if (collapsedRowIDsFromPrefs !== undefined) {\n return collapsedRowIDsFromPrefs.includes(row.id) // Check if collapsed in preferences\n }\n\n // If neither exists, fallback to `field.admin.initCollapsed`\n return field.admin.initCollapsed\n })()\n\n if (collapsed) {\n acc.rows[acc.rows.length - 1].collapsed = collapsed\n }\n\n return acc\n },\n {\n promises: [],\n rows: undefined,\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const parentPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = parentPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = parentPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (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 renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const previousRows = previousFormState?.[path]?.rows || []\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = previousRows.find((prevRow) => prevRow.id === row.id)\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const collapsedRowIDs = preferences?.fields?.[path]?.collapsed\n\n const collapsed =\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id)\n\n if (collapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = collapsed\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\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 renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n let tabSelect: SelectType | undefined\n\n const {\n indexPath: tabIndexPath,\n path: tabPath,\n schemaPath: tabSchemaPath,\n } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath,\n parentSchemaPath,\n })\n\n let childPermissions: SanitizedFieldsPermissions = undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[tab.name]\n if (tabPermissions === true) {\n childPermissions = true\n } else {\n childPermissions = tabPermissions?.fields\n }\n }\n\n if (typeof select?.[tab.name] === 'object') {\n tabSelect = select?.[tab.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n const pathSegments = path ? path.split('.') : []\n\n // If passesCondition is false then this should always result to false\n // If the tab has no admin.condition provided then fallback to passesCondition and let that decide the result\n let tabPassesCondition = passesCondition\n\n if (passesCondition && typeof tab.admin?.condition === 'function') {\n tabPassesCondition = tab.admin.condition(fullData, data, {\n blockData,\n 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 renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAmBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAa,OAAO,KAAG,SAAS,CAAC,MAAM,CAkNrE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAmBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAa,OAAO,KAAG,SAAS,CAAC,MAAM,CAmNrE,CAAA"}
@@ -16,7 +16,7 @@ import { useFieldPath } from '../RenderFields/context.js';
16
16
  * @see https://payloadcms.com/docs/admin/react-hooks#usefield
17
17
  */
18
18
  export const useField = options => {
19
- const $ = _c(64);
19
+ const $ = _c(65);
20
20
  let t0;
21
21
  if ($[0] !== options) {
22
22
  t0 = options || {};
@@ -134,10 +134,11 @@ export const useField = options => {
134
134
  t9 = $[14];
135
135
  }
136
136
  const t10 = field?.rows;
137
- const t11 = field?.valid;
138
- let t12;
139
- if ($[15] !== filterOptions || $[16] !== initialValue || $[17] !== initializing || $[18] !== path || $[19] !== processing || $[20] !== setValue || $[21] !== showError || $[22] !== submitted || $[23] !== t10 || $[24] !== t11 || $[25] !== t6 || $[26] !== t7 || $[27] !== t8 || $[28] !== t9 || $[29] !== value) {
140
- t12 = {
137
+ const t11 = field?.selectFilterOptions;
138
+ const t12 = field?.valid;
139
+ let t13;
140
+ if ($[15] !== filterOptions || $[16] !== initialValue || $[17] !== initializing || $[18] !== path || $[19] !== processing || $[20] !== setValue || $[21] !== showError || $[22] !== submitted || $[23] !== t10 || $[24] !== t11 || $[25] !== t12 || $[26] !== t6 || $[27] !== t7 || $[28] !== t8 || $[29] !== t9 || $[30] !== value) {
141
+ t13 = {
141
142
  customComponents: t6,
142
143
  disabled: t7,
143
144
  errorMessage: t8,
@@ -149,9 +150,10 @@ export const useField = options => {
149
150
  initialValue,
150
151
  path,
151
152
  rows: t10,
153
+ selectFilterOptions: t11,
152
154
  setValue,
153
155
  showError,
154
- valid: t11,
156
+ valid: t12,
155
157
  value
156
158
  };
157
159
  $[15] = filterOptions;
@@ -164,20 +166,21 @@ export const useField = options => {
164
166
  $[22] = submitted;
165
167
  $[23] = t10;
166
168
  $[24] = t11;
167
- $[25] = t6;
168
- $[26] = t7;
169
- $[27] = t8;
170
- $[28] = t9;
171
- $[29] = value;
172
- $[30] = t12;
169
+ $[25] = t12;
170
+ $[26] = t6;
171
+ $[27] = t7;
172
+ $[28] = t8;
173
+ $[29] = t9;
174
+ $[30] = value;
175
+ $[31] = t13;
173
176
  } else {
174
- t12 = $[30];
177
+ t13 = $[31];
175
178
  }
176
- t5 = t12;
179
+ t5 = t13;
177
180
  const result = t5;
178
- let t13;
179
- if ($[31] !== collectionSlug || $[32] !== config || $[33] !== disableFormData || $[34] !== dispatchField || $[35] !== documentForm || $[36] !== field || $[37] !== getData || $[38] !== getDataByPath || $[39] !== getSiblingData || $[40] !== hasRows || $[41] !== id || $[42] !== operation || $[43] !== path || $[44] !== pathSegments || $[45] !== t || $[46] !== user || $[47] !== validate || $[48] !== value) {
180
- t13 = () => {
181
+ let t14;
182
+ if ($[32] !== collectionSlug || $[33] !== config || $[34] !== disableFormData || $[35] !== dispatchField || $[36] !== documentForm || $[37] !== field || $[38] !== getData || $[39] !== getDataByPath || $[40] !== getSiblingData || $[41] !== hasRows || $[42] !== id || $[43] !== operation || $[44] !== path || $[45] !== pathSegments || $[46] !== t || $[47] !== user || $[48] !== validate || $[49] !== value) {
183
+ t14 = () => {
181
184
  const validateField = async () => {
182
185
  let valueToValidate = value;
183
186
  if (field?.rows && Array.isArray(field.rows)) {
@@ -235,50 +238,50 @@ export const useField = options => {
235
238
  };
236
239
  validateField();
237
240
  };
238
- $[31] = collectionSlug;
239
- $[32] = config;
240
- $[33] = disableFormData;
241
- $[34] = dispatchField;
242
- $[35] = documentForm;
243
- $[36] = field;
244
- $[37] = getData;
245
- $[38] = getDataByPath;
246
- $[39] = getSiblingData;
247
- $[40] = hasRows;
248
- $[41] = id;
249
- $[42] = operation;
250
- $[43] = path;
251
- $[44] = pathSegments;
252
- $[45] = t;
253
- $[46] = user;
254
- $[47] = validate;
255
- $[48] = value;
256
- $[49] = t13;
241
+ $[32] = collectionSlug;
242
+ $[33] = config;
243
+ $[34] = disableFormData;
244
+ $[35] = dispatchField;
245
+ $[36] = documentForm;
246
+ $[37] = field;
247
+ $[38] = getData;
248
+ $[39] = getDataByPath;
249
+ $[40] = getSiblingData;
250
+ $[41] = hasRows;
251
+ $[42] = id;
252
+ $[43] = operation;
253
+ $[44] = path;
254
+ $[45] = pathSegments;
255
+ $[46] = t;
256
+ $[47] = user;
257
+ $[48] = validate;
258
+ $[49] = value;
259
+ $[50] = t14;
257
260
  } else {
258
- t13 = $[49];
261
+ t14 = $[50];
259
262
  }
260
- const t14 = field?.rows;
261
- let t15;
262
- if ($[50] !== collectionSlug || $[51] !== disableFormData || $[52] !== dispatchField || $[53] !== getData || $[54] !== getDataByPath || $[55] !== getSiblingData || $[56] !== id || $[57] !== operation || $[58] !== path || $[59] !== t14 || $[60] !== user || $[61] !== validate || $[62] !== value) {
263
- t15 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t14, collectionSlug];
264
- $[50] = collectionSlug;
265
- $[51] = disableFormData;
266
- $[52] = dispatchField;
267
- $[53] = getData;
268
- $[54] = getDataByPath;
269
- $[55] = getSiblingData;
270
- $[56] = id;
271
- $[57] = operation;
272
- $[58] = path;
273
- $[59] = t14;
274
- $[60] = user;
275
- $[61] = validate;
276
- $[62] = value;
277
- $[63] = t15;
263
+ const t15 = field?.rows;
264
+ let t16;
265
+ if ($[51] !== collectionSlug || $[52] !== disableFormData || $[53] !== dispatchField || $[54] !== getData || $[55] !== getDataByPath || $[56] !== getSiblingData || $[57] !== id || $[58] !== operation || $[59] !== path || $[60] !== t15 || $[61] !== user || $[62] !== validate || $[63] !== value) {
266
+ t16 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t15, collectionSlug];
267
+ $[51] = collectionSlug;
268
+ $[52] = disableFormData;
269
+ $[53] = dispatchField;
270
+ $[54] = getData;
271
+ $[55] = getDataByPath;
272
+ $[56] = getSiblingData;
273
+ $[57] = id;
274
+ $[58] = operation;
275
+ $[59] = path;
276
+ $[60] = t15;
277
+ $[61] = user;
278
+ $[62] = validate;
279
+ $[63] = value;
280
+ $[64] = t16;
278
281
  } else {
279
- t15 = $[63];
282
+ t16 = $[64];
280
283
  }
281
- useThrottledEffect(t13, 150, t15);
284
+ useThrottledEffect(t14, 150, t16);
282
285
  return result;
283
286
  };
284
287
  function _temp(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useDocumentForm","useForm","useFormFields","useFormInitializing","useFormModified","useFormProcessing","useFormSubmitted","useFieldPath","useField","options","$","t0","disableFormData","t1","hasRows","path","pathFromOptions","potentiallyStalePath","validate","undefined","pathFromContext","submitted","processing","initializing","user","id","collectionSlug","operation","dispatchField","_temp","t2","t3","fields","field","t","config","getData","getDataByPath","getSiblingData","setModified","documentForm","modified","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","split","pathSegments","t4","e","t5","disableModifyingForm","val","target","type","setTimeout","setValue","t6","customComponents","t7","t8","t9","errorPaths","t10","rows","t11","t12","disabled","formInitializing","formProcessing","formSubmitted","result","t13","validateField","valueToValidate","Array","isArray","current","valid_0","data","isValid","blockData","event","preferences","req","payload","siblingData","update","t14","t15","dispatch"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\nimport { useFieldPath } from '../RenderFields/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#usefield\n */\nexport const useField = <TValue,>(options?: Options): FieldType<TValue> => {\n const {\n disableFormData = false,\n hasRows,\n path: pathFromOptions,\n potentiallyStalePath,\n validate,\n } = options || {}\n\n const pathFromContext = useFieldPath()\n\n // This is a workaround for stale props given to server rendered components.\n // See the notes in the `potentiallyStalePath` type definition for more details.\n const path = pathFromOptions || pathFromContext || potentiallyStalePath\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const documentForm = useDocumentForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n const pathSegments = path ? path.split('.') : []\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n disabled: processing || initializing,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const data = getData()\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n collectionSlug,\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'onChange',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useDocumentForm","useForm","useFormFields","useFormInitializing","useFormModified","useFormProcessing","useFormSubmitted","useFieldPath","useField","options","$","t0","disableFormData","t1","hasRows","path","pathFromOptions","potentiallyStalePath","validate","undefined","pathFromContext","submitted","processing","initializing","user","id","collectionSlug","operation","dispatchField","_temp","t2","t3","fields","field","t","config","getData","getDataByPath","getSiblingData","setModified","documentForm","modified","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","split","pathSegments","t4","e","t5","disableModifyingForm","val","target","type","setTimeout","setValue","t6","customComponents","t7","t8","t9","errorPaths","t10","rows","t11","selectFilterOptions","t12","t13","disabled","formInitializing","formProcessing","formSubmitted","result","t14","validateField","valueToValidate","Array","isArray","current","valid_0","data","isValid","blockData","event","preferences","req","payload","siblingData","update","t15","t16","dispatch"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\nimport { useFieldPath } from '../RenderFields/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#usefield\n */\nexport const useField = <TValue,>(options?: Options): FieldType<TValue> => {\n const {\n disableFormData = false,\n hasRows,\n path: pathFromOptions,\n potentiallyStalePath,\n validate,\n } = options || {}\n\n const pathFromContext = useFieldPath()\n\n // This is a workaround for stale props given to server rendered components.\n // See the notes in the `potentiallyStalePath` type definition for more details.\n const path = pathFromOptions || pathFromContext || potentiallyStalePath\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const documentForm = useDocumentForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n const pathSegments = path ? path.split('.') : []\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n disabled: processing || initializing,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n selectFilterOptions: field?.selectFilterOptions,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const data = getData()\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n collectionSlug,\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'onChange',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,WAAW,EAAEC,OAAO,EAAEC,MAAM,QAAQ;AAO7C,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SACEC,eAAe,EACfC,OAAO,EACPC,aAAa,EACbC,mBAAmB,EACnBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,QACX;AACP,SAASC,YAAY,QAAQ;AAE7B;;;;;AAKA,OAAO,MAAMC,QAAA,GAAWC,OAAA;EAAA,MAAAC,CAAA,GAAApB,EAAA;EAAA,IAAAqB,EAAA;EAAA,IAAAD,CAAA,QAAAD,OAAA;IAOlBE,EAAA,GAAAF,OAAA,MAAY;IAAAC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EANhB;IAAAE,eAAA,EAAAC,EAAA;IAAAC,OAAA;IAAAC,IAAA,EAAAC,eAAA;IAAAC,oBAAA;IAAAC;EAAA,IAMIP,EAAY;EALd,MAAAC,eAAA,GAAAC,EAAuB,KAAAM,SAAA,WAAvBN,EAAuB;EAOzB,MAAAO,eAAA,GAAwBb,YAAA;EAIxB,MAAAQ,IAAA,GAAaC,eAAA,IAAmBI,eAAA,IAAmBH,oBAAA;EAEnD,MAAAI,SAAA,GAAkBf,gBAAA;EAClB,MAAAgB,UAAA,GAAmBjB,iBAAA;EACnB,MAAAkB,YAAA,GAAqBpB,mBAAA;EACrB;IAAAqB;EAAA,IAAiB7B,OAAA;EACjB;IAAA8B,EAAA;IAAAC;EAAA,IAA+B7B,eAAA;EAC/B,MAAA8B,SAAA,GAAkB7B,YAAA;EAElB,MAAA8B,aAAA,GAAsB1B,aAAA,CAAA2B,KAAiC;EAAA,IAAAC,EAAA;EAAA,IAAApB,CAAA,QAAAK,IAAA;IAC3Be,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKC,MAAC,IAAUA,MAAA,GAASjB,IAAA,CAAK,QAAK;IAAA;IAAAL,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAAxE,MAAAuB,KAAA,GAAc/B,aAAA,CAAc4B,EAA4C;EAExE;IAAAI;EAAA,IAAcnC,cAAA;EACd;IAAAoC;EAAA,IAAmBvC,SAAA;EAEnB;IAAAwC,OAAA;IAAAC,aAAA;IAAAC,cAAA;IAAAC;EAAA,IAAgEtC,OAAA;EAChE,MAAAuC,YAAA,GAAqBxC,eAAA;EACrB,MAAAyC,QAAA,GAAiBrC,eAAA;EAEjB,MAAAsC,aAAA,GAAsBT,KAAA,EAAAS,aAAA;EACtB,MAAAC,KAAA,GAAcV,KAAA,EAAAU,KAAA;EACd,MAAAC,YAAA,GAAqBX,KAAA,EAAAW,YAAA;EACrB,MAAAC,KAAA,GAAc,OAAOZ,KAAA,EAAAY,KAAA,KAAiB,YAAYZ,KAAA,CAAAY,KAAA,OAAc;EAChE,MAAAC,SAAA,GAAkBD,KAAA,UAAU,IAASxB,SAAA;EAErC,MAAA0B,SAAA,GAAkBtD,MAAA,CAAOoD,KAAA;EACzB,MAAAG,gBAAA,GAAyBvD,MAAA,CAAOwC,KAAA,EAAAgB,YAAO;EAAA,IAAAlB,EAAA;EAAA,IAAArB,CAAA,QAAAK,IAAA;IAElBgB,EAAA,GAAAhB,IAAA,GAAOA,IAAA,CAAAmC,KAAA,CAAW,SAAS;IAAAxC,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAAhD,MAAAyC,YAAA,GAAqBpB,EAA2B;EAAA,IAAAqB,EAAA;EAAA,IAAA1C,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAkB,aAAA,IAAAlB,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAA+B,QAAA,IAAA/B,CAAA,SAAAK,IAAA,IAAAL,CAAA,SAAA6B,WAAA;IAK9Ca,EAAA,GAAAA,CAAAC,CAAA,EAAAC,EAAA;MAAI,MAAAC,oBAAA,GAAAD,EAA4B,KAAAnC,SAAA,WAA5BmC,EAA4B;MAC9B,MAAAE,GAAA,GAAYH,CAAA,IAAKA,CAAA,CAAAI,MAAQ,GAAGJ,CAAA,CAAAI,MAAA,CAAAd,KAAA,GAAiBU,CAAA;MAC7CzB,aAAA;QAAA8B,IAAA,EACQ;QAAA9C,eAAA,EACWA,eAAA,IAAoBE,OAAA,IAAW0C,GAAA,IAAM;QAAAzC,IAAA;QAAA4B,KAAA,EAE/Ca;MAAA,CACT;MAAA,KAEKD,oBAAA;QAAA,IACC,OAAOhB,WAAA,KAAgB;UAAA,IAcrBE,QAAA,UAAa;YAGfkB,UAAA;cACEpB,WAAA,KAAY;YAAA,KACX;UAAA;QAAA;MAAA;IAAA;IAIX7B,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAkB,aAAA;IAAAlB,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAA+B,QAAA;IAAA/B,CAAA,OAAAK,IAAA;IAAAL,CAAA,OAAA6B,WAAA;IAAA7B,CAAA,OAAA0C,EAAA;EAAA;IAAAA,EAAA,GAAA1C,CAAA;EAAA;EAlCF,MAAAkD,QAAA,GAAiBR,EAmCuD;EAAA,IAAAE,EAAA;EAOlD,MAAAO,EAAA,GAAA5B,KAAA,EAAA6B,gBAAA;EACR,MAAAC,EAAA,GAAAzC,UAAA,IAAcC,YAAA;EACV,MAAAyC,EAAA,GAAA/B,KAAA,EAAAgB,YAAA;EAAO,IAAAgB,EAAA;EAAA,IAAAvD,CAAA,SAAAuB,KAAA,EAAAiC,UAAA;IACTD,EAAA,GAAAhC,KAAA,EAAAiC,UAAA,MAAuB;IAAAxD,CAAA,OAAAuB,KAAA,EAAAiC,UAAA;IAAAxD,CAAA,OAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EAO7B,MAAAyD,GAAA,GAAAlC,KAAA,EAAAmC,IAAA;EACe,MAAAC,GAAA,GAAApC,KAAA,EAAAqC,mBAAA;EAGd,MAAAC,GAAA,GAAAtC,KAAA,EAAAY,KAAA;EAAO,IAAA2B,GAAA;EAAA,IAAA9D,CAAA,SAAAgC,aAAA,IAAAhC,CAAA,SAAAkC,YAAA,IAAAlC,CAAA,SAAAa,YAAA,IAAAb,CAAA,SAAAK,IAAA,IAAAL,CAAA,SAAAY,UAAA,IAAAZ,CAAA,SAAAkD,QAAA,IAAAlD,CAAA,SAAAoC,SAAA,IAAApC,CAAA,SAAAW,SAAA,IAAAX,CAAA,SAAAyD,GAAA,IAAAzD,CAAA,SAAA2D,GAAA,IAAA3D,CAAA,SAAA6D,GAAA,IAAA7D,CAAA,SAAAmD,EAAA,IAAAnD,CAAA,SAAAqD,EAAA,IAAArD,CAAA,SAAAsD,EAAA,IAAAtD,CAAA,SAAAuD,EAAA,IAAAvD,CAAA,SAAAiC,KAAA;IAfT6B,GAAA;MAAAV,gBAAA,EACaD,EAAO;MAAAY,QAAA,EACfV,EAAc;MAAAd,YAAA,EACVe,EAAO;MAAAE,UAAA,EACTD,EAAuB;MAAAvB,aAAA;MAAAgC,gBAAA,EAEjBnD,YAAA;MAAAoD,cAAA,EACFrD,UAAA;MAAAsD,aAAA,EACDvD,SAAA;MAAAuB,YAAA;MAAA7B,IAAA;MAAAqD,IAAA,EAGTD,GAAO;MAAAG,mBAAA,EACQD,GAAO;MAAAT,QAAA;MAAAd,SAAA;MAAAD,KAAA,EAGrB0B,GAAO;MAAA5B;IAAA;IAEhBjC,CAAA,OAAAgC,aAAA;IAAAhC,CAAA,OAAAkC,YAAA;IAAAlC,CAAA,OAAAa,YAAA;IAAAb,CAAA,OAAAK,IAAA;IAAAL,CAAA,OAAAY,UAAA;IAAAZ,CAAA,OAAAkD,QAAA;IAAAlD,CAAA,OAAAoC,SAAA;IAAApC,CAAA,OAAAW,SAAA;IAAAX,CAAA,OAAAyD,GAAA;IAAAzD,CAAA,OAAA2D,GAAA;IAAA3D,CAAA,OAAA6D,GAAA;IAAA7D,CAAA,OAAAmD,EAAA;IAAAnD,CAAA,OAAAqD,EAAA;IAAArD,CAAA,OAAAsD,EAAA;IAAAtD,CAAA,OAAAuD,EAAA;IAAAvD,CAAA,OAAAiC,KAAA;IAAAjC,CAAA,OAAA8D,GAAA;EAAA;IAAAA,GAAA,GAAA9D,CAAA;EAAA;EAAA4C,EAAA,GAjBOkB,GAiBP;EAlBF,MAAAK,MAAA,GAAkCvB,EA8B/B;EAAA,IAAAwB,GAAA;EAAA,IAAApE,CAAA,SAAAgB,cAAA,IAAAhB,CAAA,SAAAyB,MAAA,IAAAzB,CAAA,SAAAE,eAAA,IAAAF,CAAA,SAAAkB,aAAA,IAAAlB,CAAA,SAAA8B,YAAA,IAAA9B,CAAA,SAAAuB,KAAA,IAAAvB,CAAA,SAAA0B,OAAA,IAAA1B,CAAA,SAAA2B,aAAA,IAAA3B,CAAA,SAAA4B,cAAA,IAAA5B,CAAA,SAAAI,OAAA,IAAAJ,CAAA,SAAAe,EAAA,IAAAf,CAAA,SAAAiB,SAAA,IAAAjB,CAAA,SAAAK,IAAA,IAAAL,CAAA,SAAAyC,YAAA,IAAAzC,CAAA,SAAAwB,CAAA,IAAAxB,CAAA,SAAAc,IAAA,IAAAd,CAAA,SAAAQ,QAAA,IAAAR,CAAA,SAAAiC,KAAA;IAKDmC,GAAA,GAAAA,CAAA;MACE,MAAAC,aAAA,SAAAA,CAAA;QACE,IAAAC,eAAA,GAAsBrC,KAAA;QAAA,IAElBV,KAAA,EAAAmC,IAAA,IAAea,KAAA,CAAAC,OAAA,CAAcjD,KAAA,CAAAmC,IAAU;UACzCY,eAAA,CAAAA,CAAA,CAAkB3C,aAAA,CAActB,IAAA;QAAhC;QAGF,IAAAkC,YAAA,GAAuCD,gBAAA,CAAAmC,OAAA;QACvC,IAAAC,OAAA,GAA8BrC,SAAA,CAAAoC,OAAA;QAE9B,MAAAE,IAAA,GAAajD,OAAA;QACb,MAAAkD,OAAA,GACE,OAAOpE,QAAA,KAAa,mBACVA,QAAA,CAAS8D,eAAA;UAAAvD,EAAA;UAAA8D,SAAA,EAAApE,SAAA;UAAAO,cAAA;UAAA2D,IAAA,EAIP7C,YAAA,EAAAJ,OAAA,GAAwBI,YAAA,CAAAJ,OAAA,CAAoB,IAAKiD,IAAA;UAAAG,KAAA,EAChD;UAAA7D,SAAA;UAAAZ,IAAA,EAEDoC,YAAA;UAAAsC,WAAA;UAAAC,GAAA;YAAAC,OAAA;cAAAxD;YAAA;YAAAD,CAAA;YAAAV;UAAA;UAAAoE,WAAA,EASOtD,cAAA,CAAevB,IAAA;QAAA,CAC9B,IACA,OAAOiC,gBAAA,CAAAmC,OAAA,KAA6B,WAClCnC,gBAAA,CAAAmC,OAAA,GACApC,SAAA,CAAAoC,OAAiB;QAAA,IAErB,OAAOG,OAAA,KAAY;UACrBzC,OAAA,CAAAA,CAAA,CAAAA,KAAA;UACAI,YAAA,CAAAA,CAAA,CAAeqC,OAAA;QAAf;UAAA,IACS,OAAOA,OAAA,KAAY;YAC5BzC,OAAA,CAAAA,CAAA,CAAQyC,OAAA;YACRrC,YAAA,CAAAA,CAAA,CAAAA,SAAA;UAAA;QAAA;QAAA,IAKEJ,OAAA,KAAUE,SAAA,CAAAoC,OAAiB,IAAIlC,YAAA,KAAiBD,gBAAA,CAAAmC,OAAwB;UAC1EpC,SAAA,CAAAoC,OAAA,GAAoBtC,OAAA;UACpBG,gBAAA,CAAAmC,OAAA,GAA2BlC,YAAA;UAE3B,MAAA4C,MAAA;YAAAnC,IAAA,EACQ;YAAAT,YAAA;YAAAlC,IAAA;YAAAqD,IAAA,EAGAnC,KAAA,EAAAmC,IAAA;YAAAvB,KAAA,EACNA,OAAA;YAAA3B,QAAA;YAAAyB;UAAA;UAGF,IAEI/B,eAAA,KAAoBE,OAAA,GAAU,OAAO6B,KAAA,KAAU,YAAYA,KAAA,IAAQ,QAAQ;YAC7EkD,MAAA,CAAAjF,eAAA;UAAA;UAAA,IAGE,OAAOgB,aAAA,KAAkB;YAC3BA,aAAA,CAAciE,MAAA;UAAA;QAAA;MAAA;MAKfd,aAAA;IAAA;IACPrE,CAAA,OAAAgB,cAAA;IAAAhB,CAAA,OAAAyB,MAAA;IAAAzB,CAAA,OAAAE,eAAA;IAAAF,CAAA,OAAAkB,aAAA;IAAAlB,CAAA,OAAA8B,YAAA;IAAA9B,CAAA,OAAAuB,KAAA;IAAAvB,CAAA,OAAA0B,OAAA;IAAA1B,CAAA,OAAA2B,aAAA;IAAA3B,CAAA,OAAA4B,cAAA;IAAA5B,CAAA,OAAAI,OAAA;IAAAJ,CAAA,OAAAe,EAAA;IAAAf,CAAA,OAAAiB,SAAA;IAAAjB,CAAA,OAAAK,IAAA;IAAAL,CAAA,OAAAyC,YAAA;IAAAzC,CAAA,OAAAwB,CAAA;IAAAxB,CAAA,OAAAc,IAAA;IAAAd,CAAA,OAAAQ,QAAA;IAAAR,CAAA,OAAAiC,KAAA;IAAAjC,CAAA,OAAAoE,GAAA;EAAA;IAAAA,GAAA,GAAApE,CAAA;EAAA;EAcE,MAAAoF,GAAA,GAAA7D,KAAA,EAAAmC,IAAA;EAAO,IAAA2B,GAAA;EAAA,IAAArF,CAAA,SAAAgB,cAAA,IAAAhB,CAAA,SAAAE,eAAA,IAAAF,CAAA,SAAAkB,aAAA,IAAAlB,CAAA,SAAA0B,OAAA,IAAA1B,CAAA,SAAA2B,aAAA,IAAA3B,CAAA,SAAA4B,cAAA,IAAA5B,CAAA,SAAAe,EAAA,IAAAf,CAAA,SAAAiB,SAAA,IAAAjB,CAAA,SAAAK,IAAA,IAAAL,CAAA,SAAAoF,GAAA,IAAApF,CAAA,SAAAc,IAAA,IAAAd,CAAA,SAAAQ,QAAA,IAAAR,CAAA,SAAAiC,KAAA;IAZToD,GAAA,IACEpD,KAAA,EACA/B,eAAA,EACAgB,aAAA,EACAQ,OAAA,EACAE,cAAA,EACAD,aAAA,EACAZ,EAAA,EACAE,SAAA,EACAZ,IAAA,EACAS,IAAA,EACAN,QAAA,EACA4E,GAAO,EACPpE,cAAA;IACDhB,CAAA,OAAAgB,cAAA;IAAAhB,CAAA,OAAAE,eAAA;IAAAF,CAAA,OAAAkB,aAAA;IAAAlB,CAAA,OAAA0B,OAAA;IAAA1B,CAAA,OAAA2B,aAAA;IAAA3B,CAAA,OAAA4B,cAAA;IAAA5B,CAAA,OAAAe,EAAA;IAAAf,CAAA,OAAAiB,SAAA;IAAAjB,CAAA,OAAAK,IAAA;IAAAL,CAAA,OAAAoF,GAAA;IAAApF,CAAA,OAAAc,IAAA;IAAAd,CAAA,OAAAQ,QAAA;IAAAR,CAAA,OAAAiC,KAAA;IAAAjC,CAAA,OAAAqF,GAAA;EAAA;IAAAA,GAAA,GAAArF,CAAA;EAAA;EAxFHhB,kBAAA,CACEoF,GAuEA,OAEAiB,GAcC;EAAA,OAGIlB,MAAA;AAAA,CACT;AAnNwB,SAAAhD,MAAAlB,EAAA;EAsBe,SAAAqF,QAAA,IAAArF,EAAa;EAAA,OAAKqF,QAAA;AAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { FieldState, FilterOptionsResult, Row, Validate } from 'payload';
1
+ import type { FieldState, FilterOptionsResult, Option, Row, Validate } from 'payload';
2
2
  export type Options = {
3
3
  disableFormData?: boolean;
4
4
  hasRows?: boolean;
@@ -38,6 +38,7 @@ export type FieldType<T> = {
38
38
  path: string;
39
39
  readOnly?: boolean;
40
40
  rows?: Row[];
41
+ selectFilterOptions?: Option[];
41
42
  setValue: (val: unknown, disableModifyingForm?: boolean) => void;
42
43
  showError: boolean;
43
44
  valid?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAE7E,MAAM,MAAM,OAAO,GAAG;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,gBAAgB,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAA;IACjD,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAErF,MAAM,MAAM,OAAO,GAAG;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,gBAAgB,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAA;IACjD,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/useField/types.ts"],"sourcesContent":["import type { FieldState, FilterOptionsResult, Row, Validate } from 'payload'\n\nexport type Options = {\n disableFormData?: boolean\n hasRows?: boolean\n /**\n * If `path` is provided to this hook, it will be used outright. This is useful when calling this hook directly within a custom component.\n * Otherwise, the field will attempt to get the path from the `FieldPathContext` via the `useFieldPath` hook.\n * If still not found, the `potentiallyStalePath` arg will be used. See the note below about why this is important.\n */\n path?: string\n /**\n * Custom server components receive a static `path` prop at render-time, leading to temporarily stale paths when re-ordering rows in form state.\n * This is because when manipulating rows, field paths change in form state, but the prop remains the same until the component is re-rendered on the server.\n * This causes the component to temporarily point to the wrong field in form state until the server responds with a freshly rendered component.\n * To prevent this, fields are wrapped with a `FieldPathContext` which is guaranteed to be up-to-date.\n * The `path` prop that Payload's default fields receive, then, are sent into this hook as the `potentiallyStalePath` arg.\n * This ensures that:\n * 1. Custom components that use this hook directly will still respect the `path` prop as top priority.\n * 2. Custom server components that blindly spread their props into default Payload fields still prefer the dynamic path from context.\n * 3. Components that render default Payload fields directly do not require a `FieldPathProvider`, e.g. the email field in the account view.\n */\n potentiallyStalePath?: string\n /**\n * Client-side validation function fired when the form is submitted.\n */\n validate?: Validate\n}\n\nexport type FieldType<T> = {\n customComponents?: FieldState['customComponents']\n disabled: boolean\n errorMessage?: string\n errorPaths?: string[]\n filterOptions?: FilterOptionsResult\n formInitializing: boolean\n formProcessing: boolean\n formSubmitted: boolean\n initialValue?: T\n path: string\n readOnly?: boolean\n rows?: Row[]\n setValue: (val: unknown, disableModifyingForm?: boolean) => void\n showError: boolean\n valid?: boolean\n value: T\n}\n"],"mappings":"AA6BA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/forms/useField/types.ts"],"sourcesContent":["import type { FieldState, FilterOptionsResult, Option, Row, Validate } from 'payload'\n\nexport type Options = {\n disableFormData?: boolean\n hasRows?: boolean\n /**\n * If `path` is provided to this hook, it will be used outright. This is useful when calling this hook directly within a custom component.\n * Otherwise, the field will attempt to get the path from the `FieldPathContext` via the `useFieldPath` hook.\n * If still not found, the `potentiallyStalePath` arg will be used. See the note below about why this is important.\n */\n path?: string\n /**\n * Custom server components receive a static `path` prop at render-time, leading to temporarily stale paths when re-ordering rows in form state.\n * This is because when manipulating rows, field paths change in form state, but the prop remains the same until the component is re-rendered on the server.\n * This causes the component to temporarily point to the wrong field in form state until the server responds with a freshly rendered component.\n * To prevent this, fields are wrapped with a `FieldPathContext` which is guaranteed to be up-to-date.\n * The `path` prop that Payload's default fields receive, then, are sent into this hook as the `potentiallyStalePath` arg.\n * This ensures that:\n * 1. Custom components that use this hook directly will still respect the `path` prop as top priority.\n * 2. Custom server components that blindly spread their props into default Payload fields still prefer the dynamic path from context.\n * 3. Components that render default Payload fields directly do not require a `FieldPathProvider`, e.g. the email field in the account view.\n */\n potentiallyStalePath?: string\n /**\n * Client-side validation function fired when the form is submitted.\n */\n validate?: Validate\n}\n\nexport type FieldType<T> = {\n customComponents?: FieldState['customComponents']\n disabled: boolean\n errorMessage?: string\n errorPaths?: string[]\n filterOptions?: FilterOptionsResult\n formInitializing: boolean\n formProcessing: boolean\n formSubmitted: boolean\n initialValue?: T\n path: string\n readOnly?: boolean\n rows?: Row[]\n selectFilterOptions?: Option[]\n setValue: (val: unknown, disableModifyingForm?: boolean) => void\n showError: boolean\n valid?: boolean\n value: T\n}\n"],"mappings":"AA6BA","ignoreList":[]}
@@ -60,7 +60,7 @@ export const CollectionListHeader = ({
60
60
  disableBulkDelete: disableBulkDelete,
61
61
  disableBulkEdit: disableBulkEdit,
62
62
  label: getTranslation(collectionConfig?.labels?.plural, i18n)
63
- }, "list-selection"), collectionConfig.admin.folders && /*#__PURE__*/_jsx(ListFolderPills, {
63
+ }, "list-selection"), collectionConfig.folders && /*#__PURE__*/_jsx(ListFolderPills, {
64
64
  collectionConfig: collectionConfig,
65
65
  viewType: viewType
66
66
  }, "list-header-buttons")].filter(Boolean),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","useListDrawerContext","ListFolderPills","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListCreateNewButton","useConfig","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","onBulkUploadSuccess","openBulkUpload","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","_jsx","Actions","slug","AfterListHeaderContent","_jsxs","_Fragment","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","admin","folders"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { ListFolderPills } from '../../../elements/ListFolderPills/index.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n /** @deprecated This prop will be removed in the next major version.\n *\n * Opening of the bulk upload modal is handled internally.\n *\n * Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.\n */\n openBulkUpload: () => void\n smallBreak: boolean\n /** @deprecated This prop will be removed in the next major version. */\n t?: TFunction\n TitleActions?: React.ReactNode[]\n viewType?: 'folders' | 'list'\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n i18n,\n isBulkUploadEnabled,\n newDocumentURL,\n onBulkUploadSuccess,\n openBulkUpload,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[\n <CloseModalButton\n className={`${drawerBaseClass}__header-close`}\n key=\"close-button\"\n slug={drawerSlug}\n />,\n ]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n />\n ),\n collectionConfig.admin.folders && (\n <ListFolderPills\n collectionConfig={collectionConfig}\n key=\"list-header-buttons\"\n viewType={viewType}\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && (\n <ListCreateNewButton\n collectionConfig={collectionConfig}\n hasCreatePermission={hasCreatePermission}\n key=\"list-header-create-new-doc\"\n newDocumentURL={newDocumentURL}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n openBulkUpload={openBulkUpload}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,eAAe,QAAQ;AAChC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,UAAU,QAAQ;AAC3B,SACEC,oBAAoB,EACpBC,mBAAmB,QACd;AACP,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,eAAA,GAAkB;AA4BxB,OAAO,MAAMC,oBAAA,GAAkDA,CAAC;EAC9DC,SAAS;EACTC,gBAAgB;EAChBC,WAAW;EACXC,iBAAiB;EACjBC,eAAe;EACfC,mBAAmB;EACnBC,IAAI;EACJC,mBAAmB;EACnBC,cAAc;EACdC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC;AAAQ,CACT;EACC,MAAM;IAAEC,MAAM;IAAEC;EAAe,CAAE,GAAGlB,SAAA;EACpC,MAAM;IAAEmB,UAAU;IAAEC,UAAU;IAAEC;EAAc,CAAE,GAAG5B,oBAAA;EAEnD,IAAI2B,UAAA,EAAY;IACd,oBACEE,IAAA,CAACzB,UAAA;MACC0B,OAAA,EAAS,C,aACPD,IAAA,CAAC9B,gBAAA;QACCY,SAAA,EAAW,GAAGF,eAAA,gBAA+B;QAE7CsB,IAAA,EAAML;SADF,gBAGP;MACDM,sBAAA,eACEC,KAAA,CAAAC,SAAA;mBACGrB,WAAA,E,aACAgB,IAAA,CAAC3B,wBAAA;;MAGNS,SAAA,EAAW,GAAGF,eAAA,UAAyB;MACvC0B,KAAA,EAAOtC,cAAA,CACL4B,eAAA,CAAgB;QAAEW,cAAA,EAAgBR,cAAA,CAAeS;MAAM,IAAIC,MAAA,EAAQC,MAAA,EACnEtB,IAAA;MAEFuB,YAAA,EAAc,C,aACZX,IAAA,CAAC1B,4BAAA;QACCa,mBAAA,EAAqBA;SACjB,8BAEP,CAACyB,MAAM,CAACC,OAAA;;EAGf;EAEA,oBACEb,IAAA,CAACzB,UAAA;IACC0B,OAAA,EAAS,CACP,CAACR,UAAA,iBACCO,IAAA,CAACrB,aAAA;MACCI,gBAAA,EAAkBA,gBAAA;MAClBE,iBAAA,EAAmBA,iBAAA;MACnBC,eAAA,EAAiBA,eAAA;MAEjB4B,KAAA,EAAO9C,cAAA,CAAee,gBAAA,EAAkB0B,MAAA,EAAQC,MAAA,EAAQtB,IAAA;OADpD,mBAIRL,gBAAA,CAAiBgC,KAAK,CAACC,OAAO,iBAC5BhB,IAAA,CAAC5B,eAAA;MACCW,gBAAA,EAAkBA,gBAAA;MAElBW,QAAA,EAAUA;OADN,uBAIT,CAACkB,MAAM,CAACC,OAAA;IACTV,sBAAA,EAAwBnB,WAAA;IACxBF,SAAA,EAAWA,SAAA;IACXwB,KAAA,EAAOtC,cAAA,CAAee,gBAAA,EAAkB0B,MAAA,EAAQC,MAAA,EAAQtB,IAAA;IACxDuB,YAAA,EAAc,CACZxB,mBAAA,iBACEa,IAAA,CAACvB,mBAAA;MACCM,gBAAA,EAAkBA,gBAAA;MAClBI,mBAAA,EAAqBA,mBAAA;MAErBG,cAAA,EAAgBA;OADZ,+BAIRH,mBAAA,IAAuBE,mBAAA,iBACrBW,IAAA,CAACxB,oBAAA;MACC+B,cAAA,EAAgBxB,gBAAA,CAAiBmB,IAAI;MACrCf,mBAAA,EAAqBA,mBAAA;MACrBE,mBAAA,EAAqBA,mBAAA;MAErBE,mBAAA,EAAqBA,mBAAA;MACrBC,cAAA,EAAgBA;OAFZ,2BAKT,CAACoB,MAAM,CAACC,OAAA;;AAGf","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","CloseModalButton","useListDrawerContext","ListFolderPills","DrawerRelationshipSelect","ListDrawerCreateNewDocButton","ListHeader","ListBulkUploadButton","ListCreateNewButton","useConfig","ListSelection","drawerBaseClass","CollectionListHeader","className","collectionConfig","Description","disableBulkDelete","disableBulkEdit","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","onBulkUploadSuccess","openBulkUpload","smallBreak","viewType","config","getEntityConfig","drawerSlug","isInDrawer","selectedOption","_jsx","Actions","slug","AfterListHeaderContent","_jsxs","_Fragment","title","collectionSlug","value","labels","plural","TitleActions","filter","Boolean","label","folders"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { CloseModalButton } from '../../../elements/CloseModalButton/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { ListFolderPills } from '../../../elements/ListFolderPills/index.js'\nimport { DrawerRelationshipSelect } from '../../../elements/ListHeader/DrawerRelationshipSelect/index.js'\nimport { ListDrawerCreateNewDocButton } from '../../../elements/ListHeader/DrawerTitleActions/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport {\n ListBulkUploadButton,\n ListCreateNewButton,\n} from '../../../elements/ListHeader/TitleActions/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { ListSelection } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n Actions?: React.ReactNode[]\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n hasCreatePermission: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n onBulkUploadSuccess?: () => void\n /** @deprecated This prop will be removed in the next major version.\n *\n * Opening of the bulk upload modal is handled internally.\n *\n * Prefer `onBulkUploadSuccess` usage to handle the success of the bulk upload.\n */\n openBulkUpload: () => void\n smallBreak: boolean\n /** @deprecated This prop will be removed in the next major version. */\n t?: TFunction\n TitleActions?: React.ReactNode[]\n viewType?: 'folders' | 'list'\n}\n\nexport const CollectionListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n hasCreatePermission,\n i18n,\n isBulkUploadEnabled,\n newDocumentURL,\n onBulkUploadSuccess,\n openBulkUpload,\n smallBreak,\n viewType,\n}) => {\n const { config, getEntityConfig } = useConfig()\n const { drawerSlug, isInDrawer, selectedOption } = useListDrawerContext()\n\n if (isInDrawer) {\n return (\n <ListHeader\n Actions={[\n <CloseModalButton\n className={`${drawerBaseClass}__header-close`}\n key=\"close-button\"\n slug={drawerSlug}\n />,\n ]}\n AfterListHeaderContent={\n <>\n {Description}\n {<DrawerRelationshipSelect />}\n </>\n }\n className={`${drawerBaseClass}__header`}\n title={getTranslation(\n getEntityConfig({ collectionSlug: selectedOption.value })?.labels?.plural,\n i18n,\n )}\n TitleActions={[\n <ListDrawerCreateNewDocButton\n hasCreatePermission={hasCreatePermission}\n key=\"list-drawer-create-new-doc\"\n />,\n ].filter(Boolean)}\n />\n )\n }\n\n return (\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n collectionConfig={collectionConfig}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n label={getTranslation(collectionConfig?.labels?.plural, i18n)}\n />\n ),\n collectionConfig.folders && (\n <ListFolderPills\n collectionConfig={collectionConfig}\n key=\"list-header-buttons\"\n viewType={viewType}\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n className={className}\n title={getTranslation(collectionConfig?.labels?.plural, i18n)}\n TitleActions={[\n hasCreatePermission && (\n <ListCreateNewButton\n collectionConfig={collectionConfig}\n hasCreatePermission={hasCreatePermission}\n key=\"list-header-create-new-doc\"\n newDocumentURL={newDocumentURL}\n />\n ),\n hasCreatePermission && isBulkUploadEnabled && (\n <ListBulkUploadButton\n collectionSlug={collectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n isBulkUploadEnabled={isBulkUploadEnabled}\n key=\"list-header-bulk-upload\"\n onBulkUploadSuccess={onBulkUploadSuccess}\n openBulkUpload={openBulkUpload}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":";AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,eAAe,QAAQ;AAChC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,UAAU,QAAQ;AAC3B,SACEC,oBAAoB,EACpBC,mBAAmB,QACd;AACP,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,eAAA,GAAkB;AA4BxB,OAAO,MAAMC,oBAAA,GAAkDA,CAAC;EAC9DC,SAAS;EACTC,gBAAgB;EAChBC,WAAW;EACXC,iBAAiB;EACjBC,eAAe;EACfC,mBAAmB;EACnBC,IAAI;EACJC,mBAAmB;EACnBC,cAAc;EACdC,mBAAmB;EACnBC,cAAc;EACdC,UAAU;EACVC;AAAQ,CACT;EACC,MAAM;IAAEC,MAAM;IAAEC;EAAe,CAAE,GAAGlB,SAAA;EACpC,MAAM;IAAEmB,UAAU;IAAEC,UAAU;IAAEC;EAAc,CAAE,GAAG5B,oBAAA;EAEnD,IAAI2B,UAAA,EAAY;IACd,oBACEE,IAAA,CAACzB,UAAA;MACC0B,OAAA,EAAS,C,aACPD,IAAA,CAAC9B,gBAAA;QACCY,SAAA,EAAW,GAAGF,eAAA,gBAA+B;QAE7CsB,IAAA,EAAML;SADF,gBAGP;MACDM,sBAAA,eACEC,KAAA,CAAAC,SAAA;mBACGrB,WAAA,E,aACAgB,IAAA,CAAC3B,wBAAA;;MAGNS,SAAA,EAAW,GAAGF,eAAA,UAAyB;MACvC0B,KAAA,EAAOtC,cAAA,CACL4B,eAAA,CAAgB;QAAEW,cAAA,EAAgBR,cAAA,CAAeS;MAAM,IAAIC,MAAA,EAAQC,MAAA,EACnEtB,IAAA;MAEFuB,YAAA,EAAc,C,aACZX,IAAA,CAAC1B,4BAAA;QACCa,mBAAA,EAAqBA;SACjB,8BAEP,CAACyB,MAAM,CAACC,OAAA;;EAGf;EAEA,oBACEb,IAAA,CAACzB,UAAA;IACC0B,OAAA,EAAS,CACP,CAACR,UAAA,iBACCO,IAAA,CAACrB,aAAA;MACCI,gBAAA,EAAkBA,gBAAA;MAClBE,iBAAA,EAAmBA,iBAAA;MACnBC,eAAA,EAAiBA,eAAA;MAEjB4B,KAAA,EAAO9C,cAAA,CAAee,gBAAA,EAAkB0B,MAAA,EAAQC,MAAA,EAAQtB,IAAA;OADpD,mBAIRL,gBAAA,CAAiBgC,OAAO,iBACtBf,IAAA,CAAC5B,eAAA;MACCW,gBAAA,EAAkBA,gBAAA;MAElBW,QAAA,EAAUA;OADN,uBAIT,CAACkB,MAAM,CAACC,OAAA;IACTV,sBAAA,EAAwBnB,WAAA;IACxBF,SAAA,EAAWA,SAAA;IACXwB,KAAA,EAAOtC,cAAA,CAAee,gBAAA,EAAkB0B,MAAA,EAAQC,MAAA,EAAQtB,IAAA;IACxDuB,YAAA,EAAc,CACZxB,mBAAA,iBACEa,IAAA,CAACvB,mBAAA;MACCM,gBAAA,EAAkBA,gBAAA;MAClBI,mBAAA,EAAqBA,mBAAA;MAErBG,cAAA,EAAgBA;OADZ,+BAIRH,mBAAA,IAAuBE,mBAAA,iBACrBW,IAAA,CAACxB,oBAAA;MACC+B,cAAA,EAAgBxB,gBAAA,CAAiBmB,IAAI;MACrCf,mBAAA,EAAqBA,mBAAA;MACrBE,mBAAA,EAAqBA,mBAAA;MAErBE,mBAAA,EAAqBA,mBAAA;MACrBC,cAAA,EAAgBA;OAFZ,2BAKT,CAACoB,MAAM,CAACC,OAAA;;AAGf","ignoreList":[]}