@payloadcms/ui 3.0.0-beta.100 → 3.0.0-beta.101
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.
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +5 -3
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.scss +4 -4
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +13 -18
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +304 -226
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/SearchFilter/index.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +30 -12
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +3 -6
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Upload/index.scss +3 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +5 -8
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.js +19 -19
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Blocks/index.js +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +18 -11
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +8 -1
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/index.scss +3 -0
- package/dist/hooks/useThrottledEffect.d.ts +7 -0
- package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
- package/dist/hooks/useThrottledEffect.js +7 -0
- package/dist/hooks/useThrottledEffect.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts +6 -0
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +26 -18
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +9 -4
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -5
|
@@ -443,7 +443,7 @@ const BlocksFieldComponent = props => {
|
|
|
443
443
|
} = row_0;
|
|
444
444
|
const blockToRender = blocks.find(block => block.slug === blockType_0);
|
|
445
445
|
if (blockToRender) {
|
|
446
|
-
const rowErrorCount = errorPaths.filter(errorPath => errorPath.startsWith(`${path}.${i}
|
|
446
|
+
const rowErrorCount = errorPaths.filter(errorPath => errorPath.startsWith(`${path}.${i}.`)).length;
|
|
447
447
|
return _jsx(DraggableSortableItem, {
|
|
448
448
|
disabled: disabled || !isSortable,
|
|
449
449
|
id: row_0.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useFieldProps","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","$","i18n","t","descriptionProps","errorProps","field","t0","forceRender","t1","labelProps","readOnly","readOnlyFromTopLevelProps","validate","name","_path","pathFromProps","admin","t2","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","t3","undefined","className","description","isSortable","t4","readOnlyFromAdmin","readOnlyFromProps","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","config","t5","localization","drawerSlug","submitted","plural","singular","t6","bb0","fallback","defaultLocale","editingDefaultLocale","t7","value","options","memoizedValidate","path","pathFromContext","t8","t9","hasRows","errorPaths","formInitializing","formProcessing","permissions","rows","t10","schemaPath","showError","valid","value_0","t11","disabled","t12","rowIndex","blockType","data","setTimeout","addRow","t13","rowIndex_0","type","duplicateRow","t14","rowIndex_1","removeRow","t15","moveFromIndex","moveToIndex","moveRow","t16","collapsed","collapsedIDs","updatedRows","toggleCollapseAll","t17","rowID","collapsed_0","collapsedIDs_0","updatedRows_0","setCollapse","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","t18","t19","filter","Boolean","t20","_jsx","CustomError","components","Error","t21","t22","count","withMessage","t23","_jsxs","join","id","replace","children","as","Label","Description","unstyled","onClick","fieldValue","ids","map","_temp","onDragEnd","t24","moveFromIndex_0","moveToIndex_0","row_0","i","blockType_0","row","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlockFieldProps } from 'payload'\n\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 { useFieldProps } from '../../forms/FieldPropsProvider/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 { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.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\nconst BlocksFieldComponent: React.FC<BlockFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n descriptionProps,\n errorProps,\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: { className, description, isSortable = true, readOnly: readOnlyFromAdmin } = {},\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n forceRender = false,\n labelProps,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\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 {\n config: { localization },\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || '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): Promise<void> => {\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 const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n 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 && 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 && (\n <FieldError\n CustomError={field?.admin?.components?.Error}\n field={field}\n path={path}\n {...(errorProps || {})}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n as=\"span\"\n field={field}\n Label={field?.admin?.components?.Description}\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\n Description={field?.admin?.components?.Description}\n description={description}\n field={field}\n {...(descriptionProps || {})}\n />\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(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useFieldProps","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","$","i18n","t","descriptionProps","errorProps","field","t0","forceRender","t1","labelProps","readOnly","readOnlyFromTopLevelProps","validate","name","_path","pathFromProps","admin","t2","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","t3","undefined","className","description","isSortable","t4","readOnlyFromAdmin","readOnlyFromProps","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","config","t5","localization","drawerSlug","submitted","plural","singular","t6","bb0","fallback","defaultLocale","editingDefaultLocale","t7","value","options","memoizedValidate","path","pathFromContext","t8","t9","hasRows","errorPaths","formInitializing","formProcessing","permissions","rows","t10","schemaPath","showError","valid","value_0","t11","disabled","t12","rowIndex","blockType","data","setTimeout","addRow","t13","rowIndex_0","type","duplicateRow","t14","rowIndex_1","removeRow","t15","moveFromIndex","moveToIndex","moveRow","t16","collapsed","collapsedIDs","updatedRows","toggleCollapseAll","t17","rowID","collapsed_0","collapsedIDs_0","updatedRows_0","setCollapse","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","t18","t19","filter","Boolean","t20","_jsx","CustomError","components","Error","t21","t22","count","withMessage","t23","_jsxs","join","id","replace","children","as","Label","Description","unstyled","onClick","fieldValue","ids","map","_temp","onDragEnd","t24","moveFromIndex_0","moveToIndex_0","row_0","i","blockType_0","row","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlockFieldProps } from 'payload'\n\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 { useFieldProps } from '../../forms/FieldPropsProvider/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 { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.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\nconst BlocksFieldComponent: React.FC<BlockFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n descriptionProps,\n errorProps,\n field,\n field: {\n name,\n _path: pathFromProps,\n admin: { className, description, isSortable = true, readOnly: readOnlyFromAdmin } = {},\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n forceRender = false,\n labelProps,\n readOnly: readOnlyFromTopLevelProps,\n validate,\n } = props\n\n const readOnlyFromProps = readOnlyFromTopLevelProps || readOnlyFromAdmin\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 {\n config: { localization },\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || '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): Promise<void> => {\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 const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n 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 && 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 && (\n <FieldError\n CustomError={field?.admin?.components?.Error}\n field={field}\n path={path}\n {...(errorProps || {})}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n as=\"span\"\n field={field}\n Label={field?.admin?.components?.Description}\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\n Description={field?.admin?.components?.Description}\n description={description}\n field={field}\n {...(descriptionProps || {})}\n />\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(BlocksFieldComponent)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,QAAQ;AAE7C,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,aAAa,QAAQ;AAC9B,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,EAAEC,gBAAgB,QAAQ;AAC1C,SAASC,0BAA0B,EAAEC,aAAa,QAAQ;AAC1D,SAASC,kBAAkB,QAAQ;AACnC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,oBAAA,GAAkDC,KAAA;EAAA,MAAAC,CAAA,GAAAlC,EAAA;EACtD;IAAAmC,IAAA;IAAAC;EAAA,IAAoBb,cAAA;EAEpB;IAAAc,gBAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAA,KAAA,EAAAC,EAAA;IAAAC,WAAA,EAAAC,EAAA;IAAAC,UAAA;IAAAC,QAAA,EAAAC,yBAAA;IAAAC;EAAA,IAoBIb,KAAA;EAhBK;IAAAc,IAAA;IAAAC,KAAA,EAAAC,aAAA;IAAAC,KAAA,EAAAC,EAAA;IAAAC,MAAA;IAAAC,KAAA;IAAAC,MAAA,EAAAC,eAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,OAAA,EAAAC,WAAA;IAAAC;EAAA,IAAApB,EAWN;EAAA,IAAAqB,EAAA;EAAA,IAAA3B,CAAA,QAAAiB,EAAA;IARQU,EAAA,GAAAV,EAA+E,KAAAW,SAAA,QAA/EX,EAA+E;IAAAjB,CAAA,MAAAiB,EAAA;IAAAjB,CAAA,MAAA2B,EAAA;EAAA;IAAAA,EAAA,GAAA3B,CAAA;EAAA;EAA/E;IAAA6B,SAAA;IAAAC,WAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAtB,QAAA,EAAAuB;EAAA,IAAAN,EAA+E;EAArD,MAAAI,UAAA,GAAAC,EAAiB,KAAAJ,SAAA,UAAjBI,EAAiB;EASpD,MAAAzB,WAAA,GAAAC,EAAmB,KAAAoB,SAAA,WAAnBpB,EAAmB;EAMrB,MAAA0B,iBAAA,GAA0BvB,yBAAA,IAA6BsB,iBAAA;EAEvD;IAAAE,SAAA;IAAAzB,QAAA,EAAA0B;EAAA,IAAqD1D,aAAA;EACrD,MAAA8C,OAAA,GAAgBC,WAAC,IAAeC,QAAA,QAAgB;EAEhD;IAAAW;EAAA,IAAmClD,eAAA;EACnC;IAAAmD,WAAA;IAAAC,cAAA;IAAAC;EAAA,IAAqD7D,OAAA;EACrD;IAAA8D,IAAA,EAAAC;EAAA,IAAyBtD,SAAA;EACzB;IAAAuD,MAAA,EAAAC;EAAA,IAEI1D,SAAA;EADM;IAAA2D;EAAA,IAAAD,EAAgB;EAE1B,MAAAE,UAAA,GAAmBtE,aAAA,CAAc;EACjC,MAAAuE,SAAA,GAAkBnE,gBAAA;EAElB,MAAAwC,MAAA;IAAA4B,MAAA,EACU9C,CAAA,CAAE;IAAA+C,QAAA,EACA/C,CAAA,CAAE;IAAA,GACTmB;EAAe;EACpB,IAAA6B,EAAA;EAAAC,GAAA;IAAA,IAGMN,YAAA,IAAgBA,YAAA,CAAAO,QAAqB;MACvC,MAAAC,aAAA,GAAsBR,YAAA,CAAAQ,aAAA,IAA8B;MACpDH,EAAA,GAAOR,MAAA,KAAWW,aAAA;MAAA,MAAAF,GAAA;IAAA;IAGpBD,EAAA;EAAO;EANT,MAAAI,oBAAA,GAA6BJ,EAO7B;EAAA,IAAAK,EAAA;EAAA,IAAAvD,CAAA,QAAAsD,oBAAA,IAAAtD,CAAA,QAAAY,QAAA,IAAAZ,CAAA,QAAAuB,OAAA,IAAAvB,CAAA,QAAAwB,OAAA,IAAAxB,CAAA,QAAA0B,QAAA;IAGE6B,EAAA,GAAAA,CAAAC,KAAA,EAAAC,OAAA;MAAA,IAEM,CAACH,oBAAA,IAAwBE,KAAA,SAAU;QAAA;MAAA;MAAA,IAGnC,OAAO5C,QAAA,KAAa;QAAA,OACfA,QAAA,CAAS4C,KAAA;UAAA,GAAYC,OAAO;UAAAlC,OAAA;UAAAC,OAAA;UAAAE;QAAA,CAA6B;MAAA;IAAA;IAEpE1B,CAAA,MAAAsD,oBAAA;IAAAtD,CAAA,MAAAY,QAAA;IAAAZ,CAAA,MAAAuB,OAAA;IAAAvB,CAAA,MAAAwB,OAAA;IAAAxB,CAAA,MAAA0B,QAAA;IAAA1B,CAAA,MAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EATF,MAAA0D,gBAAA,GAAyBH,EAUqC;EAG9D;IAAAI,IAAA,EAAAC;EAAA,IAAkClF,aAAA;EAe1B,MAAAmF,EAAA,GAAAD,eAAA,IAAmB7C,aAAA,IAAiBF,IAAA;EAAA,IAAAiD,EAAA;EAAA,IAAA9D,CAAA,QAAA6D,EAAA,IAAA7D,CAAA,QAAA0D,gBAAA;IAFvBI,EAAA;MAAAC,OAAA;MAAAJ,IAAA,EAEbE,EAAoC;MAAAjD,QAAA,EAChC8C;IAAA;IACZ1D,CAAA,MAAA6D,EAAA;IAAA7D,CAAA,MAAA0D,gBAAA;IAAA1D,CAAA,OAAA8D,EAAA;EAAA;IAAAA,EAAA,GAAA9D,CAAA;EAAA;EAfA;IAAAgE,UAAA;IAAAC,gBAAA;IAAAC,cAAA;IAAAP,IAAA;IAAAQ,WAAA;IAAAC,IAAA,EAAAC,GAAA;IAAAC,UAAA;IAAAC,SAAA;IAAAC,KAAA;IAAAhB,KAAA,EAAAiB;EAAA,IAWIzF,QAAA,CAAiB8E,EAIrB;EAAA,IAAAY,GAAA;EAAA,IAAA1E,CAAA,SAAAqE,GAAA;IATEK,GAAA,GAAAL,GAAS,KAAAzC,SAAA,QAATyC,GAAS;IAAArE,CAAA,OAAAqE,GAAA;IAAArE,CAAA,OAAA0E,GAAA;EAAA;IAAAA,GAAA,GAAA1E,CAAA;EAAA;EAAT,MAAAoE,IAAA,GAAAM,GAAS;EAWX,MAAAC,QAAA,GAAiBzC,iBAAA,IAAqBE,mBAAA,IAAuB8B,cAAA,IAAkBD,gBAAA;EAAA,IAAAW,GAAA;EAAA,IAAA5E,CAAA,SAAAsC,WAAA,IAAAtC,CAAA,SAAA2D,IAAA,IAAA3D,CAAA,SAAAsE,UAAA,IAAAtE,CAAA,SAAAwC,WAAA;IAG7EoC,GAAA,SAAAA,CAAAC,QAAA,EAAAC,SAAA;MAAA,MACQxC,WAAA;QAAAyC,IAAA;UAAAD;QAAA;QAAAnB,IAAA;QAAAkB,QAAA;QAAAP,UAAA,EAIQ,GAAGA,UAAA,IAAcQ,SAAA;MAAW,CAC1C;MACAtC,WAAA,KAAY;MAEZwC,UAAA;QACE1F,UAAA,CAAW,GAAGqE,IAAA,QAAYkB,QAAA,IAAW,EAAG;MAAA,IACvC;IAAA;IACL7E,CAAA,OAAAsC,WAAA;IAAAtC,CAAA,OAAA2D,IAAA;IAAA3D,CAAA,OAAAsE,UAAA;IAAAtE,CAAA,OAAAwC,WAAA;IAAAxC,CAAA,OAAA4E,GAAA;EAAA;IAAAA,GAAA,GAAA5E,CAAA;EAAA;EAbF,MAAAiF,MAAA,GAAeL,GAc+B;EAAA,IAAAM,GAAA;EAAA,IAAAlF,CAAA,SAAAuC,cAAA,IAAAvC,CAAA,SAAA2D,IAAA,IAAA3D,CAAA,SAAAwC,WAAA;IAI5C0C,GAAA,GAAAC,UAAA;MACE5C,cAAA;QAAA6C,IAAA,EAAuB;QAAAzB,IAAA;QAAAkB,QAAA,EAAuBA;MAAA,CAAS;MACvDrC,WAAA,KAAY;MAEZwC,UAAA;QACE1F,UAAA,CAAW,GAAGqE,IAAA,QAAYkB,UAAA,IAAW,EAAG;MAAA,IACvC;IAAA;IACL7E,CAAA,OAAAuC,cAAA;IAAAvC,CAAA,OAAA2D,IAAA;IAAA3D,CAAA,OAAAwC,WAAA;IAAAxC,CAAA,OAAAkF,GAAA;EAAA;IAAAA,GAAA,GAAAlF,CAAA;EAAA;EARF,MAAAqF,YAAA,GAAqBH,GASgB;EAAA,IAAAI,GAAA;EAAA,IAAAtF,CAAA,SAAAuC,cAAA,IAAAvC,CAAA,SAAA2D,IAAA,IAAA3D,CAAA,SAAAwC,WAAA;IAInC8C,GAAA,GAAAC,UAAA;MACEhD,cAAA;QAAA6C,IAAA,EACQ;QAAAzB,IAAA;QAAAkB,QAAA,EAENA;MAAA,CACF;MAEArC,WAAA,KAAY;IAAA;IACdxC,CAAA,OAAAuC,cAAA;IAAAvC,CAAA,OAAA2D,IAAA;IAAA3D,CAAA,OAAAwC,WAAA;IAAAxC,CAAA,OAAAsF,GAAA;EAAA;IAAAA,GAAA,GAAAtF,CAAA;EAAA;EATF,MAAAwF,SAAA,GAAkBF,GAUmB;EAAA,IAAAG,GAAA;EAAA,IAAAzF,CAAA,SAAAuC,cAAA,IAAAvC,CAAA,SAAA2D,IAAA,IAAA3D,CAAA,SAAAwC,WAAA;IAInCiD,GAAA,GAAAA,CAAAC,aAAA,EAAAC,WAAA;MACEpD,cAAA;QAAA6C,IAAA,EAAuB;QAAAM,aAAA;QAAAC,WAAA;QAAAhC;MAAA,CAA6C;MACpEnB,WAAA,KAAY;IAAA;IACdxC,CAAA,OAAAuC,cAAA;IAAAvC,CAAA,OAAA2D,IAAA;IAAA3D,CAAA,OAAAwC,WAAA;IAAAxC,CAAA,OAAAyF,GAAA;EAAA;IAAAA,GAAA,GAAAzF,CAAA;EAAA;EAJF,MAAA4F,OAAA,GAAgBH,GAKqB;EAAA,IAAAI,GAAA;EAAA,IAAA7F,CAAA,SAAAoE,IAAA,IAAApE,CAAA,SAAAuC,cAAA,IAAAvC,CAAA,SAAA2D,IAAA,IAAA3D,CAAA,SAAAqC,sBAAA;IAInCwD,GAAA,GAAAC,SAAA;MACE;QAAAC,YAAA;QAAAC;MAAA,IAAsClH,aAAA;QAAAgH,SAAA;QAAA1B;MAAA,CAGtC;MACA7B,cAAA;QAAA6C,IAAA,EAAuB;QAAAzB,IAAA;QAAAqC;MAAA,CAA4C;MACnE3D,sBAAA,CAAuBsB,IAAA;QAAAmC,SAAA,EAAmBC;MAAA,CAAa;IAAA;IACzD/F,CAAA,OAAAoE,IAAA;IAAApE,CAAA,OAAAuC,cAAA;IAAAvC,CAAA,OAAA2D,IAAA;IAAA3D,CAAA,OAAAqC,sBAAA;IAAArC,CAAA,OAAA6F,GAAA;EAAA;IAAAA,GAAA,GAAA7F,CAAA;EAAA;EARF,MAAAiG,iBAAA,GAA0BJ,GAS4B;EAAA,IAAAK,GAAA;EAAA,IAAAlG,CAAA,SAAAoE,IAAA,IAAApE,CAAA,SAAAuC,cAAA,IAAAvC,CAAA,SAAA2D,IAAA,IAAA3D,CAAA,SAAAqC,sBAAA;IAIpD6D,GAAA,GAAAA,CAAAC,KAAA,EAAAC,WAAA;MACE;QAAAL,YAAA,EAAAM,cAAA;QAAAL,WAAA,EAAAM;MAAA,IAAsCzH,0BAAA;QAAAiH,SAAA,EACpCA,WAAA;QAAAK,KAAA;QAAA/B;MAAA,CAGF;MACA7B,cAAA;QAAA6C,IAAA,EAAuB;QAAAzB,IAAA;QAAAqC,WAAA,EAA2BA;MAAA,CAAY;MAC9D3D,sBAAA,CAAuBsB,IAAA;QAAAmC,SAAA,EAAmBC;MAAA,CAAa;IAAA;IACzD/F,CAAA,OAAAoE,IAAA;IAAApE,CAAA,OAAAuC,cAAA;IAAAvC,CAAA,OAAA2D,IAAA;IAAA3D,CAAA,OAAAqC,sBAAA;IAAArC,CAAA,OAAAkG,GAAA;EAAA;IAAAA,GAAA,GAAAlG,CAAA;EAAA;EATF,MAAAuG,WAAA,GAAoBL,GAUkC;EAGtD,MAAAM,UAAA,GAAmBjF,OAAA,IAAW6C,IAAA,CAAAqC,MAAA,IAAelF,OAAA;EAE7C,MAAAmF,eAAA,GAAwB1C,UAAA,CAAAyC,MAAA;EACxB,MAAAE,cAAA,GAAuB5D,SAAA,IAAa2D,eAAA,IAAmBlC,KAAA,QAAY,KAAK;EAExE,MAAAoC,WAAA,GAAoBxC,IAAA,CAAAqC,MAAA,GAAcjF,OAAA,IAAYE,QAAA,IAAY0C,IAAA,CAAAqC,MAAA,MAAgB;EAC1E,MAAAI,YAAA,GAAqBlC,QAAA,IAAYP,IAAA,CAAAqC,MAAA,MAAgB;EAQ3C,MAAAK,GAAA,GAAAH,cAAA,GAAiB,GAAA9G,SAAA,aAAyB,GAAG,GAAAA,SAAA,gBAA4B;EAAA,IAAAkH,GAAA;EAAA,IAAA/G,CAAA,SAAA6B,SAAA,IAAA7B,CAAA,SAAA8G,GAAA;IAJhEC,GAAA,IAAArH,cAAA,EAAAG,SAAA,EAGTgC,SAAA,EACAiF,GAAyE,EAAAE,MAAA,CAAAC,OAEjE;IAAAjH,CAAA,OAAA6B,SAAA;IAAA7B,CAAA,OAAA8G,GAAA;IAAA9G,CAAA,OAAA+G,GAAA;EAAA;IAAAA,GAAA,GAAA/G,CAAA;EAAA;EAAA,IAAAkH,GAAA;EAAA,IAAAlH,CAAA,SAAAuE,SAAA,IAAAvE,CAAA,SAAAK,KAAA,IAAAL,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAA2D,IAAA;IAITuD,GAAA,GAAA3C,SAAA,IACC4C,IAAA,CAAA3H,UAAA;MAAA4H,WAAA,EACe/G,KAAA,EAAAW,KAAA,EAAAqG,UAAA,EAAAC,KAAA;MAAAjH,KAAA;MAAAsD,IAAA;MAAA,IAGRvD,UAAA,MAAgB;IAAA,C;;;;;;;;;;;IAcVmH,GAAA,GAAA9G,UAAA,MAAgB;IAAAT,CAAA,OAAAS,UAAA;IAAAT,CAAA,OAAAuH,GAAA;EAAA;IAAAA,GAAA,GAAAvH,CAAA;EAAA;EAAA,IAAAwH,GAAA;EAAA,IAAAxH,CAAA,SAAA2G,cAAA,IAAA3G,CAAA,SAAA0G,eAAA,IAAA1G,CAAA,SAAAC,IAAA;IAGxBuH,GAAA,GAAAb,cAAA,IAAkBD,eAAA,IAAkB,IACnCS,IAAA,CAAA1I,SAAA;MAAAgJ,KAAA,EAAkBf,eAAA;MAAAzG,IAAA;MAAAyH,WAAA;IAAA,C;;;;;;;;;;IA8BjBC,GAAA,GAAAxH,gBAAA,MAAsB;IAAAH,CAAA,OAAAG,gBAAA;IAAAH,CAAA,OAAA2H,GAAA;EAAA;IAAAA,GAAA,GAAA3H,CAAA;EAAA;EAAA,OAhEjC4H,KAAA,CAAC;IAAA/F,SAAA,EACYkF,GAMD,CAAAc,IAAA,CACF;IAAAC,EAAA,EACJ,SAASnE,IAAA,CAAAoE,OAAA,QAAoB,OAAO;IAAAC,QAAA,GAEvCd,G,EAQDU,KAAA,CAAC;MAAA/F,SAAA,EAAkB,GAAAhC,SAAA,UAAsB;MAAAmI,QAAA,GACvCJ,KAAA,CAAC;QAAA/F,SAAA,EAAe,GAAAhC,SAAA,eAA2B;QAAAmI,QAAA,GACzCJ,KAAA,CAAC;UAAA/F,SAAA,EAAe,GAAAhC,SAAA,sBAAkC;UAAAmI,QAAA,GAChDb,IAAA,CAAC;YAAAa,QAAA,EACCb,IAAA,CAAA1H,UAAA;cAAAwI,EAAA,EACK;cAAA5H,KAAA;cAAA6H,KAAA,EAEI7H,KAAA,EAAAW,KAAA,EAAAqG,UAAA,EAAAc,WAAA;cAAAhH,KAAA;cAAAO,QAAA;cAAA0G,QAAA;cAAA,GAIFb;YAAgB,C;cAGxBC,G;YAIFpD,IAAA,CAAAqC,MAAA,IAAc,IACbmB,KAAA,CAAC;UAAA/F,SAAA,EAAc,GAAAhC,SAAA,kBAA8B;UAAAmI,QAAA,GAC3Cb,IAAA,CAAC;YAAAa,QAAA,EACCb,IAAA,CAAC;cAAAtF,SAAA,EACY,GAAAhC,SAAA,iBAA6B;cAAAwI,OAAA,EAAAA,CAAA,KACzBpC,iBAAA,KAAkB;cAAAb,IAAA,EAC5B;cAAA4C,QAAA,EAEJ9H,CAAA,CAAE;YAAA,C;cAGPiH,IAAA,CAAC;YAAAa,QAAA,EACCb,IAAA,CAAC;cAAAtF,SAAA,EACY,GAAAhC,SAAA,iBAA6B;cAAAwI,OAAA,EAAAA,CAAA,KACzBpC,iBAAA,MAAkB;cAAAb,IAAA,EAC5B;cAAA4C,QAAA,EAEJ9H,CAAA,CAAE;YAAA,C;;;UAMbiH,IAAA,CAAA5H,gBAAA;QAAA4I,WAAA,EACe9H,KAAA,EAAAW,KAAA,EAAAqG,UAAA,EAAAc,WAAA;QAAArG,WAAA;QAAAzB,KAAA;QAAA,GAGRsH;MAAsB,C;QAG/BR,IAAA,CAAApI,kBAAA;MAAAuJ,UAAA,EAAgC9E,OAAA;MAAAlC,SAAA;MAAAqC;IAAA,C,GAC9B,CAAAS,IAAA,CAAAqC,MAAA,IAAc,IAAM,CAACjC,KAAA,KAAUqC,YAAA,IAAgBD,WAAU,CAAE,KAC3DgB,KAAA,CAAAtJ,iBAAA;MAAAuD,SAAA,EACa,GAAAhC,SAAA,QAAoB;MAAA0I,GAAA,EAC1BnE,IAAA,CAAAoE,GAAA,CAAAC,KAAwB;MAAAC,SAAA,EAAAC,GAAA;QACjB;UAAAjD,aAAA,EAAAkD,eAAA;UAAAjD,WAAA,EAAAkD;QAAA,IAAAF,GAA8B;QAAA,OAAK/C,OAAA,CAAQF,eAAA,EAAeC,aAAA;MAAA;MAAAqC,QAAA,GAErE5D,IAAA,CAAAoE,GAAA,EAAAM,KAAA,EAAAC,CAAA;QACC;UAAAjE,SAAA,EAAAkE;QAAA,IAAsBC,KAAA;QACtB,MAAAC,aAAA,GAAsBhI,MAAA,CAAAiI,IAAA,CAAAC,KAAA,IAAuBA,KAAA,CAAAC,IAAA,KAAevE,WAAA;QAAA,IAExDoE,aAAA;UACF,MAAAI,aAAA,GAAsBtF,UAAA,CAAAgD,MAAA,CAAAuC,SAAA,IACpBA,SAAA,CAAAC,UAAA,CAAqB,GAAG7F,IAAA,IAAQoF,CAAA,GAAI,GAAAtC,MAAA;UAC9B,OAENU,IAAA,CAAA9I,qBAAA;YAAAsG,QAAA,EAAiCA,QAAA,KAAa5C,UAAA;YAAA+F,EAAA,EAAgBmB,KAAA,CAAAnB,EAAA;YAAAE,QAAA,EAAAyB,0BAAA,IAE1DtC,IAAA,CAAAxH,QAAA;cAAA,GACM8J,0BAA0B;cAAAxE,MAAA;cAAAmE,KAAA,EAEvBF,aAAA;cAAAhI,MAAA;cAAAmE,YAAA;cAAAqE,UAAA,EAGKJ,aAAA;cAAA/I,WAAA;cAAAiG,UAAA;cAAArE,SAAA;cAAAJ,UAAA;cAAAX,MAAA;cAAAwE,OAAA;cAAAjC,IAAA;cAAAQ,WAAA;cAAAzD,QAAA,EASFiE,QAAA;cAAAa,SAAA;cAAAyD,GAAA,EAELA,KAAA;cAAAU,QAAA,EACKvF,IAAA,CAAAqC,MAAA;cAAA5B,QAAA,EACAkE,CAAA;cAAAzE,UAAA;cAAAiC;YAAA,C;aArB2D0C,KAAA,CAAAnB,EAAM;QAAA;QAAA;MAAA,CA+BvF,GACC,CAACxE,oBAAA,IACAsE,KAAA,CAAA5J,KAAA,CAAAC,QAAA;QAAA+J,QAAA,GACGpB,WAAA,IACCO,IAAA,CAAAhJ,MAAA;UAAAiH,IAAA,EAAa;UAAA4C,QAAA,EACV9H,CAAA,CAAE;YAAAuH,KAAA,EACMjG,OAAA;YAAAL,KAAA,EAELpD,cAAA,CAAeyD,OAAA,IAAU,GAAIJ,MAAA,CAAA4B,MAAA,GAAgB5B,MAAA,CAAA6B,QAAe,EAAEhD,IAAA,KAC9DC,CAAA,CAAEsB,OAAA,IAAU,GAAI,gBAAgB;UAAA,CACpC;QAAA,C,GAGHqF,YAAA,IACCM,IAAA,CAAAhJ,MAAA;UAAA6J,QAAA,EACG9H,CAAA,CAAE;YAAAiB,KAAA,EAAkCpD,cAAA,CAAeqD,MAAA,CAAA4B,MAAA,EAAe/C,IAAA;UAAA,CAAM;QAAA,C;;QAOpF,CAAC0E,QAAA,KAAa6B,UAAA,IACboB,KAAA,CAAA3J,QAAA;MAAA+J,QAAA,GACEb,IAAA,CAAA5I,aAAA;QAAAsD,SAAA,EAA0B,GAAAhC,SAAA,kBAA8B;QAAAwJ,IAAA,EAAQvG,UAAA;QAAAkF,QAAA,EAC9Db,IAAA,CAAA/I,MAAA;UAAAwL,WAAA,EACc;UAAAC,EAAA,EACT;UAAAC,IAAA,EACE;UAAAC,YAAA,EACQ;UAAAC,SAAA,EACH;UAAAhC,QAAA,EAET9H,CAAA,CAAE;YAAAiB,KAAA,EAA4BpD,cAAA,CAAeqD,MAAA,CAAA6B,QAAA,EAAiBhD,IAAA;UAAA,CAAM;QAAA,C;UAGzEkH,IAAA,CAAAvH,YAAA;QAAAqF,MAAA;QAAAgF,WAAA,EAEe7F,IAAA,EAAAqC,MAAA,KAAgB;QAAAvF,MAAA;QAAA4B,UAAA;QAAA1B;MAAA,C;;;CASzC;AAEA,OAAO,MAAM8I,WAAA,GAAcjL,aAAA,CAAca,oBAAA;AA9Ue,SAAA2I,MAAAQ,GAAA;EAAA,OAmPvBA,GAAA,CAAAnB,EAAA;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,cAAc,CAAA;AAErB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,UAAU,CAAA;KAClB,EAAE,CAAA;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAA,KAAK,IAAI,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,KAAA,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,cAAc,CAAA;AAErB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,UAAU,CAAA;KAClB,EAAE,CAAA;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAA,KAAK,IAAI,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,KAAA,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,qBAkGlD"}
|
|
@@ -63,7 +63,7 @@ export function UploadComponentHasMany(props) {
|
|
|
63
63
|
}
|
|
64
64
|
const t3 = t2.join(" ");
|
|
65
65
|
let t4;
|
|
66
|
-
if ($[8] !== fileDocs || $[9] !== moveRow || $[10] !==
|
|
66
|
+
if ($[8] !== fileDocs || $[9] !== moveRow || $[10] !== serverURL || $[11] !== isSortable || $[12] !== readonly || $[13] !== removeItem || $[14] !== t3) {
|
|
67
67
|
let t5;
|
|
68
68
|
if ($[16] !== moveRow) {
|
|
69
69
|
t5 = t6 => {
|
|
@@ -79,13 +79,20 @@ export function UploadComponentHasMany(props) {
|
|
|
79
79
|
t5 = $[17];
|
|
80
80
|
}
|
|
81
81
|
let t6;
|
|
82
|
-
if ($[18] !==
|
|
82
|
+
if ($[18] !== serverURL || $[19] !== isSortable || $[20] !== readonly || $[21] !== removeItem) {
|
|
83
83
|
t6 = (t7, index_0) => {
|
|
84
84
|
const {
|
|
85
85
|
relationTo,
|
|
86
86
|
value: value_0
|
|
87
87
|
} = t7;
|
|
88
88
|
const id = String(value_0.id);
|
|
89
|
+
const url = value_0.thumbnailURL || value_0.url;
|
|
90
|
+
let src;
|
|
91
|
+
try {
|
|
92
|
+
src = new URL(url, serverURL).toString();
|
|
93
|
+
} catch {
|
|
94
|
+
src = `${serverURL}${url}`;
|
|
95
|
+
}
|
|
89
96
|
return _jsx(DraggableSortableItem, {
|
|
90
97
|
disabled: !isSortable,
|
|
91
98
|
id,
|
|
@@ -114,7 +121,7 @@ export function UploadComponentHasMany(props) {
|
|
|
114
121
|
id,
|
|
115
122
|
mimeType: value_0?.mimeType,
|
|
116
123
|
onRemove: () => removeItem(index_0),
|
|
117
|
-
src
|
|
124
|
+
src,
|
|
118
125
|
withMeta: false,
|
|
119
126
|
x: value_0?.width,
|
|
120
127
|
y: value_0?.height
|
|
@@ -123,10 +130,10 @@ export function UploadComponentHasMany(props) {
|
|
|
123
130
|
})
|
|
124
131
|
}, id);
|
|
125
132
|
};
|
|
126
|
-
$[18] =
|
|
127
|
-
$[19] =
|
|
128
|
-
$[20] =
|
|
129
|
-
$[21] =
|
|
133
|
+
$[18] = serverURL;
|
|
134
|
+
$[19] = isSortable;
|
|
135
|
+
$[20] = readonly;
|
|
136
|
+
$[21] = removeItem;
|
|
130
137
|
$[22] = t6;
|
|
131
138
|
} else {
|
|
132
139
|
t6 = $[22];
|
|
@@ -142,10 +149,10 @@ export function UploadComponentHasMany(props) {
|
|
|
142
149
|
});
|
|
143
150
|
$[8] = fileDocs;
|
|
144
151
|
$[9] = moveRow;
|
|
145
|
-
$[10] =
|
|
146
|
-
$[11] =
|
|
147
|
-
$[12] =
|
|
148
|
-
$[13] =
|
|
152
|
+
$[10] = serverURL;
|
|
153
|
+
$[11] = isSortable;
|
|
154
|
+
$[12] = readonly;
|
|
155
|
+
$[13] = removeItem;
|
|
149
156
|
$[14] = t3;
|
|
150
157
|
$[15] = t4;
|
|
151
158
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","DraggableSortableItem","DraggableSortable","DragHandleIcon","RelationshipContent","UploadCard","baseClass","UploadComponentHasMany","props","$","className","fileDocs","isSortable","onRemove","onReorder","readonly","serverURL","t0","moveFromIndex","moveToIndex","updatedArray","item","splice","moveRow","t1","index","updatedArray_0","length","removeItem","t2","filter","Boolean","t3","join","t4","t5","t6","moveFromIndex_0","moveToIndex_0","t7","index_0","relationTo","value","value_0","id","String","_jsx","disabled","children","draggableSortableItemProps","ref","setNodeRef","style","transform","transition","zIndex","isDragging","undefined","_jsxs","size","attributes","listeners","allowEdit","allowRemove","alt","filename","byteSize","filesize","collectionSlug","mimeType","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","DraggableSortableItem","DraggableSortable","DragHandleIcon","RelationshipContent","UploadCard","baseClass","UploadComponentHasMany","props","$","className","fileDocs","isSortable","onRemove","onReorder","readonly","serverURL","t0","moveFromIndex","moveToIndex","updatedArray","item","splice","moveRow","t1","index","updatedArray_0","length","removeItem","t2","filter","Boolean","t3","join","t4","t5","t6","moveFromIndex_0","moveToIndex_0","t7","index_0","relationTo","value","value_0","id","String","url","thumbnailURL","src","toString","_jsx","disabled","children","draggableSortableItemProps","ref","setNodeRef","style","transform","transition","zIndex","isDragging","undefined","_jsxs","size","attributes","listeners","allowEdit","allowRemove","alt","filename","byteSize","filesize","collectionSlug","mimeType","withMeta","x","width","y","height","ids","map","_temp","onDragEnd"],"sources":["../../../../src/fields/Upload/HasMany/index.tsx"],"sourcesContent":["'use client'\nimport type { JsonObject } from 'payload'\n\nimport React from 'react'\n\nimport { DraggableSortableItem } from '../../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../../elements/DraggableSortable/index.js'\nimport { DragHandleIcon } from '../../../icons/DragHandle/index.js'\nimport { RelationshipContent } from '../RelationshipContent/index.js'\nimport { UploadCard } from '../UploadCard/index.js'\n\nconst baseClass = 'upload upload--has-many'\n\nimport './index.scss'\n\ntype Props = {\n readonly className?: string\n readonly fileDocs: {\n relationTo: string\n value: JsonObject\n }[]\n readonly isSortable?: boolean\n readonly onRemove?: (value) => void\n readonly onReorder?: (value) => void\n readonly readonly?: boolean\n readonly serverURL: string\n}\nexport function UploadComponentHasMany(props: Props) {\n const { className, fileDocs, isSortable, onRemove, onReorder, readonly, serverURL } = props\n\n const moveRow = React.useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n if (moveFromIndex === moveToIndex) {\n return\n }\n\n const updatedArray = [...fileDocs]\n const [item] = updatedArray.splice(moveFromIndex, 1)\n\n updatedArray.splice(moveToIndex, 0, item)\n\n onReorder(updatedArray)\n },\n [fileDocs, onReorder],\n )\n\n const removeItem = React.useCallback(\n (index: number) => {\n const updatedArray = [...(fileDocs || [])]\n updatedArray.splice(index, 1)\n onRemove(updatedArray.length === 0 ? [] : updatedArray)\n },\n [fileDocs, onRemove],\n )\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={fileDocs?.map(({ value }) => String(value.id))}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {fileDocs.map(({ relationTo, value }, index) => {\n const id = String(value.id)\n const url: string = value.thumbnailURL || value.url\n let src: string\n\n try {\n src = new URL(url, serverURL).toString()\n } catch {\n src = `${serverURL}${url}`\n }\n\n return (\n <DraggableSortableItem disabled={!isSortable} id={id} key={id}>\n {(draggableSortableItemProps) => (\n <div\n className={[\n `${baseClass}__dragItem`,\n draggableSortableItemProps && isSortable && `${baseClass}--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={draggableSortableItemProps.setNodeRef}\n style={{\n transform: draggableSortableItemProps.transform,\n transition: draggableSortableItemProps.transition,\n zIndex: draggableSortableItemProps.isDragging ? 1 : undefined,\n }}\n >\n <UploadCard size=\"small\">\n {isSortable && draggableSortableItemProps && (\n <div\n className={`${baseClass}__drag`}\n {...draggableSortableItemProps.attributes}\n {...draggableSortableItemProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n\n <RelationshipContent\n allowEdit={!readonly}\n allowRemove={!readonly}\n alt={(value?.alt || value?.filename) as string}\n byteSize={value.filesize as number}\n collectionSlug={relationTo}\n filename={value.filename as string}\n id={id}\n mimeType={value?.mimeType as string}\n onRemove={() => removeItem(index)}\n src={src}\n withMeta={false}\n x={value?.width as number}\n y={value?.height as number}\n />\n </UploadCard>\n </div>\n )}\n </DraggableSortableItem>\n )\n })}\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/HasOne/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,UAAU,CAAA;KAClB,CAAA;IACD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Upload/HasOne/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,UAAU,CAAA;KAClB,CAAA;IACD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,qBAgCjD"}
|
|
@@ -19,6 +19,13 @@ export function UploadComponentHasOne(props) {
|
|
|
19
19
|
value
|
|
20
20
|
} = fileDoc;
|
|
21
21
|
const id = String(value.id);
|
|
22
|
+
const url = value.thumbnailURL || value.url;
|
|
23
|
+
let src;
|
|
24
|
+
try {
|
|
25
|
+
src = new URL(url, serverURL).toString();
|
|
26
|
+
} catch {
|
|
27
|
+
src = `${serverURL}${url}`;
|
|
28
|
+
}
|
|
22
29
|
return /*#__PURE__*/_jsx(UploadCard, {
|
|
23
30
|
className: [baseClass, className].filter(Boolean).join(' '),
|
|
24
31
|
children: /*#__PURE__*/_jsx(RelationshipContent, {
|
|
@@ -31,7 +38,7 @@ export function UploadComponentHasOne(props) {
|
|
|
31
38
|
id: id,
|
|
32
39
|
mimeType: value?.mimeType,
|
|
33
40
|
onRemove: onRemove,
|
|
34
|
-
src:
|
|
41
|
+
src: src,
|
|
35
42
|
x: value?.width,
|
|
36
43
|
y: value?.height
|
|
37
44
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","RelationshipContent","UploadCard","baseClass","UploadComponentHasOne","props","className","fileDoc","onRemove","readonly","serverURL","relationTo","value","id","String","_jsx","filter","Boolean","join","allowEdit","allowRemove","alt","filename","byteSize","filesize","collectionSlug","mimeType","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","RelationshipContent","UploadCard","baseClass","UploadComponentHasOne","props","className","fileDoc","onRemove","readonly","serverURL","relationTo","value","id","String","url","thumbnailURL","src","URL","toString","_jsx","filter","Boolean","join","allowEdit","allowRemove","alt","filename","byteSize","filesize","collectionSlug","mimeType","x","width","y","height"],"sources":["../../../../src/fields/Upload/HasOne/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport React from 'react'\n\nimport { RelationshipContent } from '../RelationshipContent/index.js'\nimport { UploadCard } from '../UploadCard/index.js'\nimport './index.scss'\n\nconst baseClass = 'upload upload--has-one'\n\ntype Props = {\n readonly className?: string\n readonly fileDoc: {\n relationTo: string\n value: JsonObject\n }\n readonly onRemove?: () => void\n readonly readonly?: boolean\n readonly serverURL: string\n}\n\nexport function UploadComponentHasOne(props: Props) {\n const { className, fileDoc, onRemove, readonly, serverURL } = props\n const { relationTo, value } = fileDoc\n const id = String(value.id)\n\n const url: string = value.thumbnailURL || value.url\n let src: string\n\n try {\n src = new URL(url, serverURL).toString()\n } catch {\n src = `${serverURL}${url}`\n }\n\n return (\n <UploadCard className={[baseClass, className].filter(Boolean).join(' ')}>\n <RelationshipContent\n allowEdit={!readonly}\n allowRemove={!readonly}\n alt={(value?.alt || value?.filename) as string}\n byteSize={value.filesize as number}\n collectionSlug={relationTo}\n filename={value.filename as string}\n id={id}\n mimeType={value?.mimeType as string}\n onRemove={onRemove}\n src={src}\n x={value?.width as number}\n y={value?.height as number}\n />\n </UploadCard>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAalB,OAAO,SAASC,sBAAsBC,KAAY;EAChD,MAAM;IAAEC,SAAS;IAAEC,OAAO;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAS,CAAE,GAAGL,KAAA;EAC9D,MAAM;IAAEM,UAAU;IAAEC;EAAK,CAAE,GAAGL,OAAA;EAC9B,MAAMM,EAAA,GAAKC,MAAA,CAAOF,KAAA,CAAMC,EAAE;EAE1B,MAAME,GAAA,GAAcH,KAAA,CAAMI,YAAY,IAAIJ,KAAA,CAAMG,GAAG;EACnD,IAAIE,GAAA;EAEJ,IAAI;IACFA,GAAA,GAAM,IAAIC,GAAA,CAAIH,GAAA,EAAKL,SAAA,EAAWS,QAAQ;EACxC,EAAE,MAAM;IACNF,GAAA,GAAM,GAAGP,SAAA,GAAYK,GAAA,EAAK;EAC5B;EAEA,oBACEK,IAAA,CAAClB,UAAA;IAAWI,SAAA,EAAW,CAACH,SAAA,EAAWG,SAAA,CAAU,CAACe,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;cACjE,aAAAH,IAAA,CAACnB,mBAAA;MACCuB,SAAA,EAAW,CAACf,QAAA;MACZgB,WAAA,EAAa,CAAChB,QAAA;MACdiB,GAAA,EAAMd,KAAA,EAAOc,GAAA,IAAOd,KAAA,EAAOe,QAAA;MAC3BC,QAAA,EAAUhB,KAAA,CAAMiB,QAAQ;MACxBC,cAAA,EAAgBnB,UAAA;MAChBgB,QAAA,EAAUf,KAAA,CAAMe,QAAQ;MACxBd,EAAA,EAAIA,EAAA;MACJkB,QAAA,EAAUnB,KAAA,EAAOmB,QAAA;MACjBvB,QAAA,EAAUA,QAAA;MACVS,GAAA,EAAKA,GAAA;MACLe,CAAA,EAAGpB,KAAA,EAAOqB,KAAA;MACVC,CAAA,EAAGtB,KAAA,EAAOuB;;;AAIlB","ignoreList":[]}
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
|
|
10
10
|
&__dropzoneContent {
|
|
11
11
|
display: flex;
|
|
12
|
+
flex-wrap: wrap;
|
|
13
|
+
gap: base(0.4);
|
|
12
14
|
justify-content: space-between;
|
|
13
15
|
width: 100%;
|
|
14
16
|
}
|
|
@@ -34,6 +36,7 @@
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
&__dragAndDropText {
|
|
39
|
+
flex-shrink: 0;
|
|
37
40
|
margin: 0;
|
|
38
41
|
text-transform: lowercase;
|
|
39
42
|
align-self: center;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
type useThrottledEffect = (callback: React.EffectCallback, delay: number, deps: React.DependencyList) => void;
|
|
3
|
+
/**
|
|
4
|
+
* A hook that will throttle the execution of a callback function inside a useEffect.
|
|
5
|
+
* This is useful for things like throttling loading states or other UI updates.
|
|
6
|
+
* @param callback The callback function to be executed.
|
|
7
|
+
* @param delay The delay in milliseconds to throttle the callback.
|
|
8
|
+
* @param deps The dependencies to watch for changes.
|
|
9
|
+
*/
|
|
3
10
|
export declare const useThrottledEffect: useThrottledEffect;
|
|
4
11
|
export {};
|
|
5
12
|
//# sourceMappingURL=useThrottledEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThrottledEffect.d.ts","sourceRoot":"","sources":["../../src/hooks/useThrottledEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,kBAAkB,GAAG,CACxB,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,CAAC,cAAc,KACvB,IAAI,CAAA;AAET,eAAO,MAAM,kBAAkB,EAAE,kBAkBhC,CAAA"}
|
|
1
|
+
{"version":3,"file":"useThrottledEffect.d.ts","sourceRoot":"","sources":["../../src/hooks/useThrottledEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,kBAAkB,GAAG,CACxB,QAAQ,EAAE,KAAK,CAAC,cAAc,EAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,KAAK,CAAC,cAAc,KACvB,IAAI,CAAA;AAET;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAkBhC,CAAA"}
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* A hook that will throttle the execution of a callback function inside a useEffect.
|
|
7
|
+
* This is useful for things like throttling loading states or other UI updates.
|
|
8
|
+
* @param callback The callback function to be executed.
|
|
9
|
+
* @param delay The delay in milliseconds to throttle the callback.
|
|
10
|
+
* @param deps The dependencies to watch for changes.
|
|
11
|
+
*/
|
|
5
12
|
export const useThrottledEffect = (callback, delay, t0) => {
|
|
6
13
|
const $ = _c(9);
|
|
7
14
|
let t1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThrottledEffect.js","names":["c","_c","useEffect","useRef","useThrottledEffect","callback","delay","t0","$","t1","undefined","deps","t2","Symbol","for","Date","now","lastRan","t3","handler","setTimeout","current","clearTimeout","t4"],"sources":["../../src/hooks/useThrottledEffect.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useEffect, useRef } from 'react'\n\ntype useThrottledEffect = (\n callback: React.EffectCallback,\n delay: number,\n deps: React.DependencyList,\n) => void\n\nexport const useThrottledEffect: useThrottledEffect = (callback, delay, deps = []) => {\n const lastRan = useRef(Date.now())\n\n useEffect(() => {\n const handler = setTimeout(\n () => {\n if (Date.now() - lastRan.current >= delay) {\n callback()\n lastRan.current = Date.now()\n }\n },\n delay - (Date.now() - lastRan.current),\n )\n\n return () => {\n clearTimeout(handler)\n }\n }, [delay, ...deps])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAQlC,OAAO,MAAMC,kBAAA,GAAyCA,CAAAC,QAAA,EAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAD,EAAA;IAAkBE,EAAA,GAAAF,EAAS,KAAAG,SAAA,QAATH,EAAS;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAT,MAAAG,IAAA,GAAAF,EAAS;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAK,MAAA,CAAAC,GAAA;IACxDF,EAAA,GAAAG,IAAA,CAAAC,GAAA,CAAQ;IAAAR,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAA/B,MAAAS,OAAA,GAAgBd,MAAA,CAAOS,EAAQ;EAAA,IAAAM,EAAA;EAAA,IAAAV,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAH,QAAA;IAErBa,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QAAA,IAERL,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,IAAIf,KAAA;UAClCD,QAAA;UACAY,OAAA,CAAAI,OAAA,GAAkBN,IAAA,CAAAC,GAAA,CAAQ;QAAA;MAAA,GAG9BV,KAAA,IAASS,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,CAAD;MAAA;QAIpCC,YAAA,CAAaH,OAAA;MAAA;IAAA;IAEjBX,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAH,QAAA;IAAAG,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAG,IAAA;IAAGY,EAAA,IAACjB,KAAA,KAAUK,IAAA;IAAKH,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAdnBN,SAAA,CAAUgB,EAcV,EAAGK,EAAgB;AAAA,CACrB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useThrottledEffect.js","names":["c","_c","useEffect","useRef","useThrottledEffect","callback","delay","t0","$","t1","undefined","deps","t2","Symbol","for","Date","now","lastRan","t3","handler","setTimeout","current","clearTimeout","t4"],"sources":["../../src/hooks/useThrottledEffect.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useEffect, useRef } from 'react'\n\ntype useThrottledEffect = (\n callback: React.EffectCallback,\n delay: number,\n deps: React.DependencyList,\n) => void\n\n/**\n * A hook that will throttle the execution of a callback function inside a useEffect.\n * This is useful for things like throttling loading states or other UI updates.\n * @param callback The callback function to be executed.\n * @param delay The delay in milliseconds to throttle the callback.\n * @param deps The dependencies to watch for changes.\n */\nexport const useThrottledEffect: useThrottledEffect = (callback, delay, deps = []) => {\n const lastRan = useRef(Date.now())\n\n useEffect(() => {\n const handler = setTimeout(\n () => {\n if (Date.now() - lastRan.current >= delay) {\n callback()\n lastRan.current = Date.now()\n }\n },\n delay - (Date.now() - lastRan.current),\n )\n\n return () => {\n clearTimeout(handler)\n }\n }, [delay, ...deps])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAQlC;;;;;;;AAOA,OAAO,MAAMC,kBAAA,GAAyCA,CAAAC,QAAA,EAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAD,EAAA;IAAkBE,EAAA,GAAAF,EAAS,KAAAG,SAAA,QAATH,EAAS;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAT,MAAAG,IAAA,GAAAF,EAAS;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAK,MAAA,CAAAC,GAAA;IACxDF,EAAA,GAAAG,IAAA,CAAAC,GAAA,CAAQ;IAAAR,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAA/B,MAAAS,OAAA,GAAgBd,MAAA,CAAOS,EAAQ;EAAA,IAAAM,EAAA;EAAA,IAAAV,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAH,QAAA;IAErBa,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QAAA,IAERL,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,IAAIf,KAAA;UAClCD,QAAA;UACAY,OAAA,CAAAI,OAAA,GAAkBN,IAAA,CAAAC,GAAA,CAAQ;QAAA;MAAA,GAG9BV,KAAA,IAASS,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,CAAD;MAAA;QAIpCC,YAAA,CAAaH,OAAA;MAAA;IAAA;IAEjBX,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAH,QAAA;IAAAG,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAG,IAAA;IAAGY,EAAA,IAACjB,KAAA,KAAUK,IAAA;IAAKH,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAdnBN,SAAA,CAAUgB,EAcV,EAAGK,EAAgB;AAAA,CACrB","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ type ContextHandlers = {
|
|
|
15
15
|
handleSearchChange?: (search: string) => Promise<void>;
|
|
16
16
|
handleSortChange?: (sort: string) => Promise<void>;
|
|
17
17
|
handleWhereChange?: (where: Where) => Promise<void>;
|
|
18
|
+
params: RefineOverrides;
|
|
18
19
|
};
|
|
19
20
|
export type ListQueryProps = {
|
|
20
21
|
readonly children: React.ReactNode;
|
|
@@ -22,6 +23,11 @@ export type ListQueryProps = {
|
|
|
22
23
|
readonly defaultLimit?: number;
|
|
23
24
|
readonly defaultSort?: string;
|
|
24
25
|
readonly modifySearchParams?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Used to manage the query params manually. If you pass this prop, the provider will not manage the query params from the searchParams.
|
|
28
|
+
* Useful for modals or other components that need to manage the query params themselves.
|
|
29
|
+
*/
|
|
30
|
+
readonly params?: RefineOverrides;
|
|
25
31
|
readonly preferenceKey?: string;
|
|
26
32
|
} & PropHandlers;
|
|
27
33
|
export type ListQueryContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKnD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKnD,OAAO,KAAsE,MAAM,OAAO,CAAA;AAE1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAK3D,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAA;AAErE,KAAK,YAAY,GAAG;IAClB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACzD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7D,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACzD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC3D,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,EAAE,eAAe,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC,GAAG,YAAY,CAAA;AAEhB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACzD,GAAG,eAAe,CAAA;AAInB,eAAO,MAAM,YAAY,QAAO,gBAAuC,CAAA;AAEvE,KAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4KtD,CAAA"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
import { useRouter } from 'next/navigation.js';
|
|
5
5
|
import { isNumber } from 'payload/shared';
|
|
6
6
|
import * as qs from 'qs-esm';
|
|
7
|
-
import React, { createContext, useContext } from 'react';
|
|
7
|
+
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
|
|
8
8
|
import { usePreferences } from '../Preferences/index.js';
|
|
9
9
|
import { useSearchParams } from '../SearchParams/index.js';
|
|
10
10
|
const Context = /*#__PURE__*/createContext({});
|
|
@@ -22,17 +22,18 @@ export const ListQueryProvider = ({
|
|
|
22
22
|
handleSortChange: handleSortChangeFromProps,
|
|
23
23
|
handleWhereChange: handleWhereChangeFromProps,
|
|
24
24
|
modifySearchParams,
|
|
25
|
+
params: paramsFromProps,
|
|
25
26
|
preferenceKey
|
|
26
27
|
}) => {
|
|
27
28
|
const router = useRouter();
|
|
28
29
|
const {
|
|
29
30
|
setPreference
|
|
30
31
|
} = usePreferences();
|
|
31
|
-
const hasSetInitialParams = React.useRef(false);
|
|
32
32
|
const {
|
|
33
33
|
searchParams: currentQuery
|
|
34
34
|
} = useSearchParams();
|
|
35
|
-
const
|
|
35
|
+
const [params, setParams] = useState(paramsFromProps || currentQuery);
|
|
36
|
+
const refineListData = useCallback(async query => {
|
|
36
37
|
if (!modifySearchParams) {
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
@@ -53,18 +54,18 @@ export const ListQueryProvider = ({
|
|
|
53
54
|
if (updatePreferences && preferenceKey) {
|
|
54
55
|
await setPreference(preferenceKey, updatedPreferences);
|
|
55
56
|
}
|
|
56
|
-
const
|
|
57
|
+
const params_0 = {
|
|
57
58
|
limit: 'limit' in query ? query.limit : currentQuery?.limit,
|
|
58
59
|
page: pageQuery,
|
|
59
60
|
search: 'search' in query ? query.search : currentQuery?.search,
|
|
60
61
|
sort: 'sort' in query ? query.sort : currentQuery?.sort,
|
|
61
62
|
where: 'where' in query ? query.where : currentQuery?.where
|
|
62
63
|
};
|
|
63
|
-
router.replace(`${qs.stringify(
|
|
64
|
+
router.replace(`${qs.stringify(params_0, {
|
|
64
65
|
addQueryPrefix: true
|
|
65
66
|
})}`);
|
|
66
|
-
}, [
|
|
67
|
-
const handlePageChange =
|
|
67
|
+
}, [modifySearchParams, currentQuery?.page, currentQuery?.limit, currentQuery?.search, currentQuery?.sort, currentQuery?.where, preferenceKey, router, setPreference]);
|
|
68
|
+
const handlePageChange = useCallback(async arg => {
|
|
68
69
|
if (typeof handlePageChangeFromProps === 'function') {
|
|
69
70
|
await handlePageChangeFromProps(arg);
|
|
70
71
|
}
|
|
@@ -77,18 +78,20 @@ export const ListQueryProvider = ({
|
|
|
77
78
|
await handlePerPageChangeFromProps(arg_0);
|
|
78
79
|
}
|
|
79
80
|
await refineListData({
|
|
80
|
-
limit: String(arg_0)
|
|
81
|
+
limit: String(arg_0),
|
|
82
|
+
page: '1'
|
|
81
83
|
});
|
|
82
84
|
}, [refineListData, handlePerPageChangeFromProps]);
|
|
83
|
-
const handleSearchChange =
|
|
85
|
+
const handleSearchChange = useCallback(async arg_1 => {
|
|
86
|
+
const search = arg_1 === '' ? undefined : arg_1;
|
|
84
87
|
if (typeof handleSearchChangeFromProps === 'function') {
|
|
85
|
-
await handleSearchChangeFromProps(
|
|
88
|
+
await handleSearchChangeFromProps(search);
|
|
86
89
|
}
|
|
87
90
|
await refineListData({
|
|
88
|
-
search
|
|
91
|
+
search
|
|
89
92
|
});
|
|
90
|
-
}, [
|
|
91
|
-
const handleSortChange =
|
|
93
|
+
}, [handleSearchChangeFromProps, refineListData]);
|
|
94
|
+
const handleSortChange = useCallback(async arg_2 => {
|
|
92
95
|
if (typeof handleSortChangeFromProps === 'function') {
|
|
93
96
|
await handleSortChangeFromProps(arg_2);
|
|
94
97
|
}
|
|
@@ -96,7 +99,7 @@ export const ListQueryProvider = ({
|
|
|
96
99
|
sort: arg_2
|
|
97
100
|
});
|
|
98
101
|
}, [refineListData, handleSortChangeFromProps]);
|
|
99
|
-
const handleWhereChange =
|
|
102
|
+
const handleWhereChange = useCallback(async arg_3 => {
|
|
100
103
|
if (typeof handleWhereChangeFromProps === 'function') {
|
|
101
104
|
await handleWhereChangeFromProps(arg_3);
|
|
102
105
|
}
|
|
@@ -104,8 +107,11 @@ export const ListQueryProvider = ({
|
|
|
104
107
|
where: arg_3
|
|
105
108
|
});
|
|
106
109
|
}, [refineListData, handleWhereChangeFromProps]);
|
|
107
|
-
|
|
108
|
-
if (
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
if (paramsFromProps) {
|
|
112
|
+
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
113
|
+
setParams(paramsFromProps);
|
|
114
|
+
} else {
|
|
109
115
|
if (modifySearchParams) {
|
|
110
116
|
let shouldUpdateQueryString = false;
|
|
111
117
|
if (isNumber(defaultLimit) && !('limit' in currentQuery)) {
|
|
@@ -116,13 +122,14 @@ export const ListQueryProvider = ({
|
|
|
116
122
|
currentQuery.sort = defaultSort;
|
|
117
123
|
shouldUpdateQueryString = true;
|
|
118
124
|
}
|
|
125
|
+
// eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
|
|
126
|
+
setParams(currentQuery);
|
|
119
127
|
if (shouldUpdateQueryString) {
|
|
120
128
|
router.replace(`?${qs.stringify(currentQuery)}`);
|
|
121
129
|
}
|
|
122
130
|
}
|
|
123
|
-
hasSetInitialParams.current = true;
|
|
124
131
|
}
|
|
125
|
-
}, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery]);
|
|
132
|
+
}, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery, paramsFromProps, params]);
|
|
126
133
|
return /*#__PURE__*/_jsx(Context.Provider, {
|
|
127
134
|
value: {
|
|
128
135
|
data,
|
|
@@ -131,6 +138,7 @@ export const ListQueryProvider = ({
|
|
|
131
138
|
handleSearchChange,
|
|
132
139
|
handleSortChange,
|
|
133
140
|
handleWhereChange,
|
|
141
|
+
params,
|
|
134
142
|
refineListData
|
|
135
143
|
},
|
|
136
144
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useContext","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","preferenceKey","router","setPreference","hasSetInitialParams","useRef","searchParams","currentQuery","refineListData","useCallback","query","pageQuery","page","updatedPreferences","updatePreferences","limit","sort","params","search","where","replace","stringify","addQueryPrefix","arg","String","useEffect","current","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useContext } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n handlePageChange?: (page: number) => Promise<void> | void\n handlePerPageChange?: (limit: number) => Promise<void> | void\n handleSearchChange?: (search: string) => Promise<void> | void\n handleSortChange?: (sort: string) => Promise<void> | void\n handleWhereChange?: (where: Where) => Promise<void> | void\n}\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: string\n readonly modifySearchParams?: boolean\n readonly preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const hasSetInitialParams = React.useRef(false)\n const { searchParams: currentQuery } = useSearchParams()\n\n const refineListData = React.useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) {\n return\n }\n\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = query.limit\n updatePreferences = true\n }\n\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [preferenceKey, modifySearchParams, router, setPreference, currentQuery],\n )\n\n const handlePageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n\n await refineListData({ limit: String(arg) })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n\n const handleSearchChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(arg)\n }\n\n await refineListData({ search: arg })\n },\n [refineListData, handleSearchChangeFromProps],\n )\n\n const handleSortChange = React.useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n\n const handleWhereChange = React.useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n React.useEffect(() => {\n if (!hasSetInitialParams.current) {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n\n hasSetInitialParams.current = true\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","isNumber","qs","React","createContext","useCallback","useContext","useEffect","useState","usePreferences","useSearchParams","Context","useListQuery","ListQueryProvider","children","data","defaultLimit","defaultSort","handlePageChange","handlePageChangeFromProps","handlePerPageChange","handlePerPageChangeFromProps","handleSearchChange","handleSearchChangeFromProps","handleSortChange","handleSortChangeFromProps","handleWhereChange","handleWhereChangeFromProps","modifySearchParams","params","paramsFromProps","preferenceKey","router","setPreference","searchParams","currentQuery","setParams","refineListData","query","pageQuery","page","updatedPreferences","updatePreferences","limit","sort","search","where","replace","stringify","addQueryPrefix","arg","String","undefined","shouldUpdateQueryString","_jsx","Provider","value"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { usePreferences } from '../Preferences/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type ColumnPreferences = Pick<Column, 'accessor' | 'active'>[]\n\ntype PropHandlers = {\n handlePageChange?: (page: number) => Promise<void> | void\n handlePerPageChange?: (limit: number) => Promise<void> | void\n handleSearchChange?: (search: string) => Promise<void> | void\n handleSortChange?: (sort: string) => Promise<void> | void\n handleWhereChange?: (where: Where) => Promise<void> | void\n}\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n params: RefineOverrides\n}\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly data: PaginatedDocs\n readonly defaultLimit?: number\n readonly defaultSort?: string\n readonly modifySearchParams?: boolean\n /**\n * Used to manage the query params manually. If you pass this prop, the provider will not manage the query params from the searchParams.\n * Useful for modals or other components that need to manage the query params themselves.\n */\n readonly params?: RefineOverrides\n readonly preferenceKey?: string\n} & PropHandlers\n\nexport type ListQueryContext = {\n data: PaginatedDocs\n defaultLimit?: number\n defaultSort?: string\n refineListData: (args: RefineOverrides) => Promise<void>\n} & ContextHandlers\n\nconst Context = createContext({} as ListQueryContext)\n\nexport const useListQuery = (): ListQueryContext => useContext(Context)\n\ntype RefineOverrides = {\n limit?: string\n page?: string\n search?: string\n sort?: string\n where?: Where\n}\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n data,\n defaultLimit,\n defaultSort,\n handlePageChange: handlePageChangeFromProps,\n handlePerPageChange: handlePerPageChangeFromProps,\n handleSearchChange: handleSearchChangeFromProps,\n handleSortChange: handleSortChangeFromProps,\n handleWhereChange: handleWhereChangeFromProps,\n modifySearchParams,\n params: paramsFromProps,\n preferenceKey,\n}) => {\n const router = useRouter()\n const { setPreference } = usePreferences()\n const { searchParams: currentQuery } = useSearchParams()\n const [params, setParams] = useState(paramsFromProps || currentQuery)\n\n const refineListData = useCallback(\n async (query: RefineOverrides) => {\n if (!modifySearchParams) {\n return\n }\n\n let pageQuery = 'page' in query ? query.page : currentQuery?.page\n\n if ('where' in query || 'search' in query) {\n pageQuery = '1'\n }\n\n const updatedPreferences: Record<string, unknown> = {}\n let updatePreferences = false\n\n if ('limit' in query) {\n updatedPreferences.limit = query.limit\n updatePreferences = true\n }\n\n if ('sort' in query) {\n updatedPreferences.sort = query.sort\n updatePreferences = true\n }\n\n if (updatePreferences && preferenceKey) {\n await setPreference(preferenceKey, updatedPreferences)\n }\n\n const params = {\n limit: 'limit' in query ? query.limit : currentQuery?.limit,\n page: pageQuery,\n search: 'search' in query ? query.search : currentQuery?.search,\n sort: 'sort' in query ? query.sort : currentQuery?.sort,\n where: 'where' in query ? query.where : currentQuery?.where,\n }\n\n router.replace(`${qs.stringify(params, { addQueryPrefix: true })}`)\n },\n [\n modifySearchParams,\n currentQuery?.page,\n currentQuery?.limit,\n currentQuery?.search,\n currentQuery?.sort,\n currentQuery?.where,\n preferenceKey,\n router,\n setPreference,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n if (typeof handlePageChangeFromProps === 'function') {\n await handlePageChangeFromProps(arg)\n }\n\n await refineListData({ page: String(arg) })\n },\n [refineListData, handlePageChangeFromProps],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n if (typeof handlePerPageChangeFromProps === 'function') {\n await handlePerPageChangeFromProps(arg)\n }\n\n await refineListData({ limit: String(arg), page: '1' })\n },\n [refineListData, handlePerPageChangeFromProps],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n\n if (typeof handleSearchChangeFromProps === 'function') {\n await handleSearchChangeFromProps(search)\n }\n\n await refineListData({ search })\n },\n [handleSearchChangeFromProps, refineListData],\n )\n\n const handleSortChange = useCallback(\n async (arg: string) => {\n if (typeof handleSortChangeFromProps === 'function') {\n await handleSortChangeFromProps(arg)\n }\n\n await refineListData({ sort: arg })\n },\n [refineListData, handleSortChangeFromProps],\n )\n\n const handleWhereChange = useCallback(\n async (arg: Where) => {\n if (typeof handleWhereChangeFromProps === 'function') {\n await handleWhereChangeFromProps(arg)\n }\n\n await refineListData({ where: arg })\n },\n [refineListData, handleWhereChangeFromProps],\n )\n\n useEffect(() => {\n if (paramsFromProps) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setParams(paramsFromProps)\n } else {\n if (modifySearchParams) {\n let shouldUpdateQueryString = false\n\n if (isNumber(defaultLimit) && !('limit' in currentQuery)) {\n currentQuery.limit = String(defaultLimit)\n shouldUpdateQueryString = true\n }\n\n if (defaultSort && !('sort' in currentQuery)) {\n currentQuery.sort = defaultSort\n shouldUpdateQueryString = true\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setParams(currentQuery)\n\n if (shouldUpdateQueryString) {\n router.replace(`?${qs.stringify(currentQuery)}`)\n }\n }\n }\n }, [defaultSort, defaultLimit, router, modifySearchParams, currentQuery, paramsFromProps, params])\n\n return (\n <Context.Provider\n value={{\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n params,\n refineListData,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|