@payloadcms/ui 3.71.0-internal.ef75fa0 → 3.71.0

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 (63) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +28 -11
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FileSidebar/index.scss +2 -1
  5. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/FormsManager/index.js +51 -34
  7. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/reducer.js +2 -2
  9. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  10. package/dist/elements/DocumentControls/index.d.ts +1 -0
  11. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  12. package/dist/elements/DocumentControls/index.js +6 -2
  13. package/dist/elements/DocumentControls/index.js.map +1 -1
  14. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  15. package/dist/elements/DuplicateDocument/index.js +2 -3
  16. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  17. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  18. package/dist/elements/ReactSelect/index.js +3 -0
  19. package/dist/elements/ReactSelect/index.js.map +1 -1
  20. package/dist/elements/StepNav/index.scss +8 -0
  21. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  22. package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -0
  23. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  24. package/dist/exports/client/index.js +12 -12
  25. package/dist/exports/client/index.js.map +3 -3
  26. package/dist/exports/shared/index.js +2 -2
  27. package/dist/exports/shared/index.js.map +3 -3
  28. package/dist/fields/Text/Input.d.ts.map +1 -1
  29. package/dist/fields/Text/Input.js +1 -1
  30. package/dist/fields/Text/Input.js.map +1 -1
  31. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
  32. package/dist/fields/Upload/HasMany/index.js +1 -0
  33. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  34. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
  35. package/dist/fields/Upload/HasOne/index.js +1 -0
  36. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  37. package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
  38. package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
  39. package/dist/fields/Upload/RelationshipContent/index.js +2 -0
  40. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  41. package/dist/forms/Form/index.d.ts.map +1 -1
  42. package/dist/forms/Form/index.js +11 -6
  43. package/dist/forms/Form/index.js.map +1 -1
  44. package/dist/forms/useField/index.js +1 -1
  45. package/dist/forms/useField/index.js.map +1 -1
  46. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  47. package/dist/providers/DocumentInfo/index.js +13 -2
  48. package/dist/providers/DocumentInfo/index.js.map +1 -1
  49. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  50. package/dist/providers/TableColumns/buildColumnState/index.js +2 -1
  51. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  52. package/dist/styles.css +1 -1
  53. package/dist/utilities/getGlobalData.d.ts.map +1 -1
  54. package/dist/utilities/getGlobalData.js +46 -30
  55. package/dist/utilities/getGlobalData.js.map +1 -1
  56. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  57. package/dist/utilities/handleFormStateLocking.js +5 -0
  58. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  59. package/dist/views/Edit/index.d.ts +1 -1
  60. package/dist/views/Edit/index.d.ts.map +1 -1
  61. package/dist/views/Edit/index.js +3 -1
  62. package/dist/views/Edit/index.js.map +1 -1
  63. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","undefined","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t1","localization","routes","t2","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t3","t4","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","globalHasDraftsEnabled","collectionHasDraftsEnabled","collectionAutosaveEnabled","globalAutosaveEnabled","autosaveEnabled","showSaveDraftButton","autosave","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","_jsxs","className","children","_jsx","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","buttonId","toString","singularLabel","buttonStyle","onClick","size","type","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","_Fragment","selectLocales","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport './index.scss'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n serverURL,\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const globalHasDraftsEnabled = hasDraftsEnabled(globalConfig)\n const collectionHasDraftsEnabled = hasDraftsEnabled(collectionConfig)\n const collectionAutosaveEnabled = hasAutosaveEnabled(collectionConfig)\n const globalAutosaveEnabled = hasAutosaveEnabled(globalConfig)\n const autosaveEnabled = collectionAutosaveEnabled || globalAutosaveEnabled\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfig.versions.drafts.autosave !== false &&\n collectionConfig.versions.drafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfig.versions.drafts.autosave !== false &&\n globalConfig.versions.drafts.autosave.showSaveDraftButton === true)\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && !isTrashed && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionHasDraftsEnabled || globalHasDraftsEnabled) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>\n {i18n.t(isTrashed ? 'general:deleted' : 'general:lastModified')}:&nbsp;\n </p>\n\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && !isTrashed && (\n <Fragment>\n {collectionHasDraftsEnabled || globalHasDraftsEnabled ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {hasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <>\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n {localization && (\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n selectLocales={true}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </>\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","CustomStatus","undefined","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t1","localization","routes","t2","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t3","t4","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","globalHasDraftsEnabled","collectionHasDraftsEnabled","collectionAutosaveEnabled","globalAutosaveEnabled","autosaveEnabled","showSaveDraftButton","autosave","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","_jsxs","className","children","_jsx","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","CustomComponent","Fallback","collection","global","publishedDocUpdatedAt","timestamps","title","preview","buttonId","toString","singularLabel","buttonStyle","onClick","size","type","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","_Fragment","selectLocales","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport './index.scss'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n readonly Status?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n Status: CustomStatus,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n serverURL,\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const globalHasDraftsEnabled = hasDraftsEnabled(globalConfig)\n const collectionHasDraftsEnabled = hasDraftsEnabled(collectionConfig)\n const collectionAutosaveEnabled = hasAutosaveEnabled(collectionConfig)\n const globalAutosaveEnabled = hasAutosaveEnabled(globalConfig)\n const autosaveEnabled = collectionAutosaveEnabled || globalAutosaveEnabled\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfig.versions.drafts.autosave !== false &&\n collectionConfig.versions.drafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfig.versions.drafts.autosave !== false &&\n globalConfig.versions.drafts.autosave.showSaveDraftButton === true)\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && !isTrashed && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionHasDraftsEnabled || globalHasDraftsEnabled) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent CustomComponent={CustomStatus} Fallback={<Status />} />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>\n {i18n.t(isTrashed ? 'general:deleted' : 'general:lastModified')}:&nbsp;\n </p>\n\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && !isTrashed && (\n <Fragment>\n {collectionHasDraftsEnabled || globalHasDraftsEnabled ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {hasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <>\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n {localization && (\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n selectLocales={true}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </>\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAa9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6K7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAOxD,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAa9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2K7C,CAAA"}
@@ -46,8 +46,7 @@ export const DuplicateDocument = ({
46
46
  routes: {
47
47
  admin: adminRoute,
48
48
  api: apiRoute
49
- },
50
- serverURL
49
+ }
51
50
  },
52
51
  getEntityConfig
53
52
  } = useConfig();
@@ -127,7 +126,7 @@ export const DuplicateDocument = ({
127
126
  label: getTranslation(singularLabel, i18n)
128
127
  }));
129
128
  }
130
- }, [adminRoute, apiRoute, collectionConfig, i18n, id, localeCode, onDuplicate, redirectAfterDuplicate, router, serverURL, setModified, singularLabel, slug, startRouteTransition, t]);
129
+ }, [adminRoute, apiRoute, collectionConfig, i18n, id, localeCode, onDuplicate, redirectAfterDuplicate, router, setModified, singularLabel, slug, startRouteTransition, t]);
131
130
  const handleConfirmWithoutSaving = useCallback(async () => {
132
131
  if (selectLocales) {
133
132
  openModal(drawerSlug);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","hasDraftsEnabled","qs","React","useCallback","useMemo","toast","useForm","useFormModified","useConfig","useLocale","useRouteTransition","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","SelectLocalesDrawer","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","selectLocales","singularLabel","router","modified","openModal","code","localeCode","setModified","startRouteTransition","config","localization","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","i18n","t","modalSlug","drawerSlug","isDuplicateByLocaleEnabled","fields","handleDuplicate","args","selectedLocales","hasSelectedLocales","length","queryParams","locale","headers","language","credentials","res","post","path","stringify","addQueryPrefix","body","JSON","_status","doc","errors","message","json","status","success","label","push","error","_error","handleConfirmWithoutSaving","buttonLabel","_jsxs","Fragment","_jsx","Button","onClick","confirmLabel","heading","onConfirm"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { SelectLocalesDrawer } from './SelectLocalesDrawer/index.js'\n\nexport type Props = {\n readonly id: number | string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly selectLocales?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n selectLocales,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { openModal } = useModal()\n const { code: localeCode } = useLocale()\n const { setModified } = useForm()\n const { startRouteTransition } = useRouteTransition()\n\n const {\n config: {\n localization,\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n const drawerSlug = `duplicate-locales-${id}`\n\n const isDuplicateByLocaleEnabled = useMemo(() => {\n if (selectLocales && collectionConfig) {\n return traverseForLocalizedFields(collectionConfig.fields)\n }\n return false\n }, [collectionConfig, selectLocales])\n\n const handleDuplicate = useCallback(\n async (args?: { selectedLocales?: string[] }) => {\n const { selectedLocales } = args || {}\n const hasSelectedLocales = selectedLocales && selectedLocales.length > 0\n\n const queryParams: Record<string, string | string[]> = {}\n if (localeCode) {\n queryParams.locale = localeCode\n }\n if (hasSelectedLocales) {\n queryParams.selectedLocales = selectedLocales\n }\n\n const headers = {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n }\n\n try {\n const res = await requests.post(\n formatAdminURL({\n apiRoute,\n path: `/${slug}/${id}/duplicate${qs.stringify(queryParams, {\n addQueryPrefix: true,\n })}`,\n }),\n {\n body: JSON.stringify(hasDraftsEnabled(collectionConfig) ? { _status: 'draft' } : {}),\n headers,\n },\n )\n\n const { doc, errors, message } = await res.json()\n\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`,\n }),\n ),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n } catch (_error) {\n toast.error(t('error:unspecific', { label: getTranslation(singularLabel, i18n) }))\n }\n },\n [\n adminRoute,\n apiRoute,\n collectionConfig,\n i18n,\n id,\n localeCode,\n onDuplicate,\n redirectAfterDuplicate,\n router,\n serverURL,\n setModified,\n singularLabel,\n slug,\n startRouteTransition,\n t,\n ],\n )\n\n const handleConfirmWithoutSaving = useCallback(async () => {\n if (selectLocales) {\n openModal(drawerSlug)\n } else {\n await handleDuplicate()\n }\n }, [handleDuplicate, drawerSlug, selectLocales, openModal])\n\n const buttonLabel = selectLocales\n ? `${t('general:duplicate')} ${t('localization:selectedLocales')}`\n : t('general:duplicate')\n\n if (!selectLocales || isDuplicateByLocaleEnabled) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={`action-duplicate${isDuplicateByLocaleEnabled ? `-locales` : ''}`}\n onClick={() => {\n if (modified) {\n openModal(modalSlug)\n } else if (selectLocales) {\n openModal(drawerSlug)\n } else {\n void handleDuplicate()\n }\n }}\n >\n {buttonLabel}\n </PopupList.Button>\n <ConfirmationModal\n body={t('general:unsavedChangesDuplicate')}\n confirmLabel={t('general:duplicateWithoutSaving')}\n heading={t('general:unsavedChanges')}\n modalSlug={modalSlug}\n onConfirm={handleConfirmWithoutSaving}\n />\n {selectLocales && localization && (\n <SelectLocalesDrawer\n localization={localization}\n onConfirm={handleDuplicate}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","formatAdminURL","hasDraftsEnabled","qs","React","useCallback","useMemo","toast","useForm","useFormModified","useConfig","useLocale","useRouteTransition","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","SelectLocalesDrawer","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","selectLocales","singularLabel","router","modified","openModal","code","localeCode","setModified","startRouteTransition","config","localization","routes","admin","adminRoute","api","apiRoute","getEntityConfig","collectionConfig","collectionSlug","i18n","t","modalSlug","drawerSlug","isDuplicateByLocaleEnabled","fields","handleDuplicate","args","selectedLocales","hasSelectedLocales","length","queryParams","locale","headers","language","credentials","res","post","path","stringify","addQueryPrefix","body","JSON","_status","doc","errors","message","json","status","success","label","push","error","_error","handleConfirmWithoutSaving","buttonLabel","_jsxs","Fragment","_jsx","Button","onClick","confirmLabel","heading","onConfirm"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { SelectLocalesDrawer } from './SelectLocalesDrawer/index.js'\n\nexport type Props = {\n readonly id: number | string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly selectLocales?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n selectLocales,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { openModal } = useModal()\n const { code: localeCode } = useLocale()\n const { setModified } = useForm()\n const { startRouteTransition } = useRouteTransition()\n\n const {\n config: {\n localization,\n routes: { admin: adminRoute, api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n const drawerSlug = `duplicate-locales-${id}`\n\n const isDuplicateByLocaleEnabled = useMemo(() => {\n if (selectLocales && collectionConfig) {\n return traverseForLocalizedFields(collectionConfig.fields)\n }\n return false\n }, [collectionConfig, selectLocales])\n\n const handleDuplicate = useCallback(\n async (args?: { selectedLocales?: string[] }) => {\n const { selectedLocales } = args || {}\n const hasSelectedLocales = selectedLocales && selectedLocales.length > 0\n\n const queryParams: Record<string, string | string[]> = {}\n if (localeCode) {\n queryParams.locale = localeCode\n }\n if (hasSelectedLocales) {\n queryParams.selectedLocales = selectedLocales\n }\n\n const headers = {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n }\n\n try {\n const res = await requests.post(\n formatAdminURL({\n apiRoute,\n path: `/${slug}/${id}/duplicate${qs.stringify(queryParams, {\n addQueryPrefix: true,\n })}`,\n }),\n {\n body: JSON.stringify(hasDraftsEnabled(collectionConfig) ? { _status: 'draft' } : {}),\n headers,\n },\n )\n\n const { doc, errors, message } = await res.json()\n\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${localeCode ? `?locale=${localeCode}` : ''}`,\n }),\n ),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n } catch (_error) {\n toast.error(t('error:unspecific', { label: getTranslation(singularLabel, i18n) }))\n }\n },\n [\n adminRoute,\n apiRoute,\n collectionConfig,\n i18n,\n id,\n localeCode,\n onDuplicate,\n redirectAfterDuplicate,\n router,\n setModified,\n singularLabel,\n slug,\n startRouteTransition,\n t,\n ],\n )\n\n const handleConfirmWithoutSaving = useCallback(async () => {\n if (selectLocales) {\n openModal(drawerSlug)\n } else {\n await handleDuplicate()\n }\n }, [handleDuplicate, drawerSlug, selectLocales, openModal])\n\n const buttonLabel = selectLocales\n ? `${t('general:duplicate')} ${t('localization:selectedLocales')}`\n : t('general:duplicate')\n\n if (!selectLocales || isDuplicateByLocaleEnabled) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={`action-duplicate${isDuplicateByLocaleEnabled ? `-locales` : ''}`}\n onClick={() => {\n if (modified) {\n openModal(modalSlug)\n } else if (selectLocales) {\n openModal(drawerSlug)\n } else {\n void handleDuplicate()\n }\n }}\n >\n {buttonLabel}\n </PopupList.Button>\n <ConfirmationModal\n body={t('general:unsavedChangesDuplicate')}\n confirmLabel={t('general:duplicateWithoutSaving')}\n heading={t('general:unsavedChanges')}\n modalSlug={modalSlug}\n onConfirm={handleConfirmWithoutSaving}\n />\n {selectLocales && localization && (\n <SelectLocalesDrawer\n localization={localization}\n onConfirm={handleDuplicate}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,EAAEC,gBAAgB,QAAQ;AACjD,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAC5C,SAASC,KAAK,QAAQ;AAItB,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,SAAS,QAAQ;AAC1B,SAASC,mBAAmB,QAAQ;AAWpC,OAAO,MAAMC,iBAAA,GAAqCA,CAAC;EACjDC,EAAE;EACFC,IAAI;EACJC,WAAW;EACXC,sBAAA,GAAyB,IAAI;EAC7BC,aAAa;EACbC;AAAa,CACd;EACC,MAAMC,MAAA,GAAS1B,SAAA;EACf,MAAM2B,QAAA,GAAWlB,eAAA;EACjB,MAAM;IAAEmB;EAAS,CAAE,GAAG9B,QAAA;EACtB,MAAM;IAAE+B,IAAA,EAAMC;EAAU,CAAE,GAAGnB,SAAA;EAC7B,MAAM;IAAEoB;EAAW,CAAE,GAAGvB,OAAA;EACxB,MAAM;IAAEwB;EAAoB,CAAE,GAAGpB,kBAAA;EAEjC,MAAM;IACJqB,MAAA,EAAQ;MACNC,YAAY;MACZC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,UAAU;QAAEC,GAAA,EAAKC;MAAQ;IAAE,CAC7C;IACDC;EAAe,CAChB,GAAG9B,SAAA;EAEJ,MAAM+B,gBAAA,GAAmBD,eAAA,CAAgB;IAAEE,cAAA,EAAgBrB;EAAK;EAEhE,MAAM;IAAEsB,IAAI;IAAEC;EAAC,CAAE,GAAG/B,cAAA;EAEpB,MAAMgC,SAAA,GAAY,aAAazB,EAAA,EAAI;EACnC,MAAM0B,UAAA,GAAa,qBAAqB1B,EAAA,EAAI;EAE5C,MAAM2B,0BAAA,GAA6BzC,OAAA,CAAQ;IACzC,IAAIkB,aAAA,IAAiBiB,gBAAA,EAAkB;MACrC,OAAO1B,0BAAA,CAA2B0B,gBAAA,CAAiBO,MAAM;IAC3D;IACA,OAAO;EACT,GAAG,CAACP,gBAAA,EAAkBjB,aAAA,CAAc;EAEpC,MAAMyB,eAAA,GAAkB5C,WAAA,CACtB,MAAO6C,IAAA;IACL,MAAM;MAAEC;IAAe,CAAE,GAAGD,IAAA,IAAQ,CAAC;IACrC,MAAME,kBAAA,GAAqBD,eAAA,IAAmBA,eAAA,CAAgBE,MAAM,GAAG;IAEvE,MAAMC,WAAA,GAAiD,CAAC;IACxD,IAAIxB,UAAA,EAAY;MACdwB,WAAA,CAAYC,MAAM,GAAGzB,UAAA;IACvB;IACA,IAAIsB,kBAAA,EAAoB;MACtBE,WAAA,CAAYH,eAAe,GAAGA,eAAA;IAChC;IAEA,MAAMK,OAAA,GAAU;MACd,mBAAmBb,IAAA,CAAKc,QAAQ;MAChC,gBAAgB;MAChBC,WAAA,EAAa;IACf;IAEA,IAAI;MACF,MAAMC,GAAA,GAAM,MAAM7C,QAAA,CAAS8C,IAAI,CAC7B3D,cAAA,CAAe;QACbsC,QAAA;QACAsB,IAAA,EAAM,IAAIxC,IAAA,IAAQD,EAAA,aAAejB,EAAA,CAAG2D,SAAS,CAACR,WAAA,EAAa;UACzDS,cAAA,EAAgB;QAClB;MACF,IACA;QACEC,IAAA,EAAMC,IAAA,CAAKH,SAAS,CAAC5D,gBAAA,CAAiBuC,gBAAA,IAAoB;UAAEyB,OAAA,EAAS;QAAQ,IAAI,CAAC;QAClFV;MACF;MAGF,MAAM;QAAEW,GAAG;QAAEC,MAAM;QAAEC;MAAO,CAAE,GAAG,MAAMV,GAAA,CAAIW,IAAI;MAE/C,IAAIX,GAAA,CAAIY,MAAM,GAAG,KAAK;QACpBhE,KAAA,CAAMiE,OAAO,CACXH,OAAA,IACEzB,CAAA,CAAE,kCAAkC;UAAE6B,KAAA,EAAO1E,cAAA,CAAe0B,aAAA,EAAekB,IAAA;QAAM;QAGrFZ,WAAA,CAAY;QAEZ,IAAIR,sBAAA,EAAwB;UAC1B,OAAOS,oBAAA,CAAqB,MAC1BN,MAAA,CAAOgD,IAAI,CACTzE,cAAA,CAAe;YACboC,UAAA;YACAwB,IAAA,EAAM,gBAAgBxC,IAAA,IAAQ8C,GAAA,CAAI/C,EAAE,GAAGU,UAAA,GAAa,WAAWA,UAAA,EAAY,GAAG;UAChF;QAGN;QAEA,IAAI,OAAOR,WAAA,KAAgB,YAAY;UACrC,KAAKA,WAAA,CAAY;YAAEmB,gBAAA;YAAkB0B;UAAI;QAC3C;MACF,OAAO;QACL5D,KAAA,CAAMoE,KAAK,CACTP,MAAA,GAAS,EAAE,CAACC,OAAA,IACVA,OAAA,IACAzB,CAAA,CAAE,oBAAoB;UAAE6B,KAAA,EAAO1E,cAAA,CAAe0B,aAAA,EAAekB,IAAA;QAAM;MAEzE;IACF,EAAE,OAAOiC,MAAA,EAAQ;MACfrE,KAAA,CAAMoE,KAAK,CAAC/B,CAAA,CAAE,oBAAoB;QAAE6B,KAAA,EAAO1E,cAAA,CAAe0B,aAAA,EAAekB,IAAA;MAAM;IACjF;EACF,GACA,CACEN,UAAA,EACAE,QAAA,EACAE,gBAAA,EACAE,IAAA,EACAvB,EAAA,EACAU,UAAA,EACAR,WAAA,EACAC,sBAAA,EACAG,MAAA,EACAK,WAAA,EACAN,aAAA,EACAJ,IAAA,EACAW,oBAAA,EACAY,CAAA,CACD;EAGH,MAAMiC,0BAAA,GAA6BxE,WAAA,CAAY;IAC7C,IAAImB,aAAA,EAAe;MACjBI,SAAA,CAAUkB,UAAA;IACZ,OAAO;MACL,MAAMG,eAAA;IACR;EACF,GAAG,CAACA,eAAA,EAAiBH,UAAA,EAAYtB,aAAA,EAAeI,SAAA,CAAU;EAE1D,MAAMkD,WAAA,GAActD,aAAA,GAChB,GAAGoB,CAAA,CAAE,wBAAwBA,CAAA,CAAE,iCAAiC,GAChEA,CAAA,CAAE;EAEN,IAAI,CAACpB,aAAA,IAAiBuB,0BAAA,EAA4B;IAChD,oBACEgC,KAAA,CAAC3E,KAAA,CAAM4E,QAAQ;8BACbC,IAAA,CAAChE,SAAA,CAAUiE,MAAM;QACf9D,EAAA,EAAI,mBAAmB2B,0BAAA,GAA6B,UAAU,GAAG,IAAI;QACrEoC,OAAA,EAASA,CAAA;UACP,IAAIxD,QAAA,EAAU;YACZC,SAAA,CAAUiB,SAAA;UACZ,OAAO,IAAIrB,aAAA,EAAe;YACxBI,SAAA,CAAUkB,UAAA;UACZ,OAAO;YACL,KAAKG,eAAA;UACP;QACF;kBAEC6B;uBAEHG,IAAA,CAACjE,iBAAA;QACCgD,IAAA,EAAMpB,CAAA,CAAE;QACRwC,YAAA,EAAcxC,CAAA,CAAE;QAChByC,OAAA,EAASzC,CAAA,CAAE;QACXC,SAAA,EAAWA,SAAA;QACXyC,SAAA,EAAWT;UAEZrD,aAAA,IAAiBU,YAAA,iBAChB+C,IAAA,CAAC/D,mBAAA;QACCgB,YAAA,EAAcA,YAAA;QACdoD,SAAA,EAAWrC,eAAA;QACX5B,IAAA,EAAMyB;;;EAKhB;EAEA,OAAO;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAQxC,OAAO,cAAc,CAAA;AAiNrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAQxC,OAAO,cAAc,CAAA;AAoNrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
@@ -127,6 +127,9 @@ const SelectAdapter = props => {
127
127
  if (filterOption && !filterOption(null, inputValue)) {
128
128
  return;
129
129
  }
130
+ if (event.nativeEvent.isComposing) {
131
+ return;
132
+ }
130
133
  switch (event.key) {
131
134
  case 'Enter':
132
135
  case 'Tab':
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","styles","menu","rsStyles","zIndex","_jsx","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select, { type StylesConfig } from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport './index.scss'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n const styles: StylesConfig<Option> = {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles) => ({ ...rsStyles, zIndex: undefined }),\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","styles","menu","rsStyles","zIndex","_jsx","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","nativeEvent","isComposing","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select, { type StylesConfig } from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport './index.scss'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n const styles: StylesConfig<Option> = {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles) => ({ ...rsStyles, zIndex: undefined }),\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n if (event.nativeEvent.isComposing) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
@@ -61,7 +61,15 @@
61
61
  span {
62
62
  max-width: base(8);
63
63
  text-overflow: ellipsis;
64
+ overflow: hidden;
64
65
  white-space: nowrap;
66
+
67
+ // Exception: don't truncate modular dashboard elements
68
+ &:has(.dashboard-breadcrumb-select, .dashboard-breadcrumb-dropdown__editing) {
69
+ max-width: none;
70
+ overflow: visible;
71
+ white-space: normal;
72
+ }
65
73
  }
66
74
 
67
75
  @include mid-break {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAKrB,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,eAAe,GAAG,iBAAiB,CAAC;IACtE,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2C5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAKrB,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,eAAe,GAAG,iBAAiB,CAAC;IACtE,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4C5C,CAAA"}
@@ -35,6 +35,7 @@ export const FileCell = ({
35
35
  filename
36
36
  },
37
37
  fileSrc: fileSrc,
38
+ imageCacheTag: collectionConfig?.upload?.cacheTags && rowData?.updatedAt,
38
39
  size: "small",
39
40
  uploadConfig: collectionConfig?.upload
40
41
  }), /*#__PURE__*/_jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getBestFitFromSizes","isImage","React","Thumbnail","baseClass","FileCell","cellData","filename","collectionConfig","field","rowData","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","isFileImage","mimeType","fileSrc","thumbnailURL","url","sizes","width","_jsxs","className","_jsx","collectionSlug","slug","doc","size","uploadConfig","String","_Fragment"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n DefaultCellComponentProps,\n TextFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getBestFitFromSizes, isImage } from 'payload/shared'\nimport React from 'react'\n\nimport './index.scss'\nimport { Thumbnail } from '../../../../Thumbnail/index.js'\n\nconst baseClass = 'file'\n\nexport interface FileCellProps\n extends DefaultCellComponentProps<TextFieldClient | UploadFieldClient> {\n readonly collectionConfig: ClientCollectionConfig\n}\n\nexport const FileCell: React.FC<FileCellProps> = ({\n cellData: filename,\n collectionConfig,\n field,\n rowData,\n}) => {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed = fieldPreviewAllowed ?? collectionConfig.upload?.displayPreview ?? true\n\n if (previewAllowed) {\n const isFileImage = isImage(rowData?.mimeType)\n let fileSrc: string | undefined = isFileImage\n ? rowData?.thumbnailURL || rowData?.url\n : rowData?.thumbnailURL\n\n if (isFileImage) {\n fileSrc = getBestFitFromSizes({\n sizes: rowData?.sizes,\n thumbnailURL: rowData?.thumbnailURL,\n url: rowData?.url,\n width: rowData?.width,\n })\n }\n\n return (\n <div className={baseClass}>\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionConfig?.slug}\n doc={{\n ...rowData,\n filename,\n }}\n fileSrc={fileSrc}\n size=\"small\"\n uploadConfig={collectionConfig?.upload}\n />\n <span className={`${baseClass}__filename`}>{String(filename)}</span>\n </div>\n )\n } else {\n return <>{String(filename)}</>\n }\n}\n"],"mappings":"AAAA;;;AAQA,SAASA,mBAAmB,EAAEC,OAAO,QAAQ;AAC7C,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,SAAS,QAAQ;AAE1B,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,QAAA,GAAoCA,CAAC;EAChDC,QAAA,EAAUC,QAAQ;EAClBC,gBAAgB;EAChBC,KAAK;EACLC;AAAO,CACR;EACC,MAAMC,mBAAA,GAAsB,oBAAoBF,KAAA,GAAQA,KAAA,CAAMG,cAAc,GAAGC,SAAA;EAC/E,MAAMC,cAAA,GAAiBH,mBAAA,IAAuBH,gBAAA,CAAiBO,MAAM,EAAEH,cAAA,IAAkB;EAEzF,IAAIE,cAAA,EAAgB;IAClB,MAAME,WAAA,GAAcf,OAAA,CAAQS,OAAA,EAASO,QAAA;IACrC,IAAIC,OAAA,GAA8BF,WAAA,GAC9BN,OAAA,EAASS,YAAA,IAAgBT,OAAA,EAASU,GAAA,GAClCV,OAAA,EAASS,YAAA;IAEb,IAAIH,WAAA,EAAa;MACfE,OAAA,GAAUlB,mBAAA,CAAoB;QAC5BqB,KAAA,EAAOX,OAAA,EAASW,KAAA;QAChBF,YAAA,EAAcT,OAAA,EAASS,YAAA;QACvBC,GAAA,EAAKV,OAAA,EAASU,GAAA;QACdE,KAAA,EAAOZ,OAAA,EAASY;MAClB;IACF;IAEA,oBACEC,KAAA,CAAC;MAAIC,SAAA,EAAWpB,SAAA;8BACdqB,IAAA,CAACtB,SAAA;QACCqB,SAAA,EAAW,GAAGpB,SAAA,aAAsB;QACpCsB,cAAA,EAAgBlB,gBAAA,EAAkBmB,IAAA;QAClCC,GAAA,EAAK;UACH,GAAGlB,OAAO;UACVH;QACF;QACAW,OAAA,EAASA,OAAA;QACTW,IAAA,EAAK;QACLC,YAAA,EAActB,gBAAA,EAAkBO;uBAElCU,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGpB,SAAA,YAAqB;kBAAG2B,MAAA,CAAOxB,QAAA;;;EAGzD,OAAO;IACL,oBAAOkB,IAAA,CAAAO,SAAA;gBAAGD,MAAA,CAAOxB,QAAA;;EACnB;AACF","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getBestFitFromSizes","isImage","React","Thumbnail","baseClass","FileCell","cellData","filename","collectionConfig","field","rowData","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","isFileImage","mimeType","fileSrc","thumbnailURL","url","sizes","width","_jsxs","className","_jsx","collectionSlug","slug","doc","imageCacheTag","cacheTags","updatedAt","size","uploadConfig","String","_Fragment"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n DefaultCellComponentProps,\n TextFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getBestFitFromSizes, isImage } from 'payload/shared'\nimport React from 'react'\n\nimport './index.scss'\nimport { Thumbnail } from '../../../../Thumbnail/index.js'\n\nconst baseClass = 'file'\n\nexport interface FileCellProps\n extends DefaultCellComponentProps<TextFieldClient | UploadFieldClient> {\n readonly collectionConfig: ClientCollectionConfig\n}\n\nexport const FileCell: React.FC<FileCellProps> = ({\n cellData: filename,\n collectionConfig,\n field,\n rowData,\n}) => {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed = fieldPreviewAllowed ?? collectionConfig.upload?.displayPreview ?? true\n\n if (previewAllowed) {\n const isFileImage = isImage(rowData?.mimeType)\n let fileSrc: string | undefined = isFileImage\n ? rowData?.thumbnailURL || rowData?.url\n : rowData?.thumbnailURL\n\n if (isFileImage) {\n fileSrc = getBestFitFromSizes({\n sizes: rowData?.sizes,\n thumbnailURL: rowData?.thumbnailURL,\n url: rowData?.url,\n width: rowData?.width,\n })\n }\n\n return (\n <div className={baseClass}>\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionConfig?.slug}\n doc={{\n ...rowData,\n filename,\n }}\n fileSrc={fileSrc}\n imageCacheTag={collectionConfig?.upload?.cacheTags && rowData?.updatedAt}\n size=\"small\"\n uploadConfig={collectionConfig?.upload}\n />\n <span className={`${baseClass}__filename`}>{String(filename)}</span>\n </div>\n )\n } else {\n return <>{String(filename)}</>\n }\n}\n"],"mappings":"AAAA;;;AAQA,SAASA,mBAAmB,EAAEC,OAAO,QAAQ;AAC7C,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,SAAS,QAAQ;AAE1B,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,QAAA,GAAoCA,CAAC;EAChDC,QAAA,EAAUC,QAAQ;EAClBC,gBAAgB;EAChBC,KAAK;EACLC;AAAO,CACR;EACC,MAAMC,mBAAA,GAAsB,oBAAoBF,KAAA,GAAQA,KAAA,CAAMG,cAAc,GAAGC,SAAA;EAC/E,MAAMC,cAAA,GAAiBH,mBAAA,IAAuBH,gBAAA,CAAiBO,MAAM,EAAEH,cAAA,IAAkB;EAEzF,IAAIE,cAAA,EAAgB;IAClB,MAAME,WAAA,GAAcf,OAAA,CAAQS,OAAA,EAASO,QAAA;IACrC,IAAIC,OAAA,GAA8BF,WAAA,GAC9BN,OAAA,EAASS,YAAA,IAAgBT,OAAA,EAASU,GAAA,GAClCV,OAAA,EAASS,YAAA;IAEb,IAAIH,WAAA,EAAa;MACfE,OAAA,GAAUlB,mBAAA,CAAoB;QAC5BqB,KAAA,EAAOX,OAAA,EAASW,KAAA;QAChBF,YAAA,EAAcT,OAAA,EAASS,YAAA;QACvBC,GAAA,EAAKV,OAAA,EAASU,GAAA;QACdE,KAAA,EAAOZ,OAAA,EAASY;MAClB;IACF;IAEA,oBACEC,KAAA,CAAC;MAAIC,SAAA,EAAWpB,SAAA;8BACdqB,IAAA,CAACtB,SAAA;QACCqB,SAAA,EAAW,GAAGpB,SAAA,aAAsB;QACpCsB,cAAA,EAAgBlB,gBAAA,EAAkBmB,IAAA;QAClCC,GAAA,EAAK;UACH,GAAGlB,OAAO;UACVH;QACF;QACAW,OAAA,EAASA,OAAA;QACTW,aAAA,EAAerB,gBAAA,EAAkBO,MAAA,EAAQe,SAAA,IAAapB,OAAA,EAASqB,SAAA;QAC/DC,IAAA,EAAK;QACLC,YAAA,EAAczB,gBAAA,EAAkBO;uBAElCU,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGpB,SAAA,YAAqB;kBAAG8B,MAAA,CAAO3B,QAAA;;;EAGzD,OAAO;IACL,oBAAOkB,IAAA,CAAAU,SAAA;gBAAGD,MAAA,CAAO3B,QAAA;;EACnB;AACF","ignoreList":[]}