@payloadcms/ui 3.0.0-beta.37 → 3.0.0-beta.39

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 (176) hide show
  1. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  2. package/dist/elements/DocumentFields/index.js +2 -0
  3. package/dist/elements/DocumentFields/index.js.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +3 -1
  5. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +14 -8
  7. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  8. package/dist/elements/ReactSelect/Input/index.d.ts +5 -0
  9. package/dist/elements/ReactSelect/Input/index.d.ts.map +1 -0
  10. package/dist/elements/ReactSelect/Input/index.js +17 -0
  11. package/dist/elements/ReactSelect/Input/index.js.map +1 -0
  12. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  13. package/dist/elements/ReactSelect/MultiValue/index.js +7 -5
  14. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  15. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  16. package/dist/elements/ReactSelect/index.js +17 -1
  17. package/dist/elements/ReactSelect/index.js.map +1 -1
  18. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  19. package/dist/elements/RenderTitle/index.js +12 -7
  20. package/dist/elements/RenderTitle/index.js.map +1 -1
  21. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
  22. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  23. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  24. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +104 -72
  25. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  26. package/dist/elements/WhereBuilder/Condition/index.js +3 -3
  27. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  28. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  29. package/dist/elements/WhereBuilder/index.js +49 -49
  30. package/dist/elements/WhereBuilder/index.js.map +1 -1
  31. package/dist/fields/Array/index.d.ts.map +1 -1
  32. package/dist/fields/Array/index.js +6 -6
  33. package/dist/fields/Array/index.js.map +1 -1
  34. package/dist/fields/Blocks/index.d.ts.map +1 -1
  35. package/dist/fields/Blocks/index.js +6 -6
  36. package/dist/fields/Blocks/index.js.map +1 -1
  37. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  38. package/dist/fields/Checkbox/index.js +6 -6
  39. package/dist/fields/Checkbox/index.js.map +1 -1
  40. package/dist/fields/Code/index.d.ts.map +1 -1
  41. package/dist/fields/Code/index.js +5 -5
  42. package/dist/fields/Code/index.js.map +1 -1
  43. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  44. package/dist/fields/Collapsible/index.js +5 -2
  45. package/dist/fields/Collapsible/index.js.map +1 -1
  46. package/dist/fields/DateTime/index.js +5 -5
  47. package/dist/fields/DateTime/index.js.map +1 -1
  48. package/dist/fields/Email/index.d.ts.map +1 -1
  49. package/dist/fields/Email/index.js +4 -4
  50. package/dist/fields/Email/index.js.map +1 -1
  51. package/dist/fields/Group/index.d.ts.map +1 -1
  52. package/dist/fields/Group/index.js +5 -3
  53. package/dist/fields/Group/index.js.map +1 -1
  54. package/dist/fields/JSON/index.d.ts.map +1 -1
  55. package/dist/fields/JSON/index.js +7 -7
  56. package/dist/fields/JSON/index.js.map +1 -1
  57. package/dist/fields/Number/index.d.ts.map +1 -1
  58. package/dist/fields/Number/index.js +7 -7
  59. package/dist/fields/Number/index.js.map +1 -1
  60. package/dist/fields/Password/index.d.ts.map +1 -1
  61. package/dist/fields/Password/index.js +6 -4
  62. package/dist/fields/Password/index.js.map +1 -1
  63. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  64. package/dist/fields/RadioGroup/index.js +5 -5
  65. package/dist/fields/RadioGroup/index.js.map +1 -1
  66. package/dist/fields/Relationship/findOptionsByValue.js +1 -1
  67. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  68. package/dist/fields/Relationship/index.d.ts.map +1 -1
  69. package/dist/fields/Relationship/index.js +2 -4
  70. package/dist/fields/Relationship/index.js.map +1 -1
  71. package/dist/fields/Select/index.d.ts.map +1 -1
  72. package/dist/fields/Select/index.js +5 -5
  73. package/dist/fields/Select/index.js.map +1 -1
  74. package/dist/fields/Tabs/index.d.ts.map +1 -1
  75. package/dist/fields/Tabs/index.js.map +1 -1
  76. package/dist/fields/Text/index.d.ts.map +1 -1
  77. package/dist/fields/Text/index.js +5 -5
  78. package/dist/fields/Text/index.js.map +1 -1
  79. package/dist/fields/Textarea/index.d.ts.map +1 -1
  80. package/dist/fields/Textarea/index.js +3 -3
  81. package/dist/fields/Textarea/index.js.map +1 -1
  82. package/dist/fields/Upload/index.d.ts.map +1 -1
  83. package/dist/fields/Upload/index.js +3 -3
  84. package/dist/fields/Upload/index.js.map +1 -1
  85. package/dist/forms/FieldPropsProvider/index.d.ts +1 -0
  86. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  87. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  88. package/dist/forms/Form/context.d.ts +3 -1
  89. package/dist/forms/Form/context.d.ts.map +1 -1
  90. package/dist/forms/Form/context.js +3 -1
  91. package/dist/forms/Form/context.js.map +1 -1
  92. package/dist/forms/Form/getSiblingData.d.ts.map +1 -1
  93. package/dist/forms/Form/getSiblingData.js +1 -0
  94. package/dist/forms/Form/getSiblingData.js.map +1 -1
  95. package/dist/forms/Form/index.d.ts.map +1 -1
  96. package/dist/forms/Form/index.js +28 -11
  97. package/dist/forms/Form/index.js.map +1 -1
  98. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  99. package/dist/forms/Form/initContextState.js +1 -0
  100. package/dist/forms/Form/initContextState.js.map +1 -1
  101. package/dist/forms/Form/types.d.ts +2 -0
  102. package/dist/forms/Form/types.d.ts.map +1 -1
  103. package/dist/forms/Form/types.js.map +1 -1
  104. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  105. package/dist/forms/RenderFields/index.js +6 -2
  106. package/dist/forms/RenderFields/index.js.map +1 -1
  107. package/dist/forms/RenderFields/types.d.ts +8 -1
  108. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  109. package/dist/forms/RenderFields/types.js.map +1 -1
  110. package/dist/forms/Submit/index.d.ts.map +1 -1
  111. package/dist/forms/Submit/index.js +3 -2
  112. package/dist/forms/Submit/index.js.map +1 -1
  113. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +5 -3
  114. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
  115. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +4 -3
  116. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
  117. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +5 -3
  118. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  119. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +4 -3
  120. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
  121. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +5 -3
  122. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  123. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +21 -15
  124. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  125. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  126. package/dist/forms/buildStateFromSchema/index.js +3 -2
  127. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  128. package/dist/forms/useField/index.d.ts.map +1 -1
  129. package/dist/forms/useField/index.js +5 -2
  130. package/dist/forms/useField/index.js.map +1 -1
  131. package/dist/forms/useField/types.d.ts +1 -0
  132. package/dist/forms/useField/types.d.ts.map +1 -1
  133. package/dist/forms/useField/types.js.map +1 -1
  134. package/dist/icons/Plus/index.d.ts.map +1 -1
  135. package/dist/icons/Plus/index.js +1 -0
  136. package/dist/icons/Plus/index.js.map +1 -1
  137. package/dist/icons/Plus/index.scss +0 -3
  138. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  139. package/dist/providers/ComponentMap/buildComponentMap/fields.js +1 -0
  140. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  141. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  142. package/dist/providers/DocumentInfo/index.js +67 -53
  143. package/dist/providers/DocumentInfo/index.js.map +1 -1
  144. package/dist/providers/DocumentInfo/types.d.ts +4 -0
  145. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  146. package/dist/providers/DocumentInfo/types.js.map +1 -1
  147. package/dist/providers/Root/index.d.ts +1 -2
  148. package/dist/providers/Root/index.d.ts.map +1 -1
  149. package/dist/providers/Root/index.js.map +1 -1
  150. package/dist/providers/Translation/index.d.ts +1 -5
  151. package/dist/providers/Translation/index.d.ts.map +1 -1
  152. package/dist/providers/Translation/index.js.map +1 -1
  153. package/dist/utilities/buildFieldSchemaMap/index.d.ts +8 -0
  154. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -0
  155. package/dist/utilities/buildFieldSchemaMap/index.js +29 -0
  156. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -0
  157. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +14 -0
  158. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -0
  159. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +75 -0
  160. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -0
  161. package/dist/utilities/buildFieldSchemaMap/types.d.ts +3 -0
  162. package/dist/utilities/buildFieldSchemaMap/types.d.ts.map +1 -0
  163. package/dist/utilities/buildFieldSchemaMap/types.js +3 -0
  164. package/dist/utilities/buildFieldSchemaMap/types.js.map +1 -0
  165. package/dist/utilities/buildFormState.d.ts +7 -0
  166. package/dist/utilities/buildFormState.d.ts.map +1 -0
  167. package/dist/utilities/buildFormState.js +162 -0
  168. package/dist/utilities/buildFormState.js.map +1 -0
  169. package/dist/utilities/getFormState.d.ts +1 -0
  170. package/dist/utilities/getFormState.d.ts.map +1 -1
  171. package/dist/utilities/getFormState.js +5 -2
  172. package/dist/utilities/getFormState.js.map +1 -1
  173. package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
  174. package/dist/utilities/reduceFieldsToValues.js +1 -0
  175. package/dist/utilities/reduceFieldsToValues.js.map +1 -1
  176. package/package.json +5 -5
