@payloadcms/ui 3.15.1 → 3.15.2-canary.64ffcd8

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 (28) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +3 -1
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/FileDetails/FileMeta/index.d.ts +0 -2
  5. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  6. package/dist/elements/FileDetails/FileMeta/index.js +22 -86
  7. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  8. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +0 -1
  9. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  10. package/dist/elements/FileDetails/StaticFileDetails/index.js +0 -4
  11. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  12. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  13. package/dist/elements/PublishButton/index.js +272 -114
  14. package/dist/elements/PublishButton/index.js.map +1 -1
  15. package/dist/elements/Status/index.d.ts.map +1 -1
  16. package/dist/elements/Status/index.js +118 -188
  17. package/dist/elements/Status/index.js.map +1 -1
  18. package/dist/exports/client/index.js +10 -10
  19. package/dist/exports/client/index.js.map +3 -3
  20. package/dist/providers/Locale/index.d.ts +1 -0
  21. package/dist/providers/Locale/index.d.ts.map +1 -1
  22. package/dist/providers/Locale/index.js +5 -4
  23. package/dist/providers/Locale/index.js.map +1 -1
  24. package/dist/providers/Root/index.d.ts +2 -1
  25. package/dist/providers/Root/index.d.ts.map +1 -1
  26. package/dist/providers/Root/index.js +2 -0
  27. package/dist/providers/Root/index.js.map +1 -1
  28. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGzE,OAAO,KAA2B,MAAM,OAAO,CAAA;AAkB/C,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2QpC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Autosave/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAGzE,OAAO,KAA2B,MAAM,OAAO,CAAA;AAkB/C,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6QpC,CAAA"}
