@payloadcms/ui 3.76.0-canary.4 → 3.76.1

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 (58) hide show
  1. package/dist/elements/Button/index.js +1 -1
  2. package/dist/elements/Button/index.js.map +1 -1
  3. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  4. package/dist/elements/CopyLocaleData/index.js +38 -34
  5. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  6. package/dist/elements/Link/index.d.ts.map +1 -1
  7. package/dist/elements/ReactSelect/index.js +1 -1
  8. package/dist/elements/ReactSelect/index.js.map +1 -1
  9. package/dist/elements/Thumbnail/createThumbnail.js +2 -2
  10. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  11. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  12. package/dist/elements/UnpublishButton/index.js +41 -40
  13. package/dist/elements/UnpublishButton/index.js.map +1 -1
  14. package/dist/exports/client/{DatePicker-GT6CXMEH.js → DatePicker-YF5TBW3N.js} +2 -2
  15. package/dist/exports/client/chunk-ZPLD37T2.js +29 -0
  16. package/dist/exports/client/{chunk-USMS5YRL.js.map → chunk-ZPLD37T2.js.map} +4 -4
  17. package/dist/exports/client/index.js +12 -12
  18. package/dist/exports/client/index.js.map +3 -3
  19. package/dist/fields/Number/index.js +1 -1
  20. package/dist/fields/Number/index.js.map +1 -1
  21. package/dist/fields/Tabs/index.js +42 -41
  22. package/dist/fields/Tabs/index.js.map +1 -1
  23. package/dist/fields/Text/index.js +1 -1
  24. package/dist/fields/Text/index.js.map +1 -1
  25. package/dist/fields/shared/index.js +1 -1
  26. package/dist/fields/shared/index.js.map +1 -1
  27. package/dist/forms/Form/reduceToSerializableFields.js +1 -1
  28. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  29. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  30. package/dist/forms/WatchChildErrors/index.js +2 -1
  31. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  32. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +1 -1
  33. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  34. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  35. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  36. package/dist/hooks/useQueue.js +1 -1
  37. package/dist/hooks/useQueue.js.map +1 -1
  38. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  39. package/dist/providers/ServerFunctions/index.js +8 -10
  40. package/dist/providers/ServerFunctions/index.js.map +1 -1
  41. package/dist/providers/TableColumns/buildColumnState/index.js +2 -2
  42. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  43. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -1
  44. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  45. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -1
  46. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  47. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  48. package/dist/utilities/copyDataFromLocale.js +3 -5
  49. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  50. package/dist/utilities/getDisplayedFieldValue.js +3 -3
  51. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  52. package/dist/utilities/isURLAllowed.js +2 -2
  53. package/dist/utilities/isURLAllowed.js.map +1 -1
  54. package/dist/views/Edit/index.js +2 -2
  55. package/dist/views/Edit/index.js.map +1 -1
  56. package/package.json +6 -6
  57. package/dist/exports/client/chunk-USMS5YRL.js +0 -29
  58. /package/dist/exports/client/{DatePicker-GT6CXMEH.js.map → DatePicker-YF5TBW3N.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","UnpublishButton","label","labelProp","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","hasPublishPermission","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","localeLabel","unpublishAll","setUnpublishAll","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","apiRoute","path","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","canUnpublish","canUnpublishCurrentLocale","drafts","versions","hasDraftsConfig","localizeStatusConfigured","localizeStatus","experimentalLocalizeStatus","experimental","_jsx","Fragment","_jsxs","_Fragment","Button","onClick","close","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UnpublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.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 { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nexport function UnpublishButton({\n label: labelProp,\n}: { label?: string } & UnpublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n\n const { config, getEntityConfig } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: localeCode, label: localeLabel } = useLocale()\n const [unpublishAll, setUnpublishAll] = useState(false)\n const unPublishModalSlug = `confirm-un-publish-${id}`\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const unpublish = useCallback(\n (unpublishAll?: boolean) => {\n ; (async () => {\n let url\n let method\n\n const queryString = qs.stringify(\n {\n depth: 0,\n 'fallback-locale': 'null',\n locale: unpublishAll ? undefined : localeCode,\n unpublishAllLocales: unpublishAll,\n },\n { addQueryPrefix: true },\n )\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${queryString}`,\n serverURL,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${queryString}`,\n serverURL,\n })\n method = 'post'\n }\n\n try {\n const res = await requests[method](url, {\n body: JSON.stringify({ _status: 'draft' }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n void resetForm({\n ...(dataFromProps || {}),\n _status: 'draft',\n })\n\n toast.success(t('version:unpublishedSuccessfully'))\n incrementVersionCount()\n setUnpublishedVersionCount(1)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(false)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n })().catch(() => {\n toast.error(t('error:unPublishingDocument'))\n })\n },\n [\n dataFromProps,\n resetForm,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n localeCode,\n id,\n i18n.language,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n t,\n ],\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const canUnpublish = React.useMemo(\n () => hasPublishPermission && hasPublishedDoc && !isTrashed,\n [hasPublishPermission, hasPublishedDoc, isTrashed],\n )\n\n const canUnpublishCurrentLocale = React.useMemo(() => {\n if (!canUnpublish || !hasLocalizedFields) { return false }\n\n const drafts = entityConfig?.versions?.drafts\n const hasDraftsConfig = typeof drafts === 'object' && drafts !== null\n const localizeStatusConfigured = hasDraftsConfig && drafts.localizeStatus === true\n const experimentalLocalizeStatus =\n config.experimental &&\n 'localizeStatus' in config.experimental &&\n config.experimental.localizeStatus === true\n\n return localizeStatusConfigured && experimentalLocalizeStatus\n }, [canUnpublish, hasLocalizedFields, entityConfig?.versions?.drafts, config.experimental])\n\n\n const label = getTranslation(localeLabel, i18n)\n\n return (\n <React.Fragment>\n {canUnpublish && (\n <>\n {canUnpublish && <PopupList.Button\n id=\"action-unpublish\"\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp || t('version:unpublish')}\n </PopupList.Button >}\n {\n canUnpublishCurrentLocale && <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n close()\n }}\n >\n {labelProp ? labelProp + ` [${label}]` : t('version:unpublishIn', { locale: label })}\n </PopupList.Button>\n }\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: label })\n : t('version:aboutToUnpublish')\n }\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => unpublish(unpublishAll)}\n />\n </>\n )}\n </React.Fragment >\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","UnpublishButton","label","labelProp","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","hasPublishPermission","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","localeLabel","unpublishAll","setUnpublishAll","hasLocalizedFields","setHasLocalizedFields","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","apiRoute","path","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","hasLocalizedField","fields","drafts","versions","hasDraftsEnabled","canUnpublish","canUnpublishCurrentLocale","isLocalizeStatusEnabled","localizeStatus","isExperimentalEnabled","experimental","_jsxs","Fragment","_jsx","Button","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UnpublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.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 { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nexport function UnpublishButton({\n label: labelProp,\n}: { label?: string } & UnpublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n\n const { config, getEntityConfig } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: localeCode, label: localeLabel } = useLocale()\n const [unpublishAll, setUnpublishAll] = useState(false)\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n const unPublishModalSlug = `confirm-un-publish-${id}`\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const unpublish = useCallback(\n (unpublishAll?: boolean) => {\n void (async () => {\n let url\n let method\n\n const queryString = qs.stringify(\n {\n depth: 0,\n 'fallback-locale': 'null',\n locale: unpublishAll ? undefined : localeCode,\n unpublishAllLocales: unpublishAll,\n },\n { addQueryPrefix: true },\n )\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${queryString}`,\n serverURL,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${queryString}`,\n serverURL,\n })\n method = 'post'\n }\n\n try {\n const res = await requests[method](url, {\n body: JSON.stringify({ _status: 'draft' }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n void resetForm({\n ...(dataFromProps || {}),\n _status: 'draft',\n })\n\n toast.success(t('version:unpublishedSuccessfully'))\n incrementVersionCount()\n setUnpublishedVersionCount(1)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(false)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n })().catch(() => {\n toast.error(t('error:unPublishingDocument'))\n })\n },\n [\n dataFromProps,\n resetForm,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n localeCode,\n id,\n i18n.language,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n t,\n ],\n )\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const drafts = entityConfig?.versions?.drafts\n const hasDraftsEnabled = typeof drafts === 'object' && drafts !== null\n\n const canUnpublish = React.useMemo(() => {\n return hasDraftsEnabled && hasPublishPermission && hasPublishedDoc && !isTrashed\n }, [hasPublishPermission, hasPublishedDoc, isTrashed, hasDraftsEnabled])\n\n const canUnpublishCurrentLocale = React.useMemo(() => {\n if (!canUnpublish || !hasLocalizedFields) {\n return false\n }\n\n const isLocalizeStatusEnabled = drafts && drafts.localizeStatus === true\n const isExperimentalEnabled = config.experimental?.localizeStatus === true\n\n return isLocalizeStatusEnabled && isExperimentalEnabled\n }, [canUnpublish, hasLocalizedFields, drafts, config.experimental?.localizeStatus])\n\n const label = getTranslation(localeLabel, i18n)\n\n if (!canUnpublish) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id=\"action-unpublish\"\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp || t('version:unpublish')}\n </PopupList.Button>\n {canUnpublishCurrentLocale && (\n <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp ? `${labelProp} [${label}]` : t('version:unpublishIn', { locale: label })}\n </PopupList.Button>\n )}\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: label })\n : t('version:aboutToUnpublish')\n }\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => unpublish(unpublishAll)}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,5 +10,5 @@ function require(m) {
10
10
  }
11
11
  // Workaround end
12
12
 
13
- import{n as a}from"./chunk-USMS5YRL.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
- //# sourceMappingURL=DatePicker-GT6CXMEH.js.map
13
+ import{n as a}from"./chunk-ZPLD37T2.js";import"./chunk-5LKBKI4T.js";export{a as default};
14
+ //# sourceMappingURL=DatePicker-YF5TBW3N.js.map