@payloadcms/ui 4.0.0-internal.183b315 → 4.0.0-internal.293e026

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 (96) hide show
  1. package/dist/css/colors.css +107 -60
  2. package/dist/elements/Chip/index.css +1 -1
  3. package/dist/elements/Combobox/index.css +8 -8
  4. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  5. package/dist/elements/DatePicker/DatePicker.js +4 -2
  6. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  7. package/dist/elements/DatePicker/index.css +5 -0
  8. package/dist/elements/DatePicker/index.js +1 -1
  9. package/dist/elements/DatePicker/index.js.map +1 -1
  10. package/dist/elements/GroupByControl/index.d.ts.map +1 -1
  11. package/dist/elements/GroupByControl/index.js +3 -0
  12. package/dist/elements/GroupByControl/index.js.map +1 -1
  13. package/dist/elements/ListControls/index.d.ts.map +1 -1
  14. package/dist/elements/ListControls/index.js +1 -1
  15. package/dist/elements/ListControls/index.js.map +1 -1
  16. package/dist/elements/ListSelection/index.css +1 -1
  17. package/dist/elements/Pill/index.css +1 -1
  18. package/dist/elements/PillSelector/index.css +1 -1
  19. package/dist/elements/Popup/index.d.ts.map +1 -1
  20. package/dist/elements/Popup/index.js +27 -10
  21. package/dist/elements/Popup/index.js.map +1 -1
  22. package/dist/elements/ReactSelect/index.css +53 -52
  23. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  24. package/dist/elements/ReactSelect/index.js +68 -9
  25. package/dist/elements/ReactSelect/index.js.map +1 -1
  26. package/dist/elements/ReactSelect/types.d.ts +6 -1
  27. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  28. package/dist/elements/ReactSelect/types.js.map +1 -1
  29. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
  30. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  31. package/dist/elements/TimezonePicker/index.css +73 -24
  32. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  33. package/dist/elements/TimezonePicker/index.js +31 -4
  34. package/dist/elements/TimezonePicker/index.js.map +1 -1
  35. package/dist/elements/WhereBuilder/Condition/index.css +1 -1
  36. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  37. package/dist/elements/WhereBuilder/Condition/index.js +3 -0
  38. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  39. package/dist/exports/client/index.d.ts +1 -1
  40. package/dist/exports/client/index.d.ts.map +1 -1
  41. package/dist/exports/client/index.js +1 -1
  42. package/dist/exports/client/index.js.map +3 -3
  43. package/dist/exports/shared/index.js +1 -1
  44. package/dist/exports/shared/index.js.map +2 -2
  45. package/dist/fields/Blocks/index.d.ts.map +1 -1
  46. package/dist/fields/Blocks/index.js +6 -11
  47. package/dist/fields/Blocks/index.js.map +1 -1
  48. package/dist/fields/Group/index.css +1 -1
  49. package/dist/fields/Join/index.js +1 -1
  50. package/dist/fields/Join/index.js.map +1 -1
  51. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +3 -3
  52. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  53. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  54. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  55. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  56. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  57. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  58. package/dist/icons/Dots/index.css +4 -4
  59. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  60. package/dist/providers/ListQuery/index.js +1 -8
  61. package/dist/providers/ListQuery/index.js.map +1 -1
  62. package/dist/providers/Theme/index.d.ts +17 -2
  63. package/dist/providers/Theme/index.d.ts.map +1 -1
  64. package/dist/providers/Theme/index.js +122 -73
  65. package/dist/providers/Theme/index.js.map +1 -1
  66. package/dist/styles.css +1 -1
  67. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -1
  68. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  69. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -1
  70. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  71. package/dist/utilities/copyDataFromLocale.js +1 -1
  72. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  73. package/dist/utilities/renderTable.js +1 -1
  74. package/dist/utilities/renderTable.js.map +1 -1
  75. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  76. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  77. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  78. package/dist/views/List/index.js +2 -2
  79. package/dist/views/List/index.js.map +1 -1
  80. package/dist/views/Verify/index.client.d.ts +4 -0
  81. package/dist/views/Verify/index.client.d.ts.map +1 -1
  82. package/dist/views/Verify/index.client.js +81 -0
  83. package/dist/views/Verify/index.client.js.map +1 -1
  84. package/dist/views/Verify/index.css +38 -0
  85. package/dist/views/Verify/index.d.ts +1 -1
  86. package/dist/views/Verify/index.d.ts.map +1 -1
  87. package/dist/views/Verify/index.js +13 -19
  88. package/dist/views/Verify/index.js.map +1 -1
  89. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
  90. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  91. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  92. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
  93. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  94. package/package.json +4 -4
  95. package/dist/views/Unauthorized/index.scss +0 -14
  96. package/dist/views/Verify/index.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["verticalListSortingStrategy","getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","CollapseAllToggle","DraggableSortableItem","DragOverlayPreview","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","Pill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","RowLabel","useField","withCondition","CirclePlusIcon","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","i18n","t","field","name","type","admin","className","description","isSortable","blockReferences","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","code","locale","config","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","blocksFilterOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","clientBlocks","clientBlocksAfterFilter","resolvedBlocks","blockReference","block","blocksMap","push","Array","isArray","filter","blockSlug","slug","includes","getBlockConfig","blockType","find","addRow","rowIndex","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","clipboardResult","getDataToCopy","formState","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaBlocks","pasteBlocks","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","styles","renderDragOverlay","activeId","activeIndex","findIndex","row","id","activeRow","blockConfig","showBlockName","disableBlockName","blockName","undefined","_jsx","header","CustomComponent","_jsxs","_Fragment","String","padStart","pillStyle","size","rowNumber","Boolean","join","replace","style","Fallback","as","count","withMessage","onClick","allowCopy","allowPaste","fieldValue","ids","map","onDragEnd","sortingStrategy","i","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","fields","parentPath","rowCount","buttonStyle","el","icon","iconPosition","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent, ClientBlock } from 'payload'\n\nimport { verticalListSortingStrategy } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { CollapseAllToggle } from '../../elements/CollapseAllToggle/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DragOverlayPreview } from '../../elements/DraggableSortable/DragOverlayPreview/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { CirclePlusIcon } from '../../icons/CirclePlus/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport './index.css'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n blockReferences,\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = minRowsProp ?? (required ? 1 : 0)\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n config,\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n blocksFilterOptions,\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const { clientBlocks, clientBlocksAfterFilter } = useMemo(() => {\n let resolvedBlocks: ClientBlock[] = []\n\n if (!blockReferences) {\n resolvedBlocks = blocks\n } else {\n for (const blockReference of blockReferences) {\n const block =\n typeof blockReference === 'string' ? config.blocksMap[blockReference] : blockReference\n if (block) {\n resolvedBlocks.push(block)\n }\n }\n }\n\n if (Array.isArray(blocksFilterOptions)) {\n const clientBlocksAfterFilter = resolvedBlocks.filter((block) => {\n const blockSlug = typeof block === 'string' ? block : block.slug\n return blocksFilterOptions.includes(blockSlug)\n })\n\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter,\n }\n }\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter: resolvedBlocks,\n }\n }, [blockReferences, blocks, blocksFilterOptions, config.blocksMap])\n\n const getBlockConfig = (blockType: string): ClientBlock | undefined =>\n config.blocksMap[blockType] ?? clientBlocks.find((block) => block.slug === blockType)\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({\n path,\n rowIndex,\n })\n },\n [path, removeFieldRow],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({ moveFromIndex, moveToIndex, path })\n },\n [moveFieldRow, path],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const clipboardResult = clipboardCopy({\n type,\n blocks: clientBlocks,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [clientBlocks, path, t, type, getFields],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaBlocks: clientBlocks,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [clientBlocks, getFields, path, replaceState, setModified, t],\n )\n\n const pasteBlocks = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const renderDragOverlay = useCallback(\n (activeId: number | string) => {\n const activeIndex = rows.findIndex((row) => row.id === activeId)\n if (activeIndex === -1) {\n return null\n }\n\n const activeRow = rows[activeIndex]\n const blockConfig = getBlockConfig(activeRow.blockType)\n\n if (!blockConfig) {\n return null\n }\n\n const showBlockName = !blockConfig.admin?.disableBlockName\n const blockName = showBlockName\n ? (getFields()?.[`${path}.${activeIndex}.blockName`]?.value as string)\n : undefined\n\n return (\n <DragOverlayPreview\n header={\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={rows?.[activeIndex]?.customComponents?.RowLabel}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(activeIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${activeRow.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(blockConfig.labels.singular, i18n)}\n </Pill>\n {blockName && <span className=\"section-title__text\">{blockName}</span>}\n </>\n }\n path={`${path}.${activeIndex}`}\n rowNumber={activeIndex}\n />\n </div>\n }\n />\n )\n },\n [rows, config.blocksMap, clientBlocks, i18n, path, getFields],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows.length > 0 && <CollapseAllToggle onClick={toggleCollapseAll} />}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n blocks={clientBlocks}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n getDataToCopy={() =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n })\n }\n onPaste={pasteBlocks}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n renderDragOverlay={isSortable && !readOnly && !disabled ? renderDragOverlay : undefined}\n sortingStrategy={verticalListSortingStrategy}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n\n const blockConfig = getBlockConfig(blockType)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={row.id}\n key={row.id}\n >\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n // Pass all blocks, not just clientBlocksAfterFilter, as existing blocks should still be displayed even if they don't match the new filter\n blocks={clientBlocks}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={rows?.[i]?.customComponents?.RowLabel}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!valid && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"danger\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={readOnly || disabled}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"ghost\"\n disabled={readOnly || disabled}\n el=\"span\"\n icon={<CirclePlusIcon />}\n iconPosition=\"left\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n // Only allow choosing filtered blocks\n blocks={clientBlocksAfterFilter}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["verticalListSortingStrategy","getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","CollapseAllToggle","DraggableSortableItem","DragOverlayPreview","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","Pill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","RowLabel","useField","withCondition","CirclePlusIcon","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","i18n","t","field","name","type","admin","className","description","isSortable","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","code","locale","config","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","blocksFilterOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","clientBlocks","clientBlocksAfterFilter","resolvedBlocks","blockOrSlug","block","blocksMap","push","Array","isArray","filter","blockSlug","slug","includes","getBlockConfig","blockType","find","addRow","rowIndex","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","clipboardResult","getDataToCopy","formState","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaBlocks","pasteBlocks","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","styles","renderDragOverlay","activeId","activeIndex","findIndex","row","id","activeRow","blockConfig","showBlockName","disableBlockName","blockName","undefined","_jsx","header","CustomComponent","_jsxs","_Fragment","String","padStart","pillStyle","size","rowNumber","Boolean","join","replace","style","Fallback","as","count","withMessage","onClick","allowCopy","allowPaste","fieldValue","ids","map","onDragEnd","sortingStrategy","i","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","fields","parentPath","rowCount","buttonStyle","el","icon","iconPosition","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent, ClientBlock } from 'payload'\n\nimport { verticalListSortingStrategy } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { CollapseAllToggle } from '../../elements/CollapseAllToggle/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DragOverlayPreview } from '../../elements/DraggableSortable/DragOverlayPreview/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { CirclePlusIcon } from '../../icons/CirclePlus/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport './index.css'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = minRowsProp ?? (required ? 1 : 0)\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n config,\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n blocksFilterOptions,\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const { clientBlocks, clientBlocksAfterFilter } = useMemo(() => {\n const resolvedBlocks: ClientBlock[] = []\n\n for (const blockOrSlug of blocks) {\n const block = typeof blockOrSlug === 'string' ? config.blocksMap[blockOrSlug] : blockOrSlug\n if (block) {\n resolvedBlocks.push(block)\n }\n }\n\n if (Array.isArray(blocksFilterOptions)) {\n const clientBlocksAfterFilter = resolvedBlocks.filter((block) => {\n const blockSlug = typeof block === 'string' ? block : block.slug\n return blocksFilterOptions.includes(blockSlug)\n })\n\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter,\n }\n }\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter: resolvedBlocks,\n }\n }, [blocks, blocksFilterOptions, config.blocksMap])\n\n const getBlockConfig = (blockType: string): ClientBlock | undefined =>\n config.blocksMap[blockType] ?? clientBlocks.find((block) => block.slug === blockType)\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({\n path,\n rowIndex,\n })\n },\n [path, removeFieldRow],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({ moveFromIndex, moveToIndex, path })\n },\n [moveFieldRow, path],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const clipboardResult = clipboardCopy({\n type,\n blocks: clientBlocks,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [clientBlocks, path, t, type, getFields],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaBlocks: clientBlocks,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [clientBlocks, getFields, path, replaceState, setModified, t],\n )\n\n const pasteBlocks = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const renderDragOverlay = useCallback(\n (activeId: number | string) => {\n const activeIndex = rows.findIndex((row) => row.id === activeId)\n if (activeIndex === -1) {\n return null\n }\n\n const activeRow = rows[activeIndex]\n const blockConfig = getBlockConfig(activeRow.blockType)\n\n if (!blockConfig) {\n return null\n }\n\n const showBlockName = !blockConfig.admin?.disableBlockName\n const blockName = showBlockName\n ? (getFields()?.[`${path}.${activeIndex}.blockName`]?.value as string)\n : undefined\n\n return (\n <DragOverlayPreview\n header={\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={rows?.[activeIndex]?.customComponents?.RowLabel}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(activeIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${activeRow.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(blockConfig.labels.singular, i18n)}\n </Pill>\n {blockName && <span className=\"section-title__text\">{blockName}</span>}\n </>\n }\n path={`${path}.${activeIndex}`}\n rowNumber={activeIndex}\n />\n </div>\n }\n />\n )\n },\n [rows, config.blocksMap, clientBlocks, i18n, path, getFields],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows.length > 0 && <CollapseAllToggle onClick={toggleCollapseAll} />}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n blocks={clientBlocks}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n getDataToCopy={() =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n })\n }\n onPaste={pasteBlocks}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n renderDragOverlay={isSortable && !readOnly && !disabled ? renderDragOverlay : undefined}\n sortingStrategy={verticalListSortingStrategy}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n\n const blockConfig = getBlockConfig(blockType)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={row.id}\n key={row.id}\n >\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n // Pass all blocks, not just clientBlocksAfterFilter, as existing blocks should still be displayed even if they don't match the new filter\n blocks={clientBlocks}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={rows?.[i]?.customComponents?.RowLabel}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!valid && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"danger\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={readOnly || disabled}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"ghost\"\n disabled={readOnly || disabled}\n el=\"span\"\n icon={<CirclePlusIcon />}\n iconPosition=\"left\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n // Only allow choosing filtered blocks\n blocks={clientBlocksAfterFilter}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -132,7 +132,7 @@