@@ -26,7 +26,6 @@ const baseClass = 'array-field';
26
26
  export const _ArrayField = (props)=>{
27
27
  const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, isSortable = true, label, labelProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, permissions, readOnly: readOnlyFromProps, required, validate } = props;
28
28
  const { indexPath, readOnly: readOnlyFromContext } = useFieldProps();
29
- const readOnly = readOnlyFromProps || readOnlyFromContext;
30
29
  const minRows = minRowsProp ?? required ? 1 : 0;
31
30
  const { setDocFieldPreferences } = useDocumentInfo();
32
31
  const { addFieldRow, dispatchFields, setModified } = useForm();
@@ -75,11 +74,12 @@ export const _ArrayField = (props)=>{
75
74
  editingDefaultLocale
76
75
  ]);
77
76
  const { path: pathFromContext } = useFieldProps();
78
- const { errorPaths, path, rows = [], schemaPath, showError, valid, value } = useField({
77
+ const { errorPaths, formInitializing, formProcessing, path, rows = [], schemaPath, showError, valid, value } = useField({
79
78
  hasRows: true,
80
79
  path: pathFromContext || pathFromProps || name,
81
80
  validate: memoizedValidate
82
81
  });
82
+ const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
83
83
  const addRow = useCallback(async (rowIndex)=>{
84
84
  await addFieldRow({
85
85
  path,
@@ -164,7 +164,7 @@ export const _ArrayField = (props)=>{
164
164
  const hasMaxRows = maxRows && rows.length >= maxRows;
165
165
  const fieldErrorCount = errorPaths.length;
166
166
  const fieldHasErrors = submitted && errorPaths.length > 0;
167
- const showRequired = readOnly && rows.length === 0;
167
+ const showRequired = disabled && rows.length === 0;
168
168
  const showMinRows = rows.length < minRows || required && rows.length === 0;
169
169
  return /*#__PURE__*/ _jsxs("div", {
170
170
  className: [
@@ -249,7 +249,7 @@ export const _ArrayField = (props)=>{
249
249
  rows.map((row, i)=>{
250
250
  const rowErrorCount = errorPaths?.filter((errorPath)=>errorPath.startsWith(`${path}.${i}.`)).length;
251
251
  return /*#__PURE__*/ _jsx(DraggableSortableItem, {
252
- disabled: readOnly || !isSortable,
252
+ disabled: disabled || !isSortable,
253
253
  id: row.id,
254
254
  children: (draggableSortableItemProps)=>/*#__PURE__*/ _jsx(ArrayRow, {
255
255
  ...draggableSortableItemProps,
@@ -266,7 +266,7 @@ export const _ArrayField = (props)=>{
266
266
  moveRow: moveRow,
267
267
  path: path,
268
268
  permissions: permissions,
269
- readOnly: readOnly,
269
+ readOnly: disabled,
270
270
  removeRow: removeRow,
271
271
  row: row,
272
272
  rowCount: rows.length,
@@ -294,7 +294,7 @@ export const _ArrayField = (props)=>{
294
294
  })
295
295
  ]
296
296
  }),
297
- !readOnly && !hasMaxRows && /*#__PURE__*/ _jsx(Button, {
297
+ !disabled && !hasMaxRows && /*#__PURE__*/ _jsx(Button, {
298
298
  buttonStyle: "icon-label",
299
299
  className: `${baseClass}__add-row`,
300
300
  icon: "plus",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/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 { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n isSortable?: boolean\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps): ArrayFieldType['labels'] => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p?.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\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 >\n {showError && <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\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 </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","FieldDescription","FieldError","FieldLabel","useFieldProps","useForm","useFormSubmitted","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","isSortable","label","labelProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/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 { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n isSortable?: boolean\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps): ArrayFieldType['labels'] => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p?.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n formInitializing,\n formProcessing,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = disabled && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\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 >\n {showError && <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={disabled || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\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 </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!disabled && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","FieldDescription","FieldError","FieldLabel","useFieldProps","useForm","useFormSubmitted","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","isSortable","label","labelProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","formInitializing","formProcessing","rows","schemaPath","showError","valid","hasRows","disabled","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAQvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAkTD,eAAO,MAAM,WAAW,4BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAQvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqTD,eAAO,MAAM,WAAW,4BAA8B,CAAA"}
@@ -30,7 +30,6 @@ const _BlocksField = (props)=>{
30
30
  const { i18n, t } = useTranslation();
31
31
  const { name, CustomDescription, CustomError, CustomLabel, blocks, className, descriptionProps, errorProps, forceRender = false, isSortable = true, label, labelProps, labels: labelsFromProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, readOnly: readOnlyFromProps, required, validate } = props;
32
32
  const { indexPath, readOnly: readOnlyFromContext } = useFieldProps();
33
- const readOnly = readOnlyFromProps || readOnlyFromContext;
34
33
  const minRows = minRowsProp ?? required ? 1 : 0;
35
34
  const { setDocFieldPreferences } = useDocumentInfo();
36
35
  const { addFieldRow, dispatchFields, setModified } = useForm();
@@ -71,11 +70,12 @@ const _BlocksField = (props)=>{
71
70
  editingDefaultLocale
72
71
  ]);
73
72
  const { path: pathFromContext } = useFieldProps();
74
- const { errorPaths, path, permissions, rows = [], schemaPath, showError, valid, value } = useField({
73
+ const { errorPaths, formInitializing, formProcessing, path, permissions, rows = [], schemaPath, showError, valid, value } = useField({
75
74
  hasRows: true,
76
75
  path: pathFromContext || pathFromProps || name,
77
76
  validate: memoizedValidate
78
77
  });
78
+ const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
79
79
  const addRow = useCallback(async (rowIndex, blockType)=>{
80
80
  await addFieldRow({
81
81
  data: {
@@ -164,7 +164,7 @@ const _BlocksField = (props)=>{
164
164
  const fieldErrorCount = errorPaths.length;
165
165
  const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0;
166
166
  const showMinRows = rows.length < minRows || required && rows.length === 0;
167
- const showRequired = readOnly && rows.length === 0;
167
+ const showRequired = disabled && rows.length === 0;
168
168
  return /*#__PURE__*/ _jsxs("div", {
169
169
  className: [
170
170
  fieldBaseClass,
@@ -250,7 +250,7 @@ const _BlocksField = (props)=>{
250
250
  if (blockToRender) {
251
251
  const rowErrorCount = errorPaths.filter((errorPath)=>errorPath.startsWith(`${path}.${i}`)).length;
252
252
  return /*#__PURE__*/ _jsx(DraggableSortableItem, {
253
- disabled: readOnly || !isSortable,
253
+ disabled: disabled || !isSortable,
254
254
  id: row.id,
255
255
  children: (draggableSortableItemProps)=>/*#__PURE__*/ _jsx(BlockRow, {
256
256
  ...draggableSortableItemProps,
@@ -267,7 +267,7 @@ const _BlocksField = (props)=>{
267
267
  moveRow: moveRow,
268
268
  path: path,
269
269
  permissions: permissions,
270
- readOnly: readOnly,
270
+ readOnly: disabled,
271
271
  removeRow: removeRow,
272
272
  row: row,
273
273
  rowCount: rows.length,
@@ -297,7 +297,7 @@ const _BlocksField = (props)=>{
297
297
  })
298
298
  ]
299
299
  }),
300
- !readOnly && !hasMaxRows && /*#__PURE__*/ _jsxs(Fragment, {
300
+ !disabled && !hasMaxRows && /*#__PURE__*/ _jsxs(Fragment, {
301
301
  children: [
302
302
  /*#__PURE__*/ _jsx(DrawerToggler, {
303
303
  className: `${baseClass}__drawer-toggler`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/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 { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'blocks-field'\n\nimport type { FieldPermissions } from 'payload/auth'\nimport type { BlockField } from 'payload/types'\n\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\n\nexport type BlocksFieldProps = FormFieldBase & {\n blocks?: ReducedBlock[]\n forceRender?: boolean\n isSortable?: boolean\n labels?: BlockField['labels']\n maxRows?: number\n minRows?: number\n name?: string\n permissions: FieldPermissions\n slug?: string\n width?: string\n}\n\nconst _BlocksField: React.FC<BlocksFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n blocks,\n className,\n descriptionProps,\n errorProps,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const { code: locale } = useLocale()\n const { localization } = 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 || 'en'\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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n permissions,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number, blockType: string) => {\n await addFieldRow({\n data: { blockType },\n path,\n rowIndex,\n schemaPath: `${schemaPath}.${blockType}`,\n })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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 dispatchFields({\n type: 'REMOVE_ROW',\n path,\n rowIndex,\n })\n\n setModified(true)\n },\n [path, dispatchFields, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\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 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 >\n {showError && <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\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 >\n {rows.map((row, i) => {\n const { blockType } = row\n const blockToRender = blocks.find((block) => block.slug === blockType)\n\n if (blockToRender) {\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockToRender}\n blocks={blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\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 {!readOnly && !hasMaxRows && (\n <Fragment>\n <DrawerToggler className={`${baseClass}__drawer-toggler`} slug={drawerSlug}>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\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 blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(_BlocksField)\n"],"names":["getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","_BlocksField","props","i18n","t","name","CustomDescription","CustomError","CustomLabel","blocks","className","descriptionProps","errorProps","forceRender","isSortable","label","labelProps","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","pathFromContext","errorPaths","permissions","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","blockType","data","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","disabled","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/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 { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'blocks-field'\n\nimport type { FieldPermissions } from 'payload/auth'\nimport type { BlockField } from 'payload/types'\n\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\n\nexport type BlocksFieldProps = FormFieldBase & {\n blocks?: ReducedBlock[]\n forceRender?: boolean\n isSortable?: boolean\n labels?: BlockField['labels']\n maxRows?: number\n minRows?: number\n name?: string\n permissions: FieldPermissions\n slug?: string\n width?: string\n}\n\nconst _BlocksField: React.FC<BlocksFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n blocks,\n className,\n descriptionProps,\n errorProps,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const { code: locale } = useLocale()\n const { localization } = 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 || 'en'\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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n formInitializing,\n formProcessing,\n path,\n permissions,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const addRow = useCallback(\n async (rowIndex: number, blockType: string) => {\n await addFieldRow({\n data: { blockType },\n path,\n rowIndex,\n schemaPath: `${schemaPath}.${blockType}`,\n })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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 dispatchFields({\n type: 'REMOVE_ROW',\n path,\n rowIndex,\n })\n\n setModified(true)\n },\n [path, dispatchFields, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\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 = disabled && rows.length === 0\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 >\n {showError && <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\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 >\n {rows.map((row, i) => {\n const { blockType } = row\n const blockToRender = blocks.find((block) => block.slug === blockType)\n\n if (blockToRender) {\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}`),\n ).length\n return (\n <DraggableSortableItem disabled={disabled || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockToRender}\n blocks={blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\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 {!disabled && !hasMaxRows && (\n <Fragment>\n <DrawerToggler className={`${baseClass}__drawer-toggler`} slug={drawerSlug}>\n <Button\n buttonStyle=\"icon-label\"\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\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 blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(_BlocksField)\n"],"names":["getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","_BlocksField","props","i18n","t","name","CustomDescription","CustomError","CustomLabel","blocks","className","descriptionProps","errorProps","forceRender","isSortable","label","labelProps","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","pathFromContext","errorPaths","formInitializing","formProcessing","permissions","rows","schemaPath","showError","valid","hasRows","disabled","addRow","rowIndex","blockType","data","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAWpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,CAAA;AAuGrE,eAAO,MAAM,QAAQ,8BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAWpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,CAAA;AAwGrE,eAAO,MAAM,QAAQ,8BAA+B,CAAA"}
@@ -29,20 +29,20 @@ const CheckboxField = (props)=>{
29
29
  required
30
30
  ]);
31
31
  const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
32
- const readOnly = readOnlyFromProps || readOnlyFromContext;
33
- const { path, setValue, showError, value } = useField({
32
+ const { formInitializing, formProcessing, path, setValue, showError, value } = useField({
34
33
  disableFormData,
35
34
  path: pathFromContext || pathFromProps || name,
36
35
  validate: memoizedValidate
37
36
  });
37
+ const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
38
38
  const onToggle = useCallback(()=>{
39
- if (!readOnly) {
39
+ if (!disabled) {
40
40
  setValue(!value);
41
41
  if (typeof onChangeFromProps === 'function') onChangeFromProps(!value);
42
42
  }
43
43
  }, [
44
44
  onChangeFromProps,
45
- readOnly,
45
+ disabled,
46
46
  setValue,
47
47
  value
48
48
  ]);
@@ -55,7 +55,7 @@ const CheckboxField = (props)=>{
55
55
  showError && 'error',
56
56
  className,
57
57
  value && `${baseClass}--checked`,
58
- readOnly && `${baseClass}--read-only`
58
+ disabled && `${baseClass}--read-only`
59
59
  ].filter(Boolean).join(' '),
60
60
  style: {
61
61
  ...style,
@@ -79,7 +79,7 @@ const CheckboxField = (props)=>{
79
79
  name: path,
80
80
  onToggle: onToggle,
81
81
  partialChecked: partialChecked,
82
- readOnly: readOnly,
82
+ readOnly: disabled,
83
83
  required: required
84
84
  }),
85
85
  CustomDescription !== undefined ? CustomDescription : /*#__PURE__*/ _jsx(FieldDescription, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Checkbox/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport React, { useCallback } from 'react'\n\nimport type { CheckboxInputProps } from './Input.js'\nimport type { CheckboxFieldProps } from './types.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { CheckboxInput } from './Input.js'\nimport './index.scss'\n\nconst baseClass = 'checkbox'\n\nexport { CheckboxFieldProps, CheckboxInput, type CheckboxInputProps }\n\nconst CheckboxField: React.FC<CheckboxFieldProps> = (props) => {\n const {\n id,\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n checked: checkedFromProps,\n className,\n descriptionProps,\n disableFormData,\n errorProps,\n label,\n labelProps,\n onChange: onChangeFromProps,\n partialChecked,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const { uuid } = useForm()\n\n const editDepth = useEditDepth()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n\n const { path, setValue, showError, value } = useField({\n disableFormData,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const onToggle = useCallback(() => {\n if (!readOnly) {\n setValue(!value)\n if (typeof onChangeFromProps === 'function') onChangeFromProps(!value)\n }\n }, [onChangeFromProps, readOnly, setValue, value])\n\n const checked = checkedFromProps || Boolean(value)\n\n const fieldID = id || generateFieldID(path, editDepth, uuid)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n showError && 'error',\n className,\n value && `${baseClass}--checked`,\n readOnly && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <CheckboxInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomLabel={CustomLabel}\n checked={checked}\n id={fieldID}\n inputRef={null}\n label={label}\n labelProps={labelProps}\n name={path}\n onToggle={onToggle}\n partialChecked={partialChecked}\n readOnly={readOnly}\n required={required}\n />\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n\nexport const Checkbox = withCondition(CheckboxField)\n"],"names":["React","useCallback","FieldDescription","FieldError","useFieldProps","useForm","useField","withCondition","useEditDepth","generateFieldID","fieldBaseClass","CheckboxInput","baseClass","CheckboxField","props","id","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","checked","checkedFromProps","className","descriptionProps","disableFormData","errorProps","label","labelProps","onChange","onChangeFromProps","partialChecked","path","pathFromProps","readOnly","readOnlyFromProps","required","style","validate","width","uuid","editDepth","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","setValue","showError","onToggle","Boolean","fieldID","div","filter","join","inputRef","undefined","Checkbox"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAK1C,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,OAAO,QAAQ,8BAA6B;AACrD,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,cAAc,QAAQ,qBAAoB;AACnD,SAASC,aAAa,QAAQ,aAAY;AAG1C,MAAMC,YAAY;AAElB,SAA6BD,aAAa,GAA2B;AAErE,MAAME,gBAA8C,CAACC;IACnD,MAAM,EACJC,EAAE,EACFC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAASC,gBAAgB,EACzBC,SAAS,EACTC,gBAAgB,EAChBC,eAAe,EACfC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,UAAUC,iBAAiB,EAC3BC,cAAc,EACdC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAG1B;IAEJ,MAAM,EAAE2B,IAAI,EAAE,GAAGpC;IAEjB,MAAMqC,YAAYlC;IAElB,MAAMmC,mBAAmC1C,YACvC,CAAC2C,OAAOC;QACN,IAAI,OAAON,aAAa,YAAY;YAClC,OAAOA,SAASK,OAAO;gBAAE,GAAGC,OAAO;gBAAER;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEJ,MAAMa,eAAe,EAAEX,UAAUY,mBAAmB,EAAE,GAAG3C;IACjE,MAAM+B,WAAWC,qBAAqBW;IAEtC,MAAM,EAAEd,IAAI,EAAEe,QAAQ,EAAEC,SAAS,EAAEL,KAAK,EAAE,GAAGtC,SAAS;QACpDoB;QACAO,MAAMa,mBAAmBZ,iBAAiBlB;QAC1CuB,UAAUI;IACZ;IAEA,MAAMO,WAAWjD,YAAY;QAC3B,IAAI,CAACkC,UAAU;YACba,SAAS,CAACJ;YACV,IAAI,OAAOb,sBAAsB,YAAYA,kBAAkB,CAACa;QAClE;IACF,GAAG;QAACb;QAAmBI;QAAUa;QAAUJ;KAAM;IAEjD,MAAMtB,UAAUC,oBAAoB4B,QAAQP;IAE5C,MAAMQ,UAAUrC,MAAMN,gBAAgBwB,MAAMS,WAAWD;IAEvD,qBACE,MAACY;QACC7B,WAAW;YACTd;YACAE;YACAqC,aAAa;YACbzB;YACAoB,SAAS,CAAC,EAAEhC,UAAU,SAAS,CAAC;YAChCuB,YAAY,CAAC,EAAEvB,UAAU,WAAW,CAAC;SACtC,CACE0C,MAAM,CAACH,SACPI,IAAI,CAAC;QACRjB,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAACrC;gBAAWiB,aAAaA;gBAAaa,MAAMA;gBAAO,GAAIN,cAAc,CAAC,CAAC;;0BACvE,KAAChB;gBACCM,YAAYA;gBACZC,aAAaA;gBACbG,aAAaA;gBACbC,SAASA;gBACTP,IAAIqC;gBACJI,UAAU;gBACV5B,OAAOA;gBACPC,YAAYA;gBACZb,MAAMiB;gBACNiB,UAAUA;gBACVlB,gBAAgBA;gBAChBG,UAAUA;gBACVE,UAAUA;;YAEXlB,sBAAsBsC,YACrBtC,kCAEA,KAACjB;gBAAkB,GAAIuB,oBAAoB,CAAC,CAAC;;;;AAIrD;AAEA,OAAO,MAAMiC,WAAWnD,cAAcM,eAAc"}
1
+ {"version":3,"sources":["../../../src/fields/Checkbox/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport React, { useCallback } from 'react'\n\nimport type { CheckboxInputProps } from './Input.js'\nimport type { CheckboxFieldProps } from './types.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { CheckboxInput } from './Input.js'\nimport './index.scss'\n\nconst baseClass = 'checkbox'\n\nexport { CheckboxFieldProps, CheckboxInput, type CheckboxInputProps }\n\nconst CheckboxField: React.FC<CheckboxFieldProps> = (props) => {\n const {\n id,\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n checked: checkedFromProps,\n className,\n descriptionProps,\n disableFormData,\n errorProps,\n label,\n labelProps,\n onChange: onChangeFromProps,\n partialChecked,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const { uuid } = useForm()\n\n const editDepth = useEditDepth()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField({\n disableFormData,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const onToggle = useCallback(() => {\n if (!disabled) {\n setValue(!value)\n if (typeof onChangeFromProps === 'function') onChangeFromProps(!value)\n }\n }, [onChangeFromProps, disabled, setValue, value])\n\n const checked = checkedFromProps || Boolean(value)\n\n const fieldID = id || generateFieldID(path, editDepth, uuid)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n showError && 'error',\n className,\n value && `${baseClass}--checked`,\n disabled && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <CheckboxInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomLabel={CustomLabel}\n checked={checked}\n id={fieldID}\n inputRef={null}\n label={label}\n labelProps={labelProps}\n name={path}\n onToggle={onToggle}\n partialChecked={partialChecked}\n readOnly={disabled}\n required={required}\n />\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n\nexport const Checkbox = withCondition(CheckboxField)\n"],"names":["React","useCallback","FieldDescription","FieldError","useFieldProps","useForm","useField","withCondition","useEditDepth","generateFieldID","fieldBaseClass","CheckboxInput","baseClass","CheckboxField","props","id","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","checked","checkedFromProps","className","descriptionProps","disableFormData","errorProps","label","labelProps","onChange","onChangeFromProps","partialChecked","path","pathFromProps","readOnly","readOnlyFromProps","required","style","validate","width","uuid","editDepth","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","setValue","showError","disabled","onToggle","Boolean","fieldID","div","filter","join","inputRef","undefined","Checkbox"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAK1C,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,OAAO,QAAQ,8BAA6B;AACrD,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,cAAc,QAAQ,qBAAoB;AACnD,SAASC,aAAa,QAAQ,aAAY;AAG1C,MAAMC,YAAY;AAElB,SAA6BD,aAAa,GAA2B;AAErE,MAAME,gBAA8C,CAACC;IACnD,MAAM,EACJC,EAAE,EACFC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAASC,gBAAgB,EACzBC,SAAS,EACTC,gBAAgB,EAChBC,eAAe,EACfC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,UAAUC,iBAAiB,EAC3BC,cAAc,EACdC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAG1B;IAEJ,MAAM,EAAE2B,IAAI,EAAE,GAAGpC;IAEjB,MAAMqC,YAAYlC;IAElB,MAAMmC,mBAAmC1C,YACvC,CAAC2C,OAAOC;QACN,IAAI,OAAON,aAAa,YAAY;YAClC,OAAOA,SAASK,OAAO;gBAAE,GAAGC,OAAO;gBAAER;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEJ,MAAMa,eAAe,EAAEX,UAAUY,mBAAmB,EAAE,GAAG3C;IAEjE,MAAM,EAAE4C,gBAAgB,EAAEC,cAAc,EAAEhB,IAAI,EAAEiB,QAAQ,EAAEC,SAAS,EAAEP,KAAK,EAAE,GAAGtC,SAAS;QACtFoB;QACAO,MAAMa,mBAAmBZ,iBAAiBlB;QAC1CuB,UAAUI;IACZ;IAEA,MAAMS,WAAWhB,qBAAqBW,uBAAuBE,kBAAkBD;IAE/E,MAAMK,WAAWpD,YAAY;QAC3B,IAAI,CAACmD,UAAU;YACbF,SAAS,CAACN;YACV,IAAI,OAAOb,sBAAsB,YAAYA,kBAAkB,CAACa;QAClE;IACF,GAAG;QAACb;QAAmBqB;QAAUF;QAAUN;KAAM;IAEjD,MAAMtB,UAAUC,oBAAoB+B,QAAQV;IAE5C,MAAMW,UAAUxC,MAAMN,gBAAgBwB,MAAMS,WAAWD;IAEvD,qBACE,MAACe;QACChC,WAAW;YACTd;YACAE;YACAuC,aAAa;YACb3B;YACAoB,SAAS,CAAC,EAAEhC,UAAU,SAAS,CAAC;YAChCwC,YAAY,CAAC,EAAExC,UAAU,WAAW,CAAC;SACtC,CACE6C,MAAM,CAACH,SACPI,IAAI,CAAC;QACRpB,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAACrC;gBAAWiB,aAAaA;gBAAaa,MAAMA;gBAAO,GAAIN,cAAc,CAAC,CAAC;;0BACvE,KAAChB;gBACCM,YAAYA;gBACZC,aAAaA;gBACbG,aAAaA;gBACbC,SAASA;gBACTP,IAAIwC;gBACJI,UAAU;gBACV/B,OAAOA;gBACPC,YAAYA;gBACZb,MAAMiB;gBACNoB,UAAUA;gBACVrB,gBAAgBA;gBAChBG,UAAUiB;gBACVf,UAAUA;;YAEXlB,sBAAsByC,YACrBzC,kCAEA,KAACjB;gBAAkB,GAAIuB,oBAAoB,CAAC,CAAC;;;;AAIrD;AAEA,OAAO,MAAMoC,WAAWtD,cAAcM,eAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Code/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAUvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAwFD,eAAO,MAAM,IAAI,0BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Code/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAUvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAyFD,eAAO,MAAM,IAAI,0BAA2B,CAAA"}
@@ -28,18 +28,18 @@ const CodeField = (props)=>{
28
28
  required
29
29
  ]);
30
30
  const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
31
- const readOnly = readOnlyFromProps || readOnlyFromContext;
32
- const { path, setValue, showError, value } = useField({
31
+ const { formInitializing, formProcessing, path, setValue, showError, value } = useField({
33
32
  path: pathFromContext || pathFromProps || name,
34
33
  validate: memoizedValidate
35
34
  });
35
+ const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
36
36
  return /*#__PURE__*/ _jsxs("div", {
37
37
  className: [
38
38
  fieldBaseClass,
39
39
  baseClass,
40
40
  className,
41
41
  showError && 'error',
42
- readOnly && 'read-only'
42
+ disabled && 'read-only'
43
43
  ].filter(Boolean).join(' '),
44
44
  style: {
45
45
  ...style,
@@ -63,9 +63,9 @@ const CodeField = (props)=>{
63
63
  BeforeInput,
64
64
  /*#__PURE__*/ _jsx(CodeEditor, {
65
65
  defaultLanguage: prismToMonacoLanguageMap[language] || language,
66
- onChange: readOnly ? ()=>null : (val)=>setValue(val),
66
+ onChange: disabled ? ()=>null : (val)=>setValue(val),
67
67
  options: editorOptions,
68
- readOnly: readOnly,
68
+ readOnly: disabled,
69
69
  value: value || ''
70
70
  }),
71
71
  AfterInput
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Code/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { CodeField as CodeFieldType } from 'payload/types'\n\nimport React, { useCallback } from 'react'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type CodeFieldProps = FormFieldBase & {\n editorOptions?: CodeFieldType['admin']['editorOptions']\n language?: CodeFieldType['admin']['language']\n name?: string\n path?: string\n width: string\n}\n\nconst prismToMonacoLanguageMap = {\n js: 'javascript',\n ts: 'typescript',\n}\n\nconst baseClass = 'code-field'\n\nconst CodeField: React.FC<CodeFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n editorOptions = {},\n errorProps,\n label,\n labelProps,\n language = 'javascript',\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n\n const { path, setValue, showError, value } = useField({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {BeforeInput}\n <CodeEditor\n defaultLanguage={prismToMonacoLanguageMap[language] || language}\n onChange={readOnly ? () => null : (val) => setValue(val)}\n options={editorOptions}\n readOnly={readOnly}\n value={(value as string) || ''}\n />\n {AfterInput}\n </div>\n {CustomDescription ? CustomDescription : <FieldDescription {...(descriptionProps || {})} />}\n </div>\n )\n}\n\nexport const Code = withCondition(CodeField)\n"],"names":["React","useCallback","CodeEditor","FieldDescription","FieldError","FieldLabel","useFieldProps","useField","withCondition","fieldBaseClass","prismToMonacoLanguageMap","js","ts","baseClass","CodeField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","editorOptions","errorProps","label","labelProps","language","path","pathFromProps","readOnly","readOnlyFromProps","required","style","validate","width","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","setValue","showError","div","filter","Boolean","join","defaultLanguage","onChange","val","Code"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,iDAAiD,GACjD;;AAGA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,UAAU,QAAQ,qCAAoC;AAC/D,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,cAAc,QAAQ,qBAAoB;AAWnD,MAAMC,2BAA2B;IAC/BC,IAAI;IACJC,IAAI;AACN;AAEA,MAAMC,YAAY;AAElB,MAAMC,YAAsC,CAACC;IAC3C,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,CAAC,CAAC,EAClBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,WAAW,YAAY,EACvBC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGrB;IAEJ,MAAMsB,mBAAmBpC,YACvB,CAACqC,OAAOC;QACN,IAAI,OAAOJ,aAAa,YAAY;YAClC,OAAOA,SAASG,OAAO;gBAAE,GAAGC,OAAO;gBAAEN;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEJ,MAAMW,eAAe,EAAET,UAAUU,mBAAmB,EAAE,GAAGnC;IACjE,MAAMyB,WAAWC,qBAAqBS;IAEtC,MAAM,EAAEZ,IAAI,EAAEa,QAAQ,EAAEC,SAAS,EAAEL,KAAK,EAAE,GAAG/B,SAAS;QACpDsB,MAAMW,mBAAmBV,iBAAiBd;QAC1CmB,UAAUE;IACZ;IAEA,qBACE,MAACO;QACCtB,WAAW;YACTb;YACAI;YACAS;YACAqB,aAAa;YACbZ,YAAY;SACb,CACEc,MAAM,CAACC,SACPC,IAAI,CAAC;QACRb,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAAC/B;gBACCgB,aAAaA;gBACbK,OAAOA;gBACPO,UAAUA;gBACT,GAAIN,cAAc,CAAC,CAAC;;0BAEvB,MAACiB;gBAAItB,WAAW,CAAC,EAAEb,eAAe,MAAM,CAAC;;kCACvC,KAACL;wBAAWgB,aAAaA;wBAAaS,MAAMA;wBAAO,GAAIJ,cAAc,CAAC,CAAC;;oBACtEP;kCACD,KAAChB;wBACC8C,iBAAiBtC,wBAAwB,CAACkB,SAAS,IAAIA;wBACvDqB,UAAUlB,WAAW,IAAM,OAAO,CAACmB,MAAQR,SAASQ;wBACpDX,SAASf;wBACTO,UAAUA;wBACVO,OAAO,AAACA,SAAoB;;oBAE7BrB;;;YAEFE,oBAAoBA,kCAAoB,KAAChB;gBAAkB,GAAIoB,oBAAoB,CAAC,CAAC;;;;AAG5F;AAEA,OAAO,MAAM4B,OAAO3C,cAAcM,WAAU"}
1
+ {"version":3,"sources":["../../../src/fields/Code/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { CodeField as CodeFieldType } from 'payload/types'\n\nimport React, { useCallback } from 'react'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type CodeFieldProps = FormFieldBase & {\n editorOptions?: CodeFieldType['admin']['editorOptions']\n language?: CodeFieldType['admin']['language']\n name?: string\n path?: string\n width: string\n}\n\nconst prismToMonacoLanguageMap = {\n js: 'javascript',\n ts: 'typescript',\n}\n\nconst baseClass = 'code-field'\n\nconst CodeField: React.FC<CodeFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n editorOptions = {},\n errorProps,\n label,\n labelProps,\n language = 'javascript',\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n disabled && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {BeforeInput}\n <CodeEditor\n defaultLanguage={prismToMonacoLanguageMap[language] || language}\n onChange={disabled ? () => null : (val) => setValue(val)}\n options={editorOptions}\n readOnly={disabled}\n value={(value as string) || ''}\n />\n {AfterInput}\n </div>\n {CustomDescription ? CustomDescription : <FieldDescription {...(descriptionProps || {})} />}\n </div>\n )\n}\n\nexport const Code = withCondition(CodeField)\n"],"names":["React","useCallback","CodeEditor","FieldDescription","FieldError","FieldLabel","useFieldProps","useField","withCondition","fieldBaseClass","prismToMonacoLanguageMap","js","ts","baseClass","CodeField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","editorOptions","errorProps","label","labelProps","language","path","pathFromProps","readOnly","readOnlyFromProps","required","style","validate","width","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","setValue","showError","disabled","div","filter","Boolean","join","defaultLanguage","onChange","val","Code"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,iDAAiD,GACjD;;AAGA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,UAAU,QAAQ,qCAAoC;AAC/D,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,cAAc,QAAQ,qBAAoB;AAWnD,MAAMC,2BAA2B;IAC/BC,IAAI;IACJC,IAAI;AACN;AAEA,MAAMC,YAAY;AAElB,MAAMC,YAAsC,CAACC;IAC3C,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,CAAC,CAAC,EAClBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,WAAW,YAAY,EACvBC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGrB;IAEJ,MAAMsB,mBAAmBpC,YACvB,CAACqC,OAAOC;QACN,IAAI,OAAOJ,aAAa,YAAY;YAClC,OAAOA,SAASG,OAAO;gBAAE,GAAGC,OAAO;gBAAEN;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEJ,MAAMW,eAAe,EAAET,UAAUU,mBAAmB,EAAE,GAAGnC;IAEjE,MAAM,EAAEoC,gBAAgB,EAAEC,cAAc,EAAEd,IAAI,EAAEe,QAAQ,EAAEC,SAAS,EAAEP,KAAK,EAAE,GAAG/B,SAAS;QACtFsB,MAAMW,mBAAmBV,iBAAiBd;QAC1CmB,UAAUE;IACZ;IAEA,MAAMS,WAAWd,qBAAqBS,uBAAuBE,kBAAkBD;IAE/E,qBACE,MAACK;QACCzB,WAAW;YACTb;YACAI;YACAS;YACAuB,aAAa;YACbC,YAAY;SACb,CACEE,MAAM,CAACC,SACPC,IAAI,CAAC;QACRhB,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAAC/B;gBACCgB,aAAaA;gBACbK,OAAOA;gBACPO,UAAUA;gBACT,GAAIN,cAAc,CAAC,CAAC;;0BAEvB,MAACoB;gBAAIzB,WAAW,CAAC,EAAEb,eAAe,MAAM,CAAC;;kCACvC,KAACL;wBAAWgB,aAAaA;wBAAaS,MAAMA;wBAAO,GAAIJ,cAAc,CAAC,CAAC;;oBACtEP;kCACD,KAAChB;wBACCiD,iBAAiBzC,wBAAwB,CAACkB,SAAS,IAAIA;wBACvDwB,UAAUN,WAAW,IAAM,OAAO,CAACO,MAAQT,SAASS;wBACpDd,SAASf;wBACTO,UAAUe;wBACVR,OAAO,AAACA,SAAoB;;oBAE7BrB;;;YAEFE,oBAAoBA,kCAAoB,KAAChB;gBAAkB,GAAIoB,oBAAoB,CAAC,CAAC;;;;AAG5F;AAEA,OAAO,MAAM+B,OAAO9C,cAAcM,WAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Collapsible/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAazE,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIvD,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG;IAClD,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAoID,eAAO,MAAM,WAAW,iCAAkC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Collapsible/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAazE,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKvD,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG;IAClD,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAwID,eAAO,MAAM,WAAW,iCAAkC,CAAA"}
@@ -14,9 +14,12 @@ import { useTranslation } from '../../providers/Translation/index.js';
14
14
  import { fieldBaseClass } from '../shared/index.js';
15
15
  const baseClass = 'collapsible-field';
16
16
  import { FieldDescription } from '../../forms/FieldDescription/index.js';
17
+ import { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js';
17
18
  const CollapsibleField = (props)=>{
18
19
  const { CustomDescription, CustomLabel, className, descriptionProps, fieldMap, initCollapsed = false, label, path: pathFromProps, readOnly: readOnlyFromProps } = props;
19
20
  const { indexPath, path: pathFromContext, readOnly: readOnlyFromContext, schemaPath, siblingPermissions } = useFieldProps();
21
+ const formInitializing = useFormInitializing();
22
+ const formProcessing = useFormProcessing();
20
23
  const path = pathFromContext || pathFromProps;
21
24
  const { i18n } = useTranslation();
22
25
  const { getPreference, setPreference } = usePreferences();
@@ -79,7 +82,7 @@ const CollapsibleField = (props)=>{
79
82
  path
80
83
  ]);
81
84
  if (typeof collapsedOnMount !== 'boolean') return null;
82
- const readOnly = readOnlyFromProps || readOnlyFromContext;
85
+ const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
83
86
  return /*#__PURE__*/ _jsxs(Fragment, {
84
87
  children: [
85
88
  /*#__PURE__*/ _jsx(WatchChildErrors, {
@@ -124,7 +127,7 @@ const CollapsibleField = (props)=>{
124
127
  margins: "small",
125
128
  path: path,
126
129
  permissions: siblingPermissions,
127
- readOnly: readOnly,
130
+ readOnly: disabled,
128
131
  schemaPath: schemaPath
129
132
  })
130
133
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentPreferences } from 'payload/types'\n\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport { Collapsible as CollapsibleElement } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { WatchChildErrors } from '../../forms/WatchChildErrors/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'collapsible-field'\n\nimport type { FieldPermissions } from 'payload/auth'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\n\nexport type CollapsibleFieldProps = FormFieldBase & {\n fieldMap: FieldMap\n initCollapsed?: boolean\n permissions: FieldPermissions\n width?: string\n}\n\nconst CollapsibleField: React.FC<CollapsibleFieldProps> = (props) => {\n const {\n CustomDescription,\n CustomLabel,\n className,\n descriptionProps,\n fieldMap,\n initCollapsed = false,\n label,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n } = props\n\n const {\n indexPath,\n path: pathFromContext,\n readOnly: readOnlyFromContext,\n schemaPath,\n siblingPermissions,\n } = useFieldProps()\n const path = pathFromContext || pathFromProps\n\n const { i18n } = useTranslation()\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const [collapsedOnMount, setCollapsedOnMount] = useState<boolean>()\n const fieldPreferencesKey = `collapsible-${indexPath.replace(/\\./g, '__')}`\n const [errorCount, setErrorCount] = useState(0)\n const fieldHasErrors = errorCount > 0\n\n const onToggle = useCallback(\n async (newCollapsedState: boolean) => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n collapsed: newCollapsedState,\n },\n },\n }\n : {\n fields: {\n ...(existingPreferences?.fields || {}),\n [fieldPreferencesKey]: {\n ...existingPreferences?.fields?.[fieldPreferencesKey],\n collapsed: newCollapsedState,\n },\n },\n }),\n })\n }\n },\n [preferencesKey, fieldPreferencesKey, getPreference, setPreference, path],\n )\n\n useEffect(() => {\n const fetchInitialState = async () => {\n if (preferencesKey) {\n const preferences = await getPreference(preferencesKey)\n const specificPreference = path\n ? preferences?.fields?.[path]?.collapsed\n : preferences?.fields?.[fieldPreferencesKey]?.collapsed\n\n if (specificPreference !== undefined) {\n setCollapsedOnMount(Boolean(specificPreference))\n } else {\n setCollapsedOnMount(typeof initCollapsed === 'boolean' ? initCollapsed : false)\n }\n } else {\n setCollapsedOnMount(typeof initCollapsed === 'boolean' ? initCollapsed : false)\n }\n }\n\n void fetchInitialState()\n }, [getPreference, preferencesKey, fieldPreferencesKey, initCollapsed, path])\n\n if (typeof collapsedOnMount !== 'boolean') return null\n\n const readOnly = readOnlyFromProps || readOnlyFromContext\n\n return (\n <Fragment>\n <WatchChildErrors fieldMap={fieldMap} path={path} setErrorCount={setErrorCount} />\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-${fieldPreferencesKey}${path ? `-${path.replace(/\\./g, '__')}` : ''}`}\n >\n <CollapsibleElement\n className={`${baseClass}__collapsible`}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__row-label-wrap`}>\n <RowLabel RowLabelComponent={CustomLabel} i18n={i18n} path={path} rowLabel={label} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n initCollapsed={collapsedOnMount}\n onToggle={onToggle}\n >\n <RenderFields\n fieldMap={fieldMap}\n forceRender\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={siblingPermissions}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </CollapsibleElement>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </div>\n </Fragment>\n )\n}\n\nexport const Collapsible = withCondition(CollapsibleField)\n"],"names":["React","Fragment","useCallback","useEffect","useState","Collapsible","CollapsibleElement","ErrorPill","useFieldProps","RenderFields","RowLabel","WatchChildErrors","withCondition","useDocumentInfo","usePreferences","useTranslation","fieldBaseClass","baseClass","FieldDescription","CollapsibleField","props","CustomDescription","CustomLabel","className","descriptionProps","fieldMap","initCollapsed","label","path","pathFromProps","readOnly","readOnlyFromProps","indexPath","pathFromContext","readOnlyFromContext","schemaPath","siblingPermissions","i18n","getPreference","setPreference","preferencesKey","collapsedOnMount","setCollapsedOnMount","fieldPreferencesKey","replace","errorCount","setErrorCount","fieldHasErrors","onToggle","newCollapsedState","existingPreferences","fields","collapsed","fetchInitialState","preferences","specificPreference","undefined","Boolean","div","filter","join","id","collapsibleStyle","header","RowLabelComponent","rowLabel","count","withMessage","forceRender","margins","permissions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentPreferences } from 'payload/types'\n\nimport React, { Fragment, useCallback, useEffect, useState } from 'react'\n\nimport { Collapsible as CollapsibleElement } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { WatchChildErrors } from '../../forms/WatchChildErrors/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'collapsible-field'\n\nimport type { FieldPermissions } from 'payload/auth'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\n\nexport type CollapsibleFieldProps = FormFieldBase & {\n fieldMap: FieldMap\n initCollapsed?: boolean\n permissions: FieldPermissions\n width?: string\n}\n\nconst CollapsibleField: React.FC<CollapsibleFieldProps> = (props) => {\n const {\n CustomDescription,\n CustomLabel,\n className,\n descriptionProps,\n fieldMap,\n initCollapsed = false,\n label,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n } = props\n\n const {\n indexPath,\n path: pathFromContext,\n readOnly: readOnlyFromContext,\n schemaPath,\n siblingPermissions,\n } = useFieldProps()\n\n const formInitializing = useFormInitializing()\n const formProcessing = useFormProcessing()\n\n const path = pathFromContext || pathFromProps\n\n const { i18n } = useTranslation()\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const [collapsedOnMount, setCollapsedOnMount] = useState<boolean>()\n const fieldPreferencesKey = `collapsible-${indexPath.replace(/\\./g, '__')}`\n const [errorCount, setErrorCount] = useState(0)\n const fieldHasErrors = errorCount > 0\n\n const onToggle = useCallback(\n async (newCollapsedState: boolean) => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n collapsed: newCollapsedState,\n },\n },\n }\n : {\n fields: {\n ...(existingPreferences?.fields || {}),\n [fieldPreferencesKey]: {\n ...existingPreferences?.fields?.[fieldPreferencesKey],\n collapsed: newCollapsedState,\n },\n },\n }),\n })\n }\n },\n [preferencesKey, fieldPreferencesKey, getPreference, setPreference, path],\n )\n\n useEffect(() => {\n const fetchInitialState = async () => {\n if (preferencesKey) {\n const preferences = await getPreference(preferencesKey)\n const specificPreference = path\n ? preferences?.fields?.[path]?.collapsed\n : preferences?.fields?.[fieldPreferencesKey]?.collapsed\n\n if (specificPreference !== undefined) {\n setCollapsedOnMount(Boolean(specificPreference))\n } else {\n setCollapsedOnMount(typeof initCollapsed === 'boolean' ? initCollapsed : false)\n }\n } else {\n setCollapsedOnMount(typeof initCollapsed === 'boolean' ? initCollapsed : false)\n }\n }\n\n void fetchInitialState()\n }, [getPreference, preferencesKey, fieldPreferencesKey, initCollapsed, path])\n\n if (typeof collapsedOnMount !== 'boolean') return null\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <Fragment>\n <WatchChildErrors fieldMap={fieldMap} path={path} setErrorCount={setErrorCount} />\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-${fieldPreferencesKey}${path ? `-${path.replace(/\\./g, '__')}` : ''}`}\n >\n <CollapsibleElement\n className={`${baseClass}__collapsible`}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n header={\n <div className={`${baseClass}__row-label-wrap`}>\n <RowLabel RowLabelComponent={CustomLabel} i18n={i18n} path={path} rowLabel={label} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n initCollapsed={collapsedOnMount}\n onToggle={onToggle}\n >\n <RenderFields\n fieldMap={fieldMap}\n forceRender\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={siblingPermissions}\n readOnly={disabled}\n schemaPath={schemaPath}\n />\n </CollapsibleElement>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </div>\n </Fragment>\n )\n}\n\nexport const Collapsible = withCondition(CollapsibleField)\n"],"names":["React","Fragment","useCallback","useEffect","useState","Collapsible","CollapsibleElement","ErrorPill","useFieldProps","RenderFields","RowLabel","WatchChildErrors","withCondition","useDocumentInfo","usePreferences","useTranslation","fieldBaseClass","baseClass","FieldDescription","useFormInitializing","useFormProcessing","CollapsibleField","props","CustomDescription","CustomLabel","className","descriptionProps","fieldMap","initCollapsed","label","path","pathFromProps","readOnly","readOnlyFromProps","indexPath","pathFromContext","readOnlyFromContext","schemaPath","siblingPermissions","formInitializing","formProcessing","i18n","getPreference","setPreference","preferencesKey","collapsedOnMount","setCollapsedOnMount","fieldPreferencesKey","replace","errorCount","setErrorCount","fieldHasErrors","onToggle","newCollapsedState","existingPreferences","fields","collapsed","fetchInitialState","preferences","specificPreference","undefined","Boolean","disabled","div","filter","join","id","collapsibleStyle","header","RowLabelComponent","rowLabel","count","withMessage","forceRender","margins","permissions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}