@@ -37,7 +37,8 @@ export const Autosave = ({
37
37
  lastUpdateTime,
38
38
  mostRecentVersionIsAutosaved,
39
39
  setLastUpdateTime,
40
- setMostRecentVersionIsAutosaved
40
+ setMostRecentVersionIsAutosaved,
41
+ setUnpublishedVersionCount
41
42
  } = useDocumentInfo();
42
43
  const queueRef = useRef([]);
43
44
  const isProcessingRef = useRef(false);
@@ -155,6 +156,7 @@ export const Autosave = ({
155
156
  if (!mostRecentVersionIsAutosaved) {
156
157
  incrementVersionCount();
157
158
  setMostRecentVersionIsAutosaved(true);
159
+ setUnpublishedVersionCount(prev => prev + 1);
158
160
  }
159
161
  } else {
160
162
  return res.json();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["versionDefaults","React","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useIgnoredEffect","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","config","routes","api","serverURL","docConfig","incrementVersionCount","lastUpdateTime","mostRecentVersionIsAutosaved","setLastUpdateTime","setMostRecentVersionIsAutosaved","queueRef","isProcessingRef","reportUpdate","dispatchFields","setSubmitted","submitted","versionsConfig","versions","fields","modified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","debouncedFields","fieldRef","modifiedRef","localeRef","debouncedRef","current","processQueue","useCallback","length","latestAction","abortController","AbortController","autosaveTimeout","undefined","startTimestamp","endTimestamp","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","validate","fetch","body","JSON","stringify","credentials","headers","language","signal","then","res","newDate","status","updatedAt","toISOString","json","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","setTimeout","clearTimeout","abort","_jsxs","className","Boolean","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { versionDefaults } from 'payload/shared'\nimport React, { useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc }) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const {\n docConfig,\n incrementVersionCount,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n } = useDocumentInfo()\n const queueRef = useRef([])\n const isProcessingRef = useRef(false)\n\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const [saving, setSaving] = useState(false)\n const debouncedFields = useDebounce(fields, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n const processQueue = React.useCallback(async () => {\n if (isProcessingRef.current || queueRef.current.length === 0) {\n return\n }\n\n isProcessingRef.current = true\n const latestAction = queueRef.current[queueRef.current.length - 1]\n queueRef.current = []\n\n try {\n await latestAction()\n } finally {\n isProcessingRef.current = false\n if (queueRef.current.length > 0) {\n await processQueue()\n }\n }\n }, [])\n\n // When debounced fields change, autosave\n useIgnoredEffect(\n () => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const autosave = async () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n .then((res) => {\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n if (res.status === 200) {\n setLastUpdateTime(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n\n if (!mostRecentVersionIsAutosaved) {\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(true)\n }\n } else {\n return res.json()\n }\n })\n .then((json) => {\n if (\n versionsConfig?.drafts &&\n versionsConfig?.drafts?.validate &&\n json?.errors\n ) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n })\n .then(() => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeout = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n setSaving(false)\n }\n })\n }\n }\n }\n }\n }\n\n queueRef.current.push(autosave)\n void processQueue()\n\n return () => {\n if (autosaveTimeout) {\n clearTimeout(autosaveTimeout)\n }\n if (abortController.signal) {\n try {\n abortController.abort('Autosave closed early.')\n } catch (error) {\n // swallow error\n }\n }\n setSaving(false)\n }\n },\n [debouncedFields],\n [\n api,\n collection,\n dispatchFields,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n versionsConfig?.drafts,\n submitted,\n setLastUpdateTime,\n mostRecentVersionIsAutosaved,\n incrementVersionCount,\n setMostRecentVersionIsAutosaved,\n ],\n )\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && Boolean(lastUpdateTime) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastUpdateTime, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["versionDefaults","React","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useIgnoredEffect","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","config","routes","api","serverURL","docConfig","incrementVersionCount","lastUpdateTime","mostRecentVersionIsAutosaved","setLastUpdateTime","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","queueRef","isProcessingRef","reportUpdate","dispatchFields","setSubmitted","submitted","versionsConfig","versions","fields","modified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","debouncedFields","fieldRef","modifiedRef","localeRef","debouncedRef","current","processQueue","useCallback","length","latestAction","abortController","AbortController","autosaveTimeout","undefined","startTimestamp","endTimestamp","Date","getTime","url","method","entitySlug","slug","data","valid","_status","skipSubmission","validate","fetch","body","JSON","stringify","credentials","headers","language","signal","then","res","newDate","status","updatedAt","toISOString","prev","json","errors","Array","isArray","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","setTimeout","clearTimeout","abort","_jsxs","className","Boolean","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { versionDefaults } from 'payload/shared'\nimport React, { useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useIgnoredEffect } from '../../hooks/useIgnoredEffect.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatTimeToNow } from '../../utilities/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc }) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const {\n docConfig,\n incrementVersionCount,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n setLastUpdateTime,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n const queueRef = useRef([])\n const isProcessingRef = useRef(false)\n\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const [saving, setSaving] = useState(false)\n const debouncedFields = useDebounce(fields, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n fieldRef.current = fields\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n const processQueue = React.useCallback(async () => {\n if (isProcessingRef.current || queueRef.current.length === 0) {\n return\n }\n\n isProcessingRef.current = true\n const latestAction = queueRef.current[queueRef.current.length - 1]\n queueRef.current = []\n\n try {\n await latestAction()\n } finally {\n isProcessingRef.current = false\n if (queueRef.current.length > 0) {\n await processQueue()\n }\n }\n }, [])\n\n // When debounced fields change, autosave\n useIgnoredEffect(\n () => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const autosave = async () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n .then((res) => {\n const newDate = new Date()\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n if (res.status === 200) {\n setLastUpdateTime(newDate.getTime())\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n\n if (!mostRecentVersionIsAutosaved) {\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(true)\n setUnpublishedVersionCount((prev) => prev + 1)\n }\n } else {\n return res.json()\n }\n })\n .then((json) => {\n if (\n versionsConfig?.drafts &&\n versionsConfig?.drafts?.validate &&\n json?.errors\n ) {\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n })\n .then(() => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeout = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n setSaving(false)\n }\n })\n }\n }\n }\n }\n }\n\n queueRef.current.push(autosave)\n void processQueue()\n\n return () => {\n if (autosaveTimeout) {\n clearTimeout(autosaveTimeout)\n }\n if (abortController.signal) {\n try {\n abortController.abort('Autosave closed early.')\n } catch (error) {\n // swallow error\n }\n }\n setSaving(false)\n }\n },\n [debouncedFields],\n [\n api,\n collection,\n dispatchFields,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n versionsConfig?.drafts,\n submitted,\n setLastUpdateTime,\n mostRecentVersionIsAutosaved,\n incrementVersionCount,\n setMostRecentVersionIsAutosaved,\n ],\n )\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && Boolean(lastUpdateTime) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastUpdateTime, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,8 @@
1
1
  import React from 'react';
2
2
  export type FileMetaProps = {
3
- collection?: string;
4
3
  filename: string;
5
4
  filesize: number;
6
5
  height?: number;
7
- id?: string;
8
6
  mimeType: string;
9
7
  sizes?: unknown;
10
8
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAMD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA+C5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAGD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4B5C,CAAA"}
@@ -1,20 +1,13 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  import { formatFilesize } from 'payload/shared';
6
- import React, { useState } from 'react';
7
- import { EditIcon } from '../../../icons/Edit/index.js';
5
+ import React from 'react';
8
6
  import { CopyToClipboard } from '../../CopyToClipboard/index.js';
9
- import { useDocumentDrawer } from '../../DocumentDrawer/index.js';
10
- import { Tooltip } from '../../Tooltip/index.js';
11
7
  import './index.scss';
12
8
  const baseClass = 'file-meta';
13
9
  export const FileMeta = props => {
14
- const $ = _c(19);
15
10
  const {
16
- id,
17
- collection,
18
11
  filename,
19
12
  filesize,
20
13
  height,
@@ -22,84 +15,27 @@ export const FileMeta = props => {
22
15
  url: fileURL,
23
16
  width
24
17
  } = props;
25
- const [hovered, setHovered] = useState(false);
26
- const openInDrawer = Boolean(id && collection);
27
- let t0;
28
- if ($[0] !== collection || $[1] !== id) {
29
- t0 = {
30
- id,
31
- collectionSlug: collection
32
- };
33
- $[0] = collection;
34
- $[1] = id;
35
- $[2] = t0;
36
- } else {
37
- t0 = $[2];
38
- }
39
- const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer(t0);
40
- let t1;
41
- if ($[3] !== DocumentDrawer || $[4] !== DocumentDrawerToggler || $[5] !== fileURL || $[6] !== filename || $[7] !== filesize || $[8] !== height || $[9] !== hovered || $[10] !== mimeType || $[11] !== openInDrawer || $[12] !== width) {
42
- let t2;
43
- if ($[14] !== height || $[15] !== width) {
44
- t2 = width && height && _jsxs(React.Fragment, {
45
- children: ["\xA0-\xA0", width, "x", height]
46
- });
47
- $[14] = height;
48
- $[15] = width;
49
- $[16] = t2;
50
- } else {
51
- t2 = $[16];
52
- }
53
- let t3;
54
- if ($[17] !== mimeType) {
55
- t3 = mimeType && _jsxs(React.Fragment, {
56
- children: ["\xA0-\xA0", mimeType]
57
- });
58
- $[17] = mimeType;
59
- $[18] = t3;
60
- } else {
61
- t3 = $[18];
62
- }
63
- t1 = _jsxs("div", {
64
- className: baseClass,
65
- children: [_jsxs("div", {
66
- className: `${baseClass}__url`,
67
- children: [openInDrawer && _jsx(DocumentDrawer, {}), _jsx("a", {
68
- href: fileURL,
69
- rel: "noopener noreferrer",
70
- target: "_blank",
71
- children: filename
72
- }), _jsx(CopyToClipboard, {
73
- defaultMessage: "Copy URL",
74
- value: fileURL
75
- }), openInDrawer && _jsxs(DocumentDrawerToggler, {
76
- className: `${baseClass}__edit`,
77
- onMouseEnter: () => setHovered(true),
78
- onMouseLeave: () => setHovered(false),
79
- children: [_jsx(EditIcon, {}), _jsx(Tooltip, {
80
- show: hovered,
81
- children: "Edit"
82
- })]
83
- })]
84
- }), _jsxs("div", {
85
- className: `${baseClass}__size-type`,
86
- children: [formatFilesize(filesize), t2, t3]
18
+ return /*#__PURE__*/_jsxs("div", {
19
+ className: baseClass,
20
+ children: [/*#__PURE__*/_jsxs("div", {
21
+ className: `${baseClass}__url`,
22
+ children: [/*#__PURE__*/_jsx("a", {
23
+ href: fileURL,
24
+ rel: "noopener noreferrer",
25
+ target: "_blank",
26
+ children: filename
27
+ }), /*#__PURE__*/_jsx(CopyToClipboard, {
28
+ defaultMessage: "Copy URL",
29
+ value: fileURL
87
30
  })]
88
- });
89
- $[3] = DocumentDrawer;
90
- $[4] = DocumentDrawerToggler;
91
- $[5] = fileURL;
92
- $[6] = filename;
93
- $[7] = filesize;
94
- $[8] = height;
95
- $[9] = hovered;
96
- $[10] = mimeType;
97
- $[11] = openInDrawer;
98
- $[12] = width;
99
- $[13] = t1;
100
- } else {
101
- t1 = $[13];
102
- }
103
- return t1;
31
+ }), /*#__PURE__*/_jsxs("div", {
32
+ className: `${baseClass}__size-type`,
33
+ children: [formatFilesize(filesize), typeof width === 'number' && typeof height === 'number' && /*#__PURE__*/_jsxs(React.Fragment, {
34
+ children: [" - ", width, "x", height]
35
+ }), mimeType && /*#__PURE__*/_jsxs(React.Fragment, {
36
+ children: [" - ", mimeType]
37
+ })]
38
+ })]
39
+ });
104
40
  };
105
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatFilesize","React","useState","EditIcon","CopyToClipboard","useDocumentDrawer","Tooltip","baseClass","FileMeta","props","$","id","collection","filename","filesize","height","mimeType","url","fileURL","width","hovered","setHovered","openInDrawer","Boolean","t0","collectionSlug","DocumentDrawer","DocumentDrawerToggler","t1","t2","_jsxs","Fragment","children","t3","className","_jsx","href","rel","target","defaultMessage","value","onMouseEnter","onMouseLeave","show"],"sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"sourcesContent":["'use client'\nimport { formatFilesize } from 'payload/shared'\nimport React, { useState } from 'react'\n\nexport type FileMetaProps = {\n collection?: string\n filename: string\n filesize: number\n height?: number\n id?: string\n mimeType: string\n sizes?: unknown\n url: string\n width?: number\n}\n\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { CopyToClipboard } from '../../CopyToClipboard/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-meta'\n\nexport const FileMeta: React.FC<FileMetaProps> = (props) => {\n const { id, collection, filename, filesize, height, mimeType, url: fileURL, width } = props\n\n const [hovered, setHovered] = useState(false)\n const openInDrawer = Boolean(id && collection)\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug: collection,\n })\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__url`}>\n {openInDrawer && <DocumentDrawer />}\n <a href={fileURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {filename}\n </a>\n <CopyToClipboard defaultMessage=\"Copy URL\" value={fileURL} />\n {openInDrawer && (\n <DocumentDrawerToggler\n className={`${baseClass}__edit`}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n <EditIcon />\n <Tooltip show={hovered}>Edit</Tooltip>\n </DocumentDrawerToggler>\n )}\n </div>\n <div className={`${baseClass}__size-type`}>\n {formatFilesize(filesize)}\n {width && height && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {width}x{height}\n </React.Fragment>\n )}\n {mimeType && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {mimeType}\n </React.Fragment>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatFilesize","React","CopyToClipboard","baseClass","FileMeta","props","filename","filesize","height","mimeType","url","fileURL","width","_jsxs","className","_jsx","href","rel","target","defaultMessage","value","Fragment"],"sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"sourcesContent":["'use client'\nimport { formatFilesize } from 'payload/shared'\nimport React from 'react'\n\nexport type FileMetaProps = {\n filename: string\n filesize: number\n height?: number\n mimeType: string\n sizes?: unknown\n url: string\n width?: number\n}\n\nimport { CopyToClipboard } from '../../CopyToClipboard/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-meta'\n\nexport const FileMeta: React.FC<FileMetaProps> = (props) => {\n const { filename, filesize, height, mimeType, url: fileURL, width } = props\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__url`}>\n <a href={fileURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {filename}\n </a>\n <CopyToClipboard defaultMessage=\"Copy URL\" value={fileURL} />\n </div>\n <div className={`${baseClass}__size-type`}>\n {formatFilesize(filesize)}\n {typeof width === 'number' && typeof height === 'number' && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {width}x{height}\n </React.Fragment>\n )}\n {mimeType && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {mimeType}\n </React.Fragment>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAYlB,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAAqCC,KAAA;EAChD,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,GAAA,EAAKC,OAAO;IAAEC;EAAK,CAAE,GAAGP,KAAA;EAEtE,oBACEQ,KAAA,CAAC;IAAIC,SAAA,EAAWX,SAAA;4BACdU,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGX,SAAA,OAAgB;8BACjCY,IAAA,CAAC;QAAEC,IAAA,EAAML,OAAA;QAASM,GAAA,EAAI;QAAsBC,MAAA,EAAO;kBAChDZ;uBAEHS,IAAA,CAACb,eAAA;QAAgBiB,cAAA,EAAe;QAAWC,KAAA,EAAOT;;qBAEpDE,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGX,SAAA,aAAsB;iBACtCH,cAAA,CAAeO,QAAA,GACf,OAAOK,KAAA,KAAU,YAAY,OAAOJ,MAAA,KAAW,yBAC9CK,KAAA,CAACZ,KAAA,CAAMoB,QAAQ;mBAAC,OAEbT,KAAA,EAAM,KAAEJ,MAAA;UAGZC,QAAA,iBACCI,KAAA,CAACZ,KAAA,CAAMoB,QAAQ;mBAAC,OAEbZ,QAAA;;;;AAMb","ignoreList":[]}
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import './index.scss';
3
3
  import type { Data, FileSizes, SanitizedCollectionConfig } from 'payload';
4
4
  export type StaticFileDetailsProps = {
5
- collectionSlug: string;
6
5
  customUploadActions?: React.ReactNode[];
7
6
  doc: {
8
7
  sizes?: FileSizes;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA2D9D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAwD9D,CAAA"}
@@ -10,7 +10,6 @@ import './index.scss';
10
10
  const baseClass = 'file-details';
11
11
  export const StaticFileDetails = props => {
12
12
  const {
13
- collectionSlug,
14
13
  customUploadActions,
15
14
  doc,
16
15
  enableAdjustments,
@@ -20,7 +19,6 @@ export const StaticFileDetails = props => {
20
19
  uploadConfig
21
20
  } = props;
22
21
  const {
23
- id,
24
22
  filename,
25
23
  filesize,
26
24
  height,
@@ -42,11 +40,9 @@ export const StaticFileDetails = props => {
42
40
  }), /*#__PURE__*/_jsxs("div", {
43
41
  className: `${baseClass}__main-detail`,
44
42
  children: [/*#__PURE__*/_jsx(FileMeta, {
45
- collection: collectionSlug,
46
43
  filename: filename,
47
44
  filesize: filesize,
48
45
  height: height,
49
- id: id,
50
46
  mimeType: mimeType,
51
47
  url: url,
52
48
  width: width
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Button","Thumbnail","UploadActions","FileMeta","baseClass","StaticFileDetails","props","collectionSlug","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","imageCacheTag","uploadConfig","id","filename","filesize","height","mimeType","thumbnailURL","url","width","_jsx","className","_jsxs","fileSrc","collection","customActions","Boolean","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { UploadActions } from '../../Upload/index.js'\nimport { FileMeta } from '../FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type StaticFileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const StaticFileDetails: React.FC<StaticFileDetailsProps> = (props) => {\n const {\n collectionSlug,\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { id, filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n return (\n <div className={baseClass}>\n <header>\n <Thumbnail\n // size=\"small\"\n className={`${baseClass}__thumbnail`}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n collection={collectionSlug}\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n id={id as string}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n {(enableAdjustments || customUploadActions) && (\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={Boolean(enableAdjustments)}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n )}\n </div>\n {handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAiBlB,OAAO,MAAMC,iBAAA,GAAuDC,KAAA;EAClE,MAAM;IACJC,cAAc;IACdC,mBAAmB;IACnBC,GAAG;IACHC,iBAAiB;IACjBC,YAAY;IACZC,aAAa;IACbC,aAAa;IACbC;EAAY,CACb,GAAGR,KAAA;EAEJ,MAAM;IAAES,EAAE;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC,GAAG;IAAEC;EAAK,CAAE,GAAGb,GAAA;EAE/E,oBACEc,IAAA,CAAC;IAAIC,SAAA,EAAWpB,SAAA;cACd,aAAAqB,KAAA,CAAC;8BACCF,IAAA,CAACtB,SAAA;QACC;QACAuB,SAAA,EAAW,GAAGpB,SAAA,aAAsB;QACpCK,GAAA,EAAKA,GAAA;QACLiB,OAAA,EAASN,YAAA,IAAgBC,GAAA;QACzBR,aAAA,EAAeA,aAAA;QACfC,YAAA,EAAcA;uBAEhBW,KAAA,CAAC;QAAID,SAAA,EAAW,GAAGpB,SAAA,eAAwB;gCACzCmB,IAAA,CAACpB,QAAA;UACCwB,UAAA,EAAYpB,cAAA;UACZS,QAAA,EAAUA,QAAA;UACVC,QAAA,EAAUA,QAAA;UACVC,MAAA,EAAQA,MAAA;UACRH,EAAA,EAAIA,EAAA;UACJI,QAAA,EAAUA,QAAA;UACVE,GAAA,EAAKA,GAAA;UACLC,KAAA,EAAOA;YAGP,CAAAZ,iBAAA,IAAqBF,mBAAkB,kBACvCe,IAAA,CAACrB,aAAA;UACC0B,aAAA,EAAepB,mBAAA;UACfE,iBAAA,EAAmBmB,OAAA,CAAQnB,iBAAA;UAC3BoB,kBAAA,EAAoBlB,aAAA,IAAiBH,GAAA,CAAIO,QAAQ;UACjDG,QAAA,EAAUA;;UAIfR,YAAA,iBACCY,IAAA,CAACvB,MAAA;QACC+B,WAAA,EAAY;QACZP,SAAA,EAAW,GAAGpB,SAAA,UAAmB;QACjC4B,IAAA,EAAK;QACLC,SAAA,EAAU;QACVC,OAAA,EAASvB,YAAA;QACTwB,KAAK;;;;AAMjB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","Button","Thumbnail","UploadActions","FileMeta","baseClass","StaticFileDetails","props","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","imageCacheTag","uploadConfig","filename","filesize","height","mimeType","thumbnailURL","url","width","_jsx","className","_jsxs","fileSrc","customActions","Boolean","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { UploadActions } from '../../Upload/index.js'\nimport { FileMeta } from '../FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type StaticFileDetailsProps = {\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const StaticFileDetails: React.FC<StaticFileDetailsProps> = (props) => {\n const {\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n return (\n <div className={baseClass}>\n <header>\n <Thumbnail\n // size=\"small\"\n className={`${baseClass}__thumbnail`}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n {(enableAdjustments || customUploadActions) && (\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={Boolean(enableAdjustments)}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n )}\n </div>\n {handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAgBlB,OAAO,MAAMC,iBAAA,GAAuDC,KAAA;EAClE,MAAM;IACJC,mBAAmB;IACnBC,GAAG;IACHC,iBAAiB;IACjBC,YAAY;IACZC,aAAa;IACbC,aAAa;IACbC;EAAY,CACb,GAAGP,KAAA;EAEJ,MAAM;IAAEQ,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC,GAAG;IAAEC;EAAK,CAAE,GAAGZ,GAAA;EAE3E,oBACEa,IAAA,CAAC;IAAIC,SAAA,EAAWlB,SAAA;cACd,aAAAmB,KAAA,CAAC;8BACCF,IAAA,CAACpB,SAAA;QACC;QACAqB,SAAA,EAAW,GAAGlB,SAAA,aAAsB;QACpCI,GAAA,EAAKA,GAAA;QACLgB,OAAA,EAASN,YAAA,IAAgBC,GAAA;QACzBP,aAAA,EAAeA,aAAA;QACfC,YAAA,EAAcA;uBAEhBU,KAAA,CAAC;QAAID,SAAA,EAAW,GAAGlB,SAAA,eAAwB;gCACzCiB,IAAA,CAAClB,QAAA;UACCW,QAAA,EAAUA,QAAA;UACVC,QAAA,EAAUA,QAAA;UACVC,MAAA,EAAQA,MAAA;UACRC,QAAA,EAAUA,QAAA;UACVE,GAAA,EAAKA,GAAA;UACLC,KAAA,EAAOA;YAGP,CAAAX,iBAAA,IAAqBF,mBAAkB,kBACvCc,IAAA,CAACnB,aAAA;UACCuB,aAAA,EAAelB,mBAAA;UACfE,iBAAA,EAAmBiB,OAAA,CAAQjB,iBAAA;UAC3BkB,kBAAA,EAAoBhB,aAAA,IAAiBH,GAAA,CAAIM,QAAQ;UACjDG,QAAA,EAAUA;;UAIfP,YAAA,iBACCW,IAAA,CAACrB,MAAA;QACC4B,WAAA,EAAY;QACZN,SAAA,EAAW,GAAGlB,SAAA,UAAmB;QACjCyB,IAAA,EAAK;QACLC,SAAA,EAAU;QACVC,OAAA,EAASrB,YAAA;QACTsB,KAAK;;;;AAMjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuMtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAmNtD,CAAA"}