132
132
  left: calc(var(--gutter-h) * -1);
133
133
  right: calc(var(--gutter-h) * -1);
134
134
  height: 0;
135
- border-top: 1px solid var(--border-default);
135
+ border-top: var(--stroke-width-small) solid var(--color-border);
136
136
  }
137
137
  }
138
138
  }
@@ -73,7 +73,7 @@ const getInitialDrawerData = ({
73
73
  };
74
74
  }
75
75
  if (field.type === 'blocks') {
76
- for (const _block of field.blockReferences ?? field.blocks) {
76
+ for (const _block of field.blocks) {
77
77
  const block = typeof _block === 'string' ? config.blocksMap[_block] : _block;
78
78
  const blockInitialData = getInitialDrawerData({
79
79
  collectionSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ObjectIdImport","fieldAffectsData","flattenTopLevelFields","React","useMemo","ErrorPill","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","useTranslation","FieldDescription","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","config","docID","fields","segments","flattenedFields","keepPresentationalFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","_block","blockReferences","blocks","block","blocksMap","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","pathFromProps","docConfig","getEntityConfig","i18n","customComponents","AfterInput","BeforeInput","Description","Label","errorPaths","showError","potentiallyStalePath","fieldErrorCount","fieldHasErrors","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","disableTable","fieldPath","docs","count","withMessage","parent","joinPath","undefined","CustomComponent","Fallback","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientConfig,\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { fieldAffectsData, flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\nimport './index.css'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n config,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n config: ClientConfig\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields, {\n keepPresentationalFields: true,\n })\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || (field.type === 'group' && fieldAffectsData(field))) {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const _block of field.blockReferences ?? field.blocks) {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: { admin: { allowCreate, description } = {}, collection, label, localized, on, required },\n path: pathFromProps,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n } = useTranslation()\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Label } = {},\n errorPaths,\n path,\n showError,\n value,\n } = useField<PaginatedDocs>({\n potentiallyStalePath: pathFromProps,\n })\n\n const fieldErrorCount = errorPaths?.length || (showError ? 1 : 0)\n const fieldHasErrors = fieldErrorCount > 0\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = Array.isArray(collection)\n ? {}\n : {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, collection, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({\n collectionSlug: Array.isArray(field.collection) ? field.collection[0] : field.collection,\n })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n config,\n docID,\n fields: relatedCollection?.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, fieldHasErrors && 'error', 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n fieldPath={path}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <div className=\"join__header-wrapper\">\n <h4>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n {fieldHasErrors && <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />}\n </div>\n }\n parent={\n typeof docID !== 'undefined'\n ? {\n id: docID,\n collectionSlug: docConfig.slug,\n joinPath: path,\n }\n : undefined\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ObjectIdImport","fieldAffectsData","flattenTopLevelFields","React","useMemo","ErrorPill","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","useTranslation","FieldDescription","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","config","docID","fields","segments","flattenedFields","keepPresentationalFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","_block","blocks","block","blocksMap","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","pathFromProps","docConfig","getEntityConfig","i18n","customComponents","AfterInput","BeforeInput","Description","Label","errorPaths","showError","potentiallyStalePath","fieldErrorCount","fieldHasErrors","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","disableTable","fieldPath","docs","count","withMessage","parent","joinPath","undefined","CustomComponent","Fallback","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientConfig,\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { fieldAffectsData, flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\nimport './index.css'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n config,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n config: ClientConfig\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields, {\n keepPresentationalFields: true,\n })\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || (field.type === 'group' && fieldAffectsData(field))) {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const _block of field.blocks) {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: { admin: { allowCreate, description } = {}, collection, label, localized, on, required },\n path: pathFromProps,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n\n const { i18n } = useTranslation()\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Label } = {},\n errorPaths,\n path,\n showError,\n value,\n } = useField<PaginatedDocs>({\n potentiallyStalePath: pathFromProps,\n })\n\n const fieldErrorCount = errorPaths?.length || (showError ? 1 : 0)\n const fieldHasErrors = fieldErrorCount > 0\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = Array.isArray(collection)\n ? {}\n : {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, collection, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({\n collectionSlug: Array.isArray(field.collection) ? field.collection[0] : field.collection,\n })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n config,\n docID,\n fields: relatedCollection?.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, fieldHasErrors && 'error', 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n fieldPath={path}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <div className=\"join__header-wrapper\">\n <h4>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n {fieldHasErrors && <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />}\n </div>\n }\n parent={\n typeof docID !== 'undefined'\n ? {\n id: docID,\n collectionSlug: docConfig.slug,\n joinPath: path,\n }\n : undefined\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  @layer payload-default {
2
2
  .relationship--multi-value-label {
3
3
  display: flex;
4
- padding-inline-start: 0.5rem;
5
- gap: 0.25rem;
4
+ padding-inline-start: var(--spacer-2);
5
+ gap: var(--spacer-1);
6
6
  }
7
7
 
8
8
  .relationship--multi-value-label__content {
@@ -28,7 +28,7 @@
28
28
  display: flex;
29
29
  align-items: center;
30
30
  justify-content: center;
31
- margin-left: 0.25rem;
31
+ margin-left: var(--spacer-1);
32
32
  pointer-events: all;
33
33
  border-radius: var(--radius-small);
34
34
  border: var(--stroke-width-small) solid transparent;
@@ -285,7 +285,7 @@ export const addFieldStatePromise = async args => {
285
285
  rowMetadata
286
286
  } = blocksValue.reduce((acc, row, i) => {
287
287
  const blockTypeToMatch = row.blockType;
288
- const block = req.payload.blocks[blockTypeToMatch] ?? (field.blockReferences ?? field.blocks).find(blockType => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch);
288
+ const block = req.payload.blocks[blockTypeToMatch] ?? field.blocks.find(blockType => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch);
289
289
  if (!block) {
290
290
  throw new Error(`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}.`);
291
291
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","tabHasName","resolveFilterOptions","isRowCollapsed","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","readOnly","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","type","name","undefined","value","initialValue","hasPermission","read","access","siblingData","validate","validationResult","jsonError","JSON","parse","e","event","previousValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","rowIndex","rowPath","toHexString","idKey","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","i","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","isNamedTab","shouldContinue","siblingDoc","childPermissions","tabSelect","tabPermissions","tabs","tab","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field | TabAsField\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n // Short-circuit to prevent hidden fields from recursing and rendering.\n // Note: `tab` is excluded bc tab visibility is keyed by `field.id` rather than `path`.\n // The tab branch below owns that write and the skip-recursion.\n if (passesCondition === false && field.type !== 'tab') {\n if (fieldAffectsData(field) && data?.[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n return\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field) && field.type !== 'tab') {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n 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 = 'validate' in field ? field.validate : undefined\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, rowIndex: number) => {\n const rowPath = path + '.' + rowIndex\n\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: Awaited<\n ReturnType<typeof validateBlocksFilterOptions>\n > | null = null\n if (field.filterOptions) {\n filterOptionsValidationResult = await validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.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 rowPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = rowPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = rowPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n await iterateFields({\n id,\n mockRSCs,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tab') {\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: { ...field, type: 'tab' },\n select,\n selectMode,\n siblingDoc: data?.[field.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n // Tab visibility on the client is keyed by `field.id`, not `path` (like all other fields).\n if (field?.id) {\n state[field.id] = {\n passesCondition,\n }\n\n // Flag newly added tab entries so the client accepts them during merge.\n // Otherwise, tabs revealed after a hidden ancestor becomes visible would never make it into client form state.\n if (!renderAllFields && !previousFormState?.[field.id]) {\n state[field.id].addedByServer = true\n }\n }\n\n if (!passesCondition) {\n return\n }\n\n let childPermissions: SanitizedFieldsPermissions\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[field.name]\n childPermissions = tabPermissions === true ? true : tabPermissions?.fields\n }\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[field.name] || {} : data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","tabHasName","resolveFilterOptions","isRowCollapsed","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","readOnly","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","type","name","undefined","value","initialValue","hasPermission","read","access","siblingData","validate","validationResult","jsonError","JSON","parse","e","event","previousValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","rowIndex","rowPath","toHexString","idKey","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","i","blockTypeToMatch","blockType","block","blocks","slug","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","isNamedTab","shouldContinue","siblingDoc","childPermissions","tabSelect","tabPermissions","tabs","tab","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field | TabAsField\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormStateWithoutComponents\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n // Short-circuit to prevent hidden fields from recursing and rendering.\n // Note: `tab` is excluded bc tab visibility is keyed by `field.id` rather than `path`.\n // The tab branch below owns that write and the skip-recursion.\n if (passesCondition === false && field.type !== 'tab') {\n if (fieldAffectsData(field) && data?.[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n return\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field) && field.type !== 'tab') {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n 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 = 'validate' in field ? field.validate : undefined\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(path)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, rowIndex: number) => {\n const rowPath = path + '.' + rowIndex\n\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: Awaited<\n ReturnType<typeof validateBlocksFilterOptions>\n > | null = null\n if (field.filterOptions) {\n filterOptionsValidationResult = await validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n (field.blocks.find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const rowPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = rowPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = rowPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\n }\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n await iterateFields({\n id,\n mockRSCs,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tab') {\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: { ...field, type: 'tab' },\n select,\n selectMode,\n siblingDoc: data?.[field.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n // Tab visibility on the client is keyed by `field.id`, not `path` (like all other fields).\n if (field?.id) {\n state[field.id] = {\n passesCondition,\n }\n\n // Flag newly added tab entries so the client accepts them during merge.\n // Otherwise, tabs revealed after a hidden ancestor becomes visible would never make it into client form state.\n if (!renderAllFields && !previousFormState?.[field.id]) {\n state[field.id].addedByServer = true\n }\n }\n\n if (!passesCondition) {\n return\n }\n\n let childPermissions: SanitizedFieldsPermissions\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[field.name]\n childPermissions = tabPermissions === true ? true : tabPermissions?.fields\n }\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[field.name] || {} : data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions,\n preferences,\n previousFormState,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -72,7 +72,7 @@ export const defaultValuePromise = async ({
72
72
  const promises = [];
73
73
  rows.forEach(row => {
74
74
  const blockTypeToMatch = row.blockType;
75
- const block = req.payload.blocks[blockTypeToMatch] ?? (field.blockReferences ?? field.blocks).find(blockType => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch);
75
+ const block = req.payload.blocks[blockTypeToMatch] ?? field.blocks.find(blockType => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch);
76
76
  const {
77
77
  blockSelect,
78
78
  blockSelectMode