@payloadcms/ui 3.47.0-canary.1 → 3.47.0-canary.2

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 (50) hide show
  1. package/dist/elements/ArrayAction/index.d.ts +2 -0
  2. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  3. package/dist/elements/ArrayAction/index.js +37 -13
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/ClipboardAction/ClipboardActionLabel.d.ts +5 -0
  6. package/dist/elements/ClipboardAction/ClipboardActionLabel.d.ts.map +1 -0
  7. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +44 -0
  8. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -0
  9. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +10 -0
  10. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -0
  11. package/dist/elements/ClipboardAction/clipboardUtilities.js +53 -0
  12. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -0
  13. package/dist/elements/ClipboardAction/index.d.ts +20 -0
  14. package/dist/elements/ClipboardAction/index.d.ts.map +1 -0
  15. package/dist/elements/ClipboardAction/index.js +188 -0
  16. package/dist/elements/ClipboardAction/index.js.map +1 -0
  17. package/dist/elements/ClipboardAction/isClipboardDataValid.d.ts +10 -0
  18. package/dist/elements/ClipboardAction/isClipboardDataValid.d.ts.map +1 -0
  19. package/dist/elements/ClipboardAction/isClipboardDataValid.js +86 -0
  20. package/dist/elements/ClipboardAction/isClipboardDataValid.js.map +1 -0
  21. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +14 -0
  22. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -0
  23. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +100 -0
  24. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -0
  25. package/dist/elements/ClipboardAction/types.d.ts +45 -0
  26. package/dist/elements/ClipboardAction/types.d.ts.map +1 -0
  27. package/dist/elements/ClipboardAction/types.js +2 -0
  28. package/dist/elements/ClipboardAction/types.js.map +1 -0
  29. package/dist/exports/client/index.js +22 -22
  30. package/dist/exports/client/index.js.map +4 -4
  31. package/dist/fields/Array/ArrayRow.d.ts +2 -0
  32. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  33. package/dist/fields/Array/ArrayRow.js +49 -43
  34. package/dist/fields/Array/ArrayRow.js.map +1 -1
  35. package/dist/fields/Array/index.d.ts.map +1 -1
  36. package/dist/fields/Array/index.js +175 -44
  37. package/dist/fields/Array/index.js.map +1 -1
  38. package/dist/fields/Blocks/BlockRow.d.ts +2 -0
  39. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  40. package/dist/fields/Blocks/BlockRow.js +41 -35
  41. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  42. package/dist/fields/Blocks/RowActions.d.ts +2 -0
  43. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  44. package/dist/fields/Blocks/RowActions.js +32 -26
  45. package/dist/fields/Blocks/RowActions.js.map +1 -1
  46. package/dist/fields/Blocks/index.d.ts.map +1 -1
  47. package/dist/fields/Blocks/index.js +294 -348
  48. package/dist/fields/Blocks/index.js.map +1 -1
  49. package/dist/styles.css +1 -1
  50. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","ArrayFieldComponent","props","$","field","t0","forceRender","t1","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","name","admin","t2","fields","label","localized","maxRows","minRows","minRowsProp","required","t3","undefined","className","description","isSortable","t4","setDocFieldPreferences","addFieldRow","dispatchFields","moveFieldRow","removeFieldRow","setModified","submitted","code","locale","i18n","t","config","t5","localization","t6","bb0","fallback","defaultLocale","editingDefaultLocale","t7","p","labels","plural","singular","getLabels","t8","value","options","memoizedValidate","t9","hasRows","potentiallyStalePath","customComponents","t10","disabled","errorPaths","rows","t11","showError","valid","value_0","t12","AfterInput","BeforeInput","Description","Error","Label","t13","t14","rowIndex","setTimeout","addRow","t15","rowIndex_0","type","duplicateRow","t16","rowIndex_1","removeRow","t17","moveFromIndex","moveToIndex","moveRow","t18","collapsed","collapsedIDs","updatedRows","toggleCollapseAll","t19","rowID","collapsed_0","collapsedIDs_0","updatedRows_0","setCollapse","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","t20","t21","filter","Boolean","t22","_jsx","CustomComponent","Fallback","t23","count","withMessage","_jsxs","join","id","replace","children","as","onClick","fieldValue","ids","map","_temp","onDragEnd","t24","moveFromIndex_0","moveToIndex_0","rowData","i","rowID_0","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","CustomRowLabel","RowLabel","errorCount","parentPath","row","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ArrayFieldClientComponent,\n ArrayFieldClientProps,\n ArrayField as ArrayFieldType,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { 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 { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { 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 const ArrayFieldComponent: ArrayFieldClientComponent = (props) => {\n const {\n field: {\n name,\n admin: { className, description, isSortable = true } = {},\n fields,\n label,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n forceRender = false,\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = (minRowsProp ?? required) ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, moveFieldRow, removeFieldRow, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldClientProps): Partial<ArrayFieldType['labels']> => {\n if ('labels' in p && p?.labels) {\n return p.labels\n }\n\n if ('labels' in p.field && p.field.labels) {\n return { plural: p.field.labels?.plural, singular: p.field.labels?.singular }\n }\n\n if ('label' in p.field && p.field.label) {\n return { plural: undefined, singular: p.field.label }\n }\n\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\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n (rowIndex: number) => {\n addFieldRow({\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n\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 removeFieldRow({ path, rowIndex })\n },\n [removeFieldRow, path],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({\n moveFromIndex,\n moveToIndex,\n path,\n })\n },\n [path, moveFieldRow],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = (readOnly || disabled) && rows.length === 0\n const showMinRows = (rows.length && 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 && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {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 <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {BeforeInput}\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((rowData, i) => {\n const { id: rowID, isLoading } = rowData\n\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={rowID}\n key={rowID}\n >\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n addRow={addRow}\n CustomRowLabel={rows?.[i]?.customComponents?.RowLabel}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={fields}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={rowData}\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:rows' : 'general:row'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && !readOnly && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n void addRow(value || 0)\n }}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(ArrayFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","DraggableSortableItem","DraggableSortable","ErrorPill","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","ArrayFieldComponent","props","$","field","t0","forceRender","t1","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","name","type","admin","t2","fields","label","localized","maxRows","minRows","minRowsProp","required","t3","undefined","className","description","isSortable","t4","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","submitted","code","locale","i18n","t","config","t5","localization","t6","bb0","fallback","defaultLocale","editingDefaultLocale","t7","p","labels","plural","singular","getLabels","t8","value","options","memoizedValidate","t9","hasRows","potentiallyStalePath","customComponents","t10","disabled","errorPaths","rows","t11","showError","valid","value_0","t12","AfterInput","BeforeInput","Description","Error","Label","t13","t14","rowIndex","setTimeout","addRow","t15","rowIndex_0","duplicateRow","t16","rowIndex_1","removeRow","t17","moveFromIndex","moveToIndex","moveRow","t18","collapsed","collapsedIDs","updatedRows","toggleCollapseAll","t19","rowID","collapsed_0","collapsedIDs_0","updatedRows_0","setCollapse","t20","rowIndex_2","formState","clipboardResult","getDataToCopy","error","success","copyRow","t21","rowIndex_3","formState_0","pasteArgs","onPaste","dataFromClipboard","newState","schemaFields","clipboardResult_0","pasteRow","t22","dataFromClipboard_0","formState_1","newState_0","pasteField","t23","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","t24","t25","filter","Boolean","t26","_jsx","CustomComponent","Fallback","t27","count","withMessage","_jsxs","join","id","replace","children","as","onClick","disableCopy","disablePaste","fieldValue","ids","map","_temp","onDragEnd","t28","moveFromIndex_0","moveToIndex_0","rowData","i","rowID_0","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","CustomRowLabel","RowLabel","errorCount","parentPath","row","rowCount","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ArrayFieldClientComponent,\n ArrayFieldClientProps,\n ArrayField as ArrayFieldType,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport './index.scss'\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'\n\nconst baseClass = 'array-field'\n\nexport const ArrayFieldComponent: ArrayFieldClientComponent = (props) => {\n const {\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n fields,\n label,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n forceRender = false,\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = (minRowsProp ?? required) ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldClientProps): Partial<ArrayFieldType['labels']> => {\n if ('labels' in p && p?.labels) {\n return p.labels\n }\n\n if ('labels' in p.field && p.field.labels) {\n return { plural: p.field.labels?.plural, singular: p.field.labels?.singular }\n }\n\n if ('label' in p.field && p.field.label) {\n return { plural: undefined, singular: p.field.label }\n }\n\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\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n (rowIndex: number) => {\n addFieldRow({\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n\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 removeFieldRow({ path, rowIndex })\n },\n [removeFieldRow, path],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({\n moveFromIndex,\n moveToIndex,\n path,\n })\n },\n [path, moveFieldRow],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const formState = { ...getFields() }\n const clipboardResult = clipboardCopy({\n type,\n fields,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [fields, getFields, path, t, type],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const formState = { ...getFields() }\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaFields: fields,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [fields, getFields, path, replaceState, setModified, t],\n )\n\n const pasteField = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const getDataToCopy = useCallback(\n () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n }),\n [getFields, path],\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 || disabled) && rows.length === 0\n const showMinRows = (rows.length && 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 && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows?.length > 0 && (\n <Fragment>\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 </Fragment>\n )}\n <li>\n <ClipboardAction\n className={`${baseClass}__header-action`}\n disableCopy={!(rows?.length > 0)}\n disablePaste={readOnly}\n fields={fields}\n getDataToCopy={getDataToCopy}\n onPaste={pasteField}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {BeforeInput}\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((rowData, i) => {\n const { id: rowID, isLoading } = rowData\n\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={rowID}\n key={rowID}\n >\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n addRow={addRow}\n copyRow={copyRow}\n CustomRowLabel={rows?.[i]?.customComponents?.RowLabel}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={fields}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={rowData}\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:rows' : 'general:row'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && !readOnly && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n void addRow(value || 0)\n }}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(ArrayFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ type BlocksFieldProps = {
5
5
  addRow: (rowIndex: number, blockType: string) => Promise<void> | void;
6
6
  block: ClientBlock;
7
7
  blocks: (ClientBlock | string)[] | ClientBlock[];
8
+ copyRow: (rowIndex: number) => void;
8
9
  duplicateRow: (rowIndex: number) => void;
9
10
  errorCount: number;
10
11
  fields: ClientField[];
@@ -15,6 +16,7 @@ type BlocksFieldProps = {
15
16
  labels: Labels;
16
17
  moveRow: (fromIndex: number, toIndex: number) => void;
17
18
  parentPath: string;
19
+ pasteRow: (rowIndex: number) => void;
18
20
  path: string;
19
21
  permissions: SanitizedFieldPermissions;
20
22
  readOnly: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG/F,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAiBhH,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,GAAG,WAAW,EAAE,CAAA;IAChD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,GAAG,0BAA0B,CAAA;AAE9B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoJ/C,CAAA"}
1
+ {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG/F,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAiBhH,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,GAAG,WAAW,EAAE,CAAA;IAChD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,GAAG,0BAA0B,CAAA;AAE9B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwJ/C,CAAA"}
@@ -17,12 +17,13 @@ import { RowActions } from './RowActions.js';
17
17
  import { SectionTitle } from './SectionTitle/index.js';
18
18
  const baseClass = 'blocks-field';
19
19
  export const BlockRow = t0 => {
20
- const $ = _c(40);
20
+ const $ = _c(42);
21
21
  const {
22
22
  addRow,
23
23
  attributes,
24
24
  block,
25
25
  blocks,
26
+ copyRow,
26
27
  duplicateRow,
27
28
  errorCount,
28
29
  fields,
@@ -34,6 +35,7 @@ export const BlockRow = t0 => {
34
35
  listeners,
35
36
  moveRow,
36
37
  parentPath,
38
+ pasteRow,
37
39
  path,
38
40
  permissions,
39
41
  readOnly,
@@ -76,15 +78,15 @@ export const BlockRow = t0 => {
76
78
  }
77
79
  const t3 = `${parentPath?.split(".").join("-")}-row-${rowIndex}`;
78
80
  let t4;
79
- if ($[2] !== Label || $[3] !== addRow || $[4] !== attributes || $[5] !== block.fields || $[6] !== block.labels || $[7] !== blockPermissions || $[8] !== blocks || $[9] !== classNames || $[10] !== duplicateRow || $[11] !== errorCount || $[12] !== fieldHasErrors || $[13] !== fields || $[14] !== hasMaxRows || $[15] !== i18n || $[16] !== isLoading || $[17] !== isSortable || $[18] !== labels || $[19] !== listeners || $[20] !== moveRow || $[21] !== parentPath || $[22] !== path || $[23] !== readOnly || $[24] !== removeRow || $[25] !== row.blockType || $[26] !== row.collapsed || $[27] !== row.id || $[28] !== rowCount || $[29] !== rowIndex || $[30] !== schemaPath || $[31] !== setCollapse || $[32] !== setNodeRef || $[33] !== showBlockName || $[34] !== t3 || $[35] !== transform) {
81
+ if ($[2] !== Label || $[3] !== addRow || $[4] !== attributes || $[5] !== block.fields || $[6] !== block.labels || $[7] !== blockPermissions || $[8] !== blocks || $[9] !== classNames || $[10] !== copyRow || $[11] !== duplicateRow || $[12] !== errorCount || $[13] !== fieldHasErrors || $[14] !== fields || $[15] !== hasMaxRows || $[16] !== i18n || $[17] !== isLoading || $[18] !== isSortable || $[19] !== labels || $[20] !== listeners || $[21] !== moveRow || $[22] !== parentPath || $[23] !== pasteRow || $[24] !== path || $[25] !== readOnly || $[26] !== removeRow || $[27] !== row.blockType || $[28] !== row.collapsed || $[29] !== row.id || $[30] !== rowCount || $[31] !== rowIndex || $[32] !== schemaPath || $[33] !== setCollapse || $[34] !== setNodeRef || $[35] !== showBlockName || $[36] !== t3 || $[37] !== transform) {
80
82
  let t5;
81
- if ($[37] !== row.id || $[38] !== setCollapse) {
83
+ if ($[39] !== row.id || $[40] !== setCollapse) {
82
84
  t5 = collapsed => setCollapse(row.id, collapsed);
83
- $[37] = row.id;
84
- $[38] = setCollapse;
85
- $[39] = t5;
85
+ $[39] = row.id;
86
+ $[40] = setCollapse;
87
+ $[41] = t5;
86
88
  } else {
87
- t5 = $[39];
89
+ t5 = $[41];
88
90
  }
89
91
  t4 = _jsx("div", {
90
92
  id: t3,
@@ -97,12 +99,14 @@ export const BlockRow = t0 => {
97
99
  addRow,
98
100
  blocks,
99
101
  blockType: row.blockType,
102
+ copyRow,
100
103
  duplicateRow,
101
104
  fields: block.fields,
102
105
  hasMaxRows,
103
106
  isSortable,
104
107
  labels,
105
108
  moveRow,
109
+ pasteRow,
106
110
  removeRow,
107
111
  rowCount,
108
112
  rowIndex
@@ -165,35 +169,37 @@ export const BlockRow = t0 => {
165
169
  $[7] = blockPermissions;
166
170
  $[8] = blocks;
167
171
  $[9] = classNames;
168
- $[10] = duplicateRow;
169
- $[11] = errorCount;
170
- $[12] = fieldHasErrors;
171
- $[13] = fields;
172
- $[14] = hasMaxRows;
173
- $[15] = i18n;
174
- $[16] = isLoading;
175
- $[17] = isSortable;
176
- $[18] = labels;
177
- $[19] = listeners;
178
- $[20] = moveRow;
179
- $[21] = parentPath;
180
- $[22] = path;
181
- $[23] = readOnly;
182
- $[24] = removeRow;
183
- $[25] = row.blockType;
184
- $[26] = row.collapsed;
185
- $[27] = row.id;
186
- $[28] = rowCount;
187
- $[29] = rowIndex;
188
- $[30] = schemaPath;
189
- $[31] = setCollapse;
190
- $[32] = setNodeRef;
191
- $[33] = showBlockName;
192
- $[34] = t3;
193
- $[35] = transform;
194
- $[36] = t4;
172
+ $[10] = copyRow;
173
+ $[11] = duplicateRow;
174
+ $[12] = errorCount;
175
+ $[13] = fieldHasErrors;
176
+ $[14] = fields;
177
+ $[15] = hasMaxRows;
178
+ $[16] = i18n;
179
+ $[17] = isLoading;
180
+ $[18] = isSortable;
181
+ $[19] = labels;
182
+ $[20] = listeners;
183
+ $[21] = moveRow;
184
+ $[22] = parentPath;
185
+ $[23] = pasteRow;
186
+ $[24] = path;
187
+ $[25] = readOnly;
188
+ $[26] = removeRow;
189
+ $[27] = row.blockType;
190
+ $[28] = row.collapsed;
191
+ $[29] = row.id;
192
+ $[30] = rowCount;
193
+ $[31] = rowIndex;
194
+ $[32] = schemaPath;
195
+ $[33] = setCollapse;
196
+ $[34] = setNodeRef;
197
+ $[35] = showBlockName;
198
+ $[36] = t3;
199
+ $[37] = transform;
200
+ $[38] = t4;
195
201
  } else {
196
- t4 = $[36];
202
+ t4 = $[38];
197
203
  }
198
204
  return t4;
199
205
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRow.js","names":["c","_c","getTranslation","React","Collapsible","ErrorPill","Pill","ShimmerEffect","useFormSubmitted","RenderFields","RowLabel","useThrottledValue","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","t0","$","addRow","attributes","block","blocks","duplicateRow","errorCount","fields","hasMaxRows","isLoading","isLoadingFromProps","isSortable","Label","labels","listeners","moveRow","parentPath","path","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","showBlockName","admin","disableBlockName","t1","t2","filter","Boolean","classNames","join","blockPermissions","permissionsBlockSpecific","slug","t3","split","t4","blockType","collapsed","id","t5","_jsx","ref","style","children","actions","className","collapsibleStyle","dragHandleProps","undefined","header","height","width","_jsxs","CustomComponent","label","_Fragment","String","padStart","pillStyle","size","singular","count","withMessage","onToggle","margins","parentIndexPath","parentSchemaPath"],"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels, Row, SanitizedFieldPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { RenderFieldsProps } from '../../forms/RenderFields/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useThrottledValue } from '../../hooks/useThrottledValue.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlocksFieldProps = {\n addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n block: ClientBlock\n blocks: (ClientBlock | string)[] | ClientBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fields: ClientField[]\n hasMaxRows?: boolean\n isLoading?: boolean\n isSortable?: boolean\n Label?: React.ReactNode\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n parentPath: string\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n} & UseDraggableSortableReturn\n\nexport const BlockRow: React.FC<BlocksFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n fields,\n hasMaxRows,\n isLoading: isLoadingFromProps,\n isSortable,\n Label,\n labels,\n listeners,\n moveRow,\n parentPath,\n path,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const isLoading = useThrottledValue(isLoadingFromProps, 500)\n\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const showBlockName = !block.admin?.disableBlockName\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let blockPermissions: RenderFieldsProps['permissions'] = undefined\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[block.slug]\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n\n return (\n <div\n id={`${parentPath?.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blocks={blocks}\n blockType={row.blockType}\n duplicateRow={duplicateRow}\n fields={block.fields}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n isLoading ? (\n <ShimmerEffect height=\"1rem\" width=\"8rem\" />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={Label}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n {showBlockName && (\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n )}\n </>\n }\n path={path}\n rowNumber={rowIndex}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n )\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n {isLoading ? (\n <ShimmerEffect />\n ) : (\n <RenderFields\n className={`${baseClass}__fields`}\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={blockPermissions}\n readOnly={readOnly}\n />\n )}\n </Collapsible>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BlockRow.js","names":["c","_c","getTranslation","React","Collapsible","ErrorPill","Pill","ShimmerEffect","useFormSubmitted","RenderFields","RowLabel","useThrottledValue","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","t0","$","addRow","attributes","block","blocks","copyRow","duplicateRow","errorCount","fields","hasMaxRows","isLoading","isLoadingFromProps","isSortable","Label","labels","listeners","moveRow","parentPath","pasteRow","path","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","showBlockName","admin","disableBlockName","t1","t2","filter","Boolean","classNames","join","blockPermissions","permissionsBlockSpecific","slug","t3","split","t4","blockType","collapsed","id","t5","_jsx","ref","style","children","actions","className","collapsibleStyle","dragHandleProps","undefined","header","height","width","_jsxs","CustomComponent","label","_Fragment","String","padStart","pillStyle","size","singular","count","withMessage","onToggle","margins","parentIndexPath","parentSchemaPath"],"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels, Row, SanitizedFieldPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { RenderFieldsProps } from '../../forms/RenderFields/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useThrottledValue } from '../../hooks/useThrottledValue.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlocksFieldProps = {\n addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n block: ClientBlock\n blocks: (ClientBlock | string)[] | ClientBlock[]\n copyRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fields: ClientField[]\n hasMaxRows?: boolean\n isLoading?: boolean\n isSortable?: boolean\n Label?: React.ReactNode\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n parentPath: string\n pasteRow: (rowIndex: number) => void\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n} & UseDraggableSortableReturn\n\nexport const BlockRow: React.FC<BlocksFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n copyRow,\n duplicateRow,\n errorCount,\n fields,\n hasMaxRows,\n isLoading: isLoadingFromProps,\n isSortable,\n Label,\n labels,\n listeners,\n moveRow,\n parentPath,\n pasteRow,\n path,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const isLoading = useThrottledValue(isLoadingFromProps, 500)\n\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const showBlockName = !block.admin?.disableBlockName\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let blockPermissions: RenderFieldsProps['permissions'] = undefined\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[block.slug]\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n\n return (\n <div\n id={`${parentPath?.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blocks={blocks}\n blockType={row.blockType}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n fields={block.fields}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n pasteRow={pasteRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n isLoading ? (\n <ShimmerEffect height=\"1rem\" width=\"8rem\" />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={Label}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n {showBlockName && (\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n )}\n </>\n }\n path={path}\n rowNumber={rowIndex}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n )\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n {isLoading ? (\n <ShimmerEffect />\n ) : (\n <RenderFields\n className={`${baseClass}__fields`}\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={blockPermissions}\n readOnly={readOnly}\n />\n )}\n </Collapsible>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,12 +4,14 @@ export declare const RowActions: React.FC<{
4
4
  readonly addRow: (rowIndex: number, blockType: string) => Promise<void> | void;
5
5
  readonly blocks: (ClientBlock | string)[];
6
6
  readonly blockType: string;
7
+ readonly copyRow: (rowIndex: number) => void;
7
8
  readonly duplicateRow: (rowIndex: number, blockType: string) => void;
8
9
  readonly fields: ClientField[];
9
10
  readonly hasMaxRows?: boolean;
10
11
  readonly isSortable?: boolean;
11
12
  readonly labels: Labels;
12
13
  readonly moveRow: (fromIndex: number, toIndex: number) => void;
14
+ readonly pasteRow: (rowIndex: number) => void;
13
15
  readonly removeRow: (rowIndex: number) => void;
14
16
  readonly rowCount: number;
15
17
  readonly rowIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC9E,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACpE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAiDA,CAAA"}
1
+ {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC9E,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACpE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAqDA,CAAA"}
@@ -8,16 +8,18 @@ import { ArrayAction } from '../../elements/ArrayAction/index.js';
8
8
  import { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js';
9
9
  import { BlocksDrawer } from './BlocksDrawer/index.js';
10
10
  export const RowActions = props => {
11
- const $ = _c(26);
11
+ const $ = _c(28);
12
12
  const {
13
13
  addRow,
14
14
  blocks,
15
15
  blockType,
16
+ copyRow,
16
17
  duplicateRow,
17
18
  hasMaxRows,
18
19
  isSortable,
19
20
  labels,
20
21
  moveRow,
22
+ pasteRow,
21
23
  removeRow,
22
24
  rowCount,
23
25
  rowIndex
@@ -45,28 +47,28 @@ export const RowActions = props => {
45
47
  t0 = $[4];
46
48
  }
47
49
  let t1;
48
- if ($[5] !== blockType || $[6] !== blocks || $[7] !== drawerSlug || $[8] !== duplicateRow || $[9] !== hasMaxRows || $[10] !== isSortable || $[11] !== labels || $[12] !== moveRow || $[13] !== openModal || $[14] !== removeRow || $[15] !== rowCount || $[16] !== rowIndex || $[17] !== t0) {
50
+ if ($[5] !== blockType || $[6] !== blocks || $[7] !== copyRow || $[8] !== drawerSlug || $[9] !== duplicateRow || $[10] !== hasMaxRows || $[11] !== isSortable || $[12] !== labels || $[13] !== moveRow || $[14] !== openModal || $[15] !== pasteRow || $[16] !== removeRow || $[17] !== rowCount || $[18] !== rowIndex || $[19] !== t0) {
49
51
  let t2;
50
- if ($[19] !== drawerSlug || $[20] !== openModal) {
52
+ if ($[21] !== drawerSlug || $[22] !== openModal) {
51
53
  t2 = index => {
52
54
  setIndexToAdd(index);
53
55
  openModal(drawerSlug);
54
56
  };
55
- $[19] = drawerSlug;
56
- $[20] = openModal;
57
- $[21] = t2;
57
+ $[21] = drawerSlug;
58
+ $[22] = openModal;
59
+ $[23] = t2;
58
60
  } else {
59
- t2 = $[21];
61
+ t2 = $[23];
60
62
  }
61
63
  let t3;
62
- if ($[22] !== blockType || $[23] !== duplicateRow || $[24] !== rowIndex) {
64
+ if ($[24] !== blockType || $[25] !== duplicateRow || $[26] !== rowIndex) {
63
65
  t3 = () => duplicateRow(rowIndex, blockType);
64
- $[22] = blockType;
65
- $[23] = duplicateRow;
66
- $[24] = rowIndex;
67
- $[25] = t3;
66
+ $[24] = blockType;
67
+ $[25] = duplicateRow;
68
+ $[26] = rowIndex;
69
+ $[27] = t3;
68
70
  } else {
69
- t3 = $[25];
71
+ t3 = $[27];
70
72
  }
71
73
  t1 = _jsxs(React.Fragment, {
72
74
  children: [_jsx(BlocksDrawer, {
@@ -77,31 +79,35 @@ export const RowActions = props => {
77
79
  labels
78
80
  }), _jsx(ArrayAction, {
79
81
  addRow: t2,
82
+ copyRow,
80
83
  duplicateRow: t3,
81
84
  hasMaxRows,
82
85
  index: rowIndex,
83
86
  isSortable,
84
87
  moveRow,
88
+ pasteRow,
85
89
  removeRow,
86
90
  rowCount
87
91
  })]
88
92
  });
89
93
  $[5] = blockType;
90
94
  $[6] = blocks;
91
- $[7] = drawerSlug;
92
- $[8] = duplicateRow;
93
- $[9] = hasMaxRows;
94
- $[10] = isSortable;
95
- $[11] = labels;
96
- $[12] = moveRow;
97
- $[13] = openModal;
98
- $[14] = removeRow;
99
- $[15] = rowCount;
100
- $[16] = rowIndex;
101
- $[17] = t0;
102
- $[18] = t1;
95
+ $[7] = copyRow;
96
+ $[8] = drawerSlug;
97
+ $[9] = duplicateRow;
98
+ $[10] = hasMaxRows;
99
+ $[11] = isSortable;
100
+ $[12] = labels;
101
+ $[13] = moveRow;
102
+ $[14] = openModal;
103
+ $[15] = pasteRow;
104
+ $[16] = removeRow;
105
+ $[17] = rowCount;
106
+ $[18] = rowIndex;
107
+ $[19] = t0;
108
+ $[20] = t1;
103
109
  } else {
104
- t1 = $[18];
110
+ t1 = $[20];
105
111
  }
106
112
  return t1;
107
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.js","names":["c","_c","useModal","React","ArrayAction","useDrawerSlug","BlocksDrawer","RowActions","props","$","addRow","blocks","blockType","duplicateRow","hasMaxRows","isSortable","labels","moveRow","removeRow","rowCount","rowIndex","closeModal","openModal","drawerSlug","indexToAdd","setIndexToAdd","useState","t0","_","rowBlockType","t1","t2","index","t3","_jsxs","Fragment","children","_jsx","addRowIndex"],"sources":["../../../src/fields/Blocks/RowActions.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nexport const RowActions: React.FC<{\n readonly addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n readonly blocks: (ClientBlock | string)[]\n readonly blockType: string\n readonly duplicateRow: (rowIndex: number, blockType: string) => void\n readonly fields: ClientField[]\n readonly hasMaxRows?: boolean\n readonly isSortable?: boolean\n readonly labels: Labels\n readonly moveRow: (fromIndex: number, toIndex: number) => void\n readonly removeRow: (rowIndex: number) => void\n readonly rowCount: number\n readonly rowIndex: number\n}> = (props) => {\n const {\n addRow,\n blocks,\n blockType,\n duplicateRow,\n hasMaxRows,\n isSortable,\n labels,\n moveRow,\n removeRow,\n rowCount,\n rowIndex,\n } = props\n\n const { closeModal, openModal } = useModal()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n\n const [indexToAdd, setIndexToAdd] = React.useState<null | number>(null)\n\n return (\n <React.Fragment>\n <BlocksDrawer\n addRow={(_, rowBlockType) => {\n if (typeof addRow === 'function') {\n void addRow(indexToAdd, rowBlockType)\n }\n closeModal(drawerSlug)\n }}\n addRowIndex={rowIndex}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n <ArrayAction\n addRow={(index) => {\n setIndexToAdd(index)\n openModal(drawerSlug)\n }}\n duplicateRow={() => duplicateRow(rowIndex, blockType)}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n isSortable={isSortable}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RowActions.js","names":["c","_c","useModal","React","ArrayAction","useDrawerSlug","BlocksDrawer","RowActions","props","$","addRow","blocks","blockType","copyRow","duplicateRow","hasMaxRows","isSortable","labels","moveRow","pasteRow","removeRow","rowCount","rowIndex","closeModal","openModal","drawerSlug","indexToAdd","setIndexToAdd","useState","t0","_","rowBlockType","t1","t2","index","t3","_jsxs","Fragment","children","_jsx","addRowIndex"],"sources":["../../../src/fields/Blocks/RowActions.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nexport const RowActions: React.FC<{\n readonly addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n readonly blocks: (ClientBlock | string)[]\n readonly blockType: string\n readonly copyRow: (rowIndex: number) => void\n readonly duplicateRow: (rowIndex: number, blockType: string) => void\n readonly fields: ClientField[]\n readonly hasMaxRows?: boolean\n readonly isSortable?: boolean\n readonly labels: Labels\n readonly moveRow: (fromIndex: number, toIndex: number) => void\n readonly pasteRow: (rowIndex: number) => void\n readonly removeRow: (rowIndex: number) => void\n readonly rowCount: number\n readonly rowIndex: number\n}> = (props) => {\n const {\n addRow,\n blocks,\n blockType,\n copyRow,\n duplicateRow,\n hasMaxRows,\n isSortable,\n labels,\n moveRow,\n pasteRow,\n removeRow,\n rowCount,\n rowIndex,\n } = props\n\n const { closeModal, openModal } = useModal()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n\n const [indexToAdd, setIndexToAdd] = React.useState<null | number>(null)\n\n return (\n <React.Fragment>\n <BlocksDrawer\n addRow={(_, rowBlockType) => {\n if (typeof addRow === 'function') {\n void addRow(indexToAdd, rowBlockType)\n }\n closeModal(drawerSlug)\n }}\n addRowIndex={rowIndex}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n <ArrayAction\n addRow={(index) => {\n setIndexToAdd(index)\n openModal(drawerSlug)\n }}\n copyRow={copyRow}\n duplicateRow={() => duplicateRow(rowIndex, blockType)}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n isSortable={isSortable}\n moveRow={moveRow}\n pasteRow={pasteRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,UAAA,GAeRC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACH;IAAAS,MAAA;IAAAC,MAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,UAAA;IAAAC,UAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC;EAAA,IAcId,KAAA;EAEJ;IAAAe,UAAA;IAAAC;EAAA,IAAkCtB,QAAA;EAClC,MAAAuB,UAAA,GAAmBpB,aAAA,CAAc;EAEjC,OAAAqB,UAAA,EAAAC,aAAA,IAAoCxB,KAAA,CAAAyB,QAAA,KAA8B;EAAA,IAAAC,EAAA;EAAA,IAAApB,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAc,UAAA,IAAAd,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAiB,UAAA;IAKpDG,EAAA,GAAAA,CAAAC,CAAA,EAAAC,YAAA;MAAA,IACF,OAAOrB,MAAA,KAAW;QACfA,MAAA,CAAOgB,UAAA,EAAYK,YAAA;MAAA;MAE1BR,UAAA,CAAWE,UAAA;IAAA;IACbhB,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAc,UAAA;IAAAd,CAAA,MAAAgB,UAAA;IAAAhB,CAAA,MAAAiB,UAAA;IAAAjB,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAAA,IAAAuB,EAAA;EAAA,IAAAvB,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAgB,UAAA,IAAAhB,CAAA,QAAAK,YAAA,IAAAL,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAQ,MAAA,IAAAR,CAAA,SAAAS,OAAA,IAAAT,CAAA,SAAAe,SAAA,IAAAf,CAAA,SAAAU,QAAA,IAAAV,CAAA,SAAAW,SAAA,IAAAX,CAAA,SAAAY,QAAA,IAAAZ,CAAA,SAAAa,QAAA,IAAAb,CAAA,SAAAoB,EAAA;IAAA,IAAAI,EAAA;IAAA,IAAAxB,CAAA,SAAAgB,UAAA,IAAAhB,CAAA,SAAAe,SAAA;MAOQS,EAAA,GAAAC,KAAA;QACNP,aAAA,CAAcO,KAAA;QACdV,SAAA,CAAUC,UAAA;MAAA;MACZhB,CAAA,OAAAgB,UAAA;MAAAhB,CAAA,OAAAe,SAAA;MAAAf,CAAA,OAAAwB,EAAA;IAAA;MAAAA,EAAA,GAAAxB,CAAA;IAAA;IAAA,IAAA0B,EAAA;IAAA,IAAA1B,CAAA,SAAAG,SAAA,IAAAH,CAAA,SAAAK,YAAA,IAAAL,CAAA,SAAAa,QAAA;MAEca,EAAA,GAAAA,CAAA,KAAMrB,YAAA,CAAaQ,QAAA,EAAUV,SAAA;MAAAH,CAAA,OAAAG,SAAA;MAAAH,CAAA,OAAAK,YAAA;MAAAL,CAAA,OAAAa,QAAA;MAAAb,CAAA,OAAA0B,EAAA;IAAA;MAAAA,EAAA,GAAA1B,CAAA;IAAA;IAnB/CuB,EAAA,GAAAI,KAAA,CAAAjC,KAAA,CAAAkC,QAAA;MAAAC,QAAA,GACEC,IAAA,CAAAjC,YAAA;QAAAI,MAAA,EACUmB,EAKR;QAAAW,WAAA,EACalB,QAAA;QAAAX,MAAA;QAAAc,UAAA;QAAAR;MAAA,C,GAKfsB,IAAA,CAAAnC,WAAA;QAAAM,MAAA,EACUuB,EAGR;QAAApB,OAAA;QAAAC,YAAA,EAEcqB,EAA6B;QAAApB,UAAA;QAAAmB,KAAA,EAEpCZ,QAAA;QAAAN,UAAA;QAAAE,OAAA;QAAAC,QAAA;QAAAC,SAAA;QAAAC;MAAA,C;;;;;;;;;;;;;;;;;;;;;SArBXW,E;CA8BJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AA0BpD,OAAO,cAAc,CAAA;AAoVrB,eAAO,MAAM,WAAW;;;;+EAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAyC,MAAM,OAAO,CAAA;AA6B7D,OAAO,cAAc,CAAA;AA4crB,eAAO,MAAM,WAAW;;;;+EAAsC,CAAA"}