@payloadcms/ui 3.12.0 → 3.12.1-canary.33ecab2

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 (43) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +1 -2
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +41 -90
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  8. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -1
  9. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  10. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  11. package/dist/elements/TableColumns/buildColumnState.js +1 -12
  12. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  13. package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -1
  14. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  15. package/dist/elements/WhereBuilder/Condition/index.js +261 -101
  16. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  17. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  18. package/dist/elements/WhereBuilder/index.js +13 -10
  19. package/dist/elements/WhereBuilder/index.js.map +1 -1
  20. package/dist/elements/WhereBuilder/reduceClientFields.d.ts.map +1 -1
  21. package/dist/elements/WhereBuilder/reduceClientFields.js +1 -0
  22. package/dist/elements/WhereBuilder/reduceClientFields.js.map +1 -1
  23. package/dist/exports/client/index.js +9 -9
  24. package/dist/exports/client/index.js.map +3 -3
  25. package/dist/fields/Code/index.d.ts +1 -0
  26. package/dist/fields/Code/index.d.ts.map +1 -1
  27. package/dist/fields/Code/index.js +2 -0
  28. package/dist/fields/Code/index.js.map +1 -1
  29. package/dist/providers/DocumentInfo/types.d.ts +0 -6
  30. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  31. package/dist/providers/DocumentInfo/types.js.map +1 -1
  32. package/dist/providers/ServerFunctions/index.d.ts +2 -1
  33. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  34. package/dist/providers/ServerFunctions/index.js.map +1 -1
  35. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  36. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +5 -3
  37. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  38. package/dist/utilities/renderTable.d.ts.map +1 -1
  39. package/dist/utilities/renderTable.js +35 -11
  40. package/dist/utilities/renderTable.js.map +1 -1
  41. package/dist/views/Edit/Auth/index.js +38 -35
  42. package/dist/views/Edit/Auth/index.js.map +1 -1
  43. 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,CA4QpC,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,CA2QpC,CAAA"}
@@ -51,7 +51,7 @@ export const Autosave = ({
51
51
  const submitted = useFormSubmitted();
52
52
  const versionsConfig = docConfig?.versions;
53
53
  const [fields] = useAllFormFields();
54
- const formModified = useFormModified();
54
+ const modified = useFormModified();
55
55
  const {
56
56
  code: locale
57
57
  } = useLocale();
@@ -65,7 +65,6 @@ export const Autosave = ({
65
65
  }
66
66
  const [saving, setSaving] = useState(false);
67
67
  const debouncedFields = useDebounce(fields, interval);
68
- const modified = useDebounce(formModified, interval);
69
68
  const fieldRef = useRef(fields);
70
69
  const modifiedRef = useRef(modified);
71
70
  const localeRef = useRef(locale);
@@ -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","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","debouncedFields","modified","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 formModified = 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 modified = useDebounce(formModified, 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","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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelector/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAgB,MAAM,OAAO,CAAA;AAWpC,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CAC3D,CAAA;AAQD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4D1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelector/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGxD,OAAO,KAAyB,MAAM,OAAO,CAAA;AAS7C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyD1C,CAAA"}
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import React, { useId } from 'react';
4
+ import { fieldIsHiddenOrDisabled, fieldIsID } from 'payload/shared';
5
+ import React, { useId, useMemo } from 'react';
6
6
  import { FieldLabel } from '../../fields/FieldLabel/index.js';
7
7
  import { PlusIcon } from '../../icons/Plus/index.js';
8
8
  import { XIcon } from '../../icons/X/index.js';
@@ -12,16 +12,9 @@ import { Pill } from '../Pill/index.js';
12
12
  import { useTableColumns } from '../TableColumns/index.js';
13
13
  import './index.scss';
14
14
  const baseClass = 'column-selector';
15
- const filterColumnFields = columns => {
16
- return columns.filter(c => {
17
- return !c?.field?.admin?.disableListColumn;
18
- });
19
- };
20
- export const ColumnSelector = t0 => {
21
- const $ = _c(14);
22
- const {
23
- collectionSlug
24
- } = t0;
15
+ export const ColumnSelector = ({
16
+ collectionSlug
17
+ }) => {
25
18
  const {
26
19
  columns,
27
20
  moveColumn,
@@ -29,86 +22,44 @@ export const ColumnSelector = t0 => {
29
22
  } = useTableColumns();
30
23
  const uuid = useId();
31
24
  const editDepth = useEditDepth();
25
+ const filteredColumns = useMemo(() => columns.filter(col => !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) && !col?.field?.admin?.disableListColumn), [columns]);
32
26
  if (!columns) {
33
27
  return null;
34
28
  }
35
- let t1;
36
- if ($[0] !== collectionSlug || $[1] !== columns || $[2] !== editDepth || $[3] !== moveColumn || $[4] !== toggleColumn || $[5] !== uuid) {
37
- const filteredColumns = filterColumnFields(columns);
38
- let t2;
39
- if ($[7] !== moveColumn) {
40
- t2 = t3 => {
41
- const {
42
- moveFromIndex,
43
- moveToIndex
44
- } = t3;
45
- moveColumn({
46
- fromIndex: moveFromIndex,
47
- toIndex: moveToIndex
48
- });
49
- };
50
- $[7] = moveColumn;
51
- $[8] = t2;
52
- } else {
53
- t2 = $[8];
54
- }
55
- let t3;
56
- if ($[9] !== collectionSlug || $[10] !== editDepth || $[11] !== toggleColumn || $[12] !== uuid) {
57
- t3 = (col_0, i) => {
58
- if (!col_0) {
59
- return null;
60
- }
61
- const {
62
- accessor,
63
- active,
64
- field
65
- } = col_0;
66
- if (col_0.accessor === "_select" || !field || col_0.CustomLabel === null || col_0.CustomLabel === undefined && !("label" in field)) {
67
- return null;
68
- }
69
- return _jsx(Pill, {
70
- alignIcon: "left",
71
- "aria-checked": active,
72
- className: [`${baseClass}__column`, active && `${baseClass}__column--active`].filter(Boolean).join(" "),
73
- draggable: true,
74
- icon: active ? _jsx(XIcon, {}) : _jsx(PlusIcon, {}),
75
- id: accessor,
76
- onClick: () => {
77
- toggleColumn(accessor);
78
- },
79
- children: col_0.CustomLabel ?? _jsx(FieldLabel, {
80
- label: "label" in field && field.label,
81
- unstyled: true
82
- })
83
- }, `${collectionSlug}-${field && "name" in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ""}${uuid}`);
84
- };
85
- $[9] = collectionSlug;
86
- $[10] = editDepth;
87
- $[11] = toggleColumn;
88
- $[12] = uuid;
89
- $[13] = t3;
90
- } else {
91
- t3 = $[13];
92
- }
93
- t1 = _jsx(DraggableSortable, {
94
- className: baseClass,
95
- ids: filteredColumns.map(_temp),
96
- onDragEnd: t2,
97
- children: filteredColumns.map(t3)
98
- });
99
- $[0] = collectionSlug;
100
- $[1] = columns;
101
- $[2] = editDepth;
102
- $[3] = moveColumn;
103
- $[4] = toggleColumn;
104
- $[5] = uuid;
105
- $[6] = t1;
106
- } else {
107
- t1 = $[6];
108
- }
109
- return t1;
29
+ return /*#__PURE__*/_jsx(DraggableSortable, {
30
+ className: baseClass,
31
+ ids: filteredColumns.map(col_0 => col_0?.accessor),
32
+ onDragEnd: ({
33
+ moveFromIndex,
34
+ moveToIndex
35
+ }) => {
36
+ void moveColumn({
37
+ fromIndex: moveFromIndex,
38
+ toIndex: moveToIndex
39
+ });
40
+ },
41
+ children: filteredColumns.map((col_1, i) => {
42
+ const {
43
+ accessor,
44
+ active,
45
+ field
46
+ } = col_1;
47
+ return /*#__PURE__*/_jsx(Pill, {
48
+ alignIcon: "left",
49
+ "aria-checked": active,
50
+ className: [`${baseClass}__column`, active && `${baseClass}__column--active`].filter(Boolean).join(' '),
51
+ draggable: true,
52
+ icon: active ? /*#__PURE__*/_jsx(XIcon, {}) : /*#__PURE__*/_jsx(PlusIcon, {}),
53
+ id: accessor,
54
+ onClick: () => {
55
+ void toggleColumn(accessor);
56
+ },
57
+ children: col_1.CustomLabel ?? /*#__PURE__*/_jsx(FieldLabel, {
58
+ label: field && 'label' in field && field.label,
59
+ unstyled: true
60
+ })
61
+ }, `${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`);
62
+ })
63
+ });
110
64
  };
111
- function _temp(col) {
112
- return col?.accessor;
113
- }
114
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useId","FieldLabel","PlusIcon","XIcon","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","filterColumnFields","columns","filter","field","admin","disableListColumn","ColumnSelector","t0","$","collectionSlug","moveColumn","toggleColumn","uuid","editDepth","t1","filteredColumns","t2","t3","moveFromIndex","moveToIndex","fromIndex","toIndex","col_0","i","col","accessor","active","CustomLabel","undefined","_jsx","alignIcon","className","Boolean","join","draggable","icon","id","onClick","children","label","unstyled","name","ids","map","_temp","onDragEnd"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nconst filterColumnFields = (columns: Column[]): Column[] => {\n return columns.filter((c) => {\n return !c?.field?.admin?.disableListColumn\n })\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n const filteredColumns = filterColumnFields(columns)\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n if (!col) {\n return null\n }\n\n const { accessor, active, field } = col\n\n if (\n col.accessor === '_select' ||\n !field ||\n col.CustomLabel === null ||\n (col.CustomLabel === undefined && !('label' in field))\n ) {\n return null\n }\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n >\n {col.CustomLabel ?? <FieldLabel label={'label' in field && field.label} unstyled />}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldIsHiddenOrDisabled","fieldIsID","React","useId","useMemo","FieldLabel","PlusIcon","XIcon","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","ColumnSelector","collectionSlug","columns","moveColumn","toggleColumn","uuid","editDepth","filteredColumns","filter","col","field","admin","disableListColumn","_jsx","className","ids","map","accessor","onDragEnd","moveFromIndex","moveToIndex","fromIndex","toIndex","i","active","alignIcon","Boolean","join","draggable","icon","id","onClick","CustomLabel","label","unstyled","name"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { fieldIsHiddenOrDisabled, fieldIsID } from 'payload/shared'\nimport React, { useId, useMemo } from 'react'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n const filteredColumns = useMemo(\n () =>\n columns.filter(\n (col) =>\n !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) &&\n !col?.field?.admin?.disableListColumn,\n ),\n [columns],\n )\n\n if (!columns) {\n return null\n }\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n const { accessor, active, field } = col\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n >\n {col.CustomLabel ?? (\n <FieldLabel label={field && 'label' in field && field.label} unstyled />\n )}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,uBAAuB,EAAEC,SAAS,QAAQ;AACnD,OAAOC,KAAA,IAASC,KAAK,EAAEC,OAAO,QAAQ;AAEtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,KAAK,QAAQ;AACtB,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,IAAI,QAAQ;AACrB,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAMlB,OAAO,MAAMC,cAAA,GAAkCA,CAAC;EAAEC;AAAc,CAAE;EAChE,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAY,CAAE,GAAGN,eAAA;EAE9C,MAAMO,IAAA,GAAOf,KAAA;EACb,MAAMgB,SAAA,GAAYX,YAAA;EAElB,MAAMY,eAAA,GAAkBhB,OAAA,CACtB,MACEW,OAAA,CAAQM,MAAM,CACXC,GAAA,IACC,EAAEtB,uBAAA,CAAwBsB,GAAA,CAAIC,KAAK,KAAK,CAACtB,SAAA,CAAUqB,GAAA,CAAIC,KAAK,MAC5D,CAACD,GAAA,EAAKC,KAAA,EAAOC,KAAA,EAAOC,iBAAA,GAE1B,CAACV,OAAA,CAAQ;EAGX,IAAI,CAACA,OAAA,EAAS;IACZ,OAAO;EACT;EAEA,oBACEW,IAAA,CAACjB,iBAAA;IACCkB,SAAA,EAAWf,SAAA;IACXgB,GAAA,EAAKR,eAAA,CAAgBS,GAAG,CAAEP,KAAA,IAAQA,KAAA,EAAKQ,QAAA;IACvCC,SAAA,EAAWA,CAAC;MAAEC,aAAa;MAAEC;IAAW,CAAE;MACxC,KAAKjB,UAAA,CAAW;QACdkB,SAAA,EAAWF,aAAA;QACXG,OAAA,EAASF;MACX;IACF;cAECb,eAAA,CAAgBS,GAAG,CAAC,CAACP,KAAA,EAAKc,CAAA;MACzB,MAAM;QAAEN,QAAQ;QAAEO,MAAM;QAAEd;MAAK,CAAE,GAAGD,KAAA;MAEpC,oBACEI,IAAA,CAAChB,IAAA;QACC4B,SAAA,EAAU;QACV,gBAAcD,MAAA;QACdV,SAAA,EAAW,CAAC,GAAGf,SAAA,UAAmB,EAAEyB,MAAA,IAAU,GAAGzB,SAAA,kBAA2B,CAAC,CAC1ES,MAAM,CAACkB,OAAA,EACPC,IAAI,CAAC;QACRC,SAAS;QACTC,IAAA,EAAML,MAAA,gBAASX,IAAA,CAACnB,KAAA,qBAAWmB,IAAA,CAACpB,QAAA;QAC5BqC,EAAA,EAAIb,QAAA;QAEJc,OAAA,EAASA,CAAA;UACP,KAAK3B,YAAA,CAAaa,QAAA;QACpB;kBAECR,KAAA,CAAIuB,WAAW,iBACdnB,IAAA,CAACrB,UAAA;UAAWyC,KAAA,EAAOvB,KAAA,IAAS,WAAWA,KAAA,IAASA,KAAA,CAAMuB,KAAK;UAAEC,QAAQ;;SANlE,GAAGjC,cAAA,IAAkBS,KAAA,IAAS,UAAUA,KAAA,GAAQA,KAAA,EAAOyB,IAAA,GAAOZ,CAAA,GAAIjB,SAAA,GAAY,IAAIA,SAAA,GAAY,GAAG,KAAKD,IAAA,EAAM;IAUvH;;AAGN","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkK/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqK/D,CAAA"}
@@ -6,6 +6,7 @@ import React, { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { toast } from 'sonner';
7
7
  import { LoadingOverlay } from '../../elements/Loading/index.js';
8
8
  import { useConfig } from '../../providers/Config/index.js';
9
+ import { useLocale } from '../../providers/Locale/index.js';
9
10
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
10
11
  import { useTranslation } from '../../providers/Translation/index.js';
11
12
  import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
@@ -31,6 +32,7 @@ export const DocumentDrawerContent = ({
31
32
  collections
32
33
  }
33
34
  } = useConfig();
35
+ const locale = useLocale();
34
36
  const [collectionConfig] = useState(() => collections.find(collection => collection.slug === collectionSlug));
35
37
  const abortGetDocumentViewRef = React.useRef(null);
36
38
  const {
@@ -56,6 +58,7 @@ export const DocumentDrawerContent = ({
56
58
  docID,
57
59
  drawerSlug,
58
60
  initialData,
61
+ locale,
59
62
  overrideEntityVisibility,
60
63
  redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,
61
64
  redirectAfterDuplicate: redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,
@@ -73,7 +76,7 @@ export const DocumentDrawerContent = ({
73
76
  abortGetDocumentViewRef.current = null;
74
77
  };
75
78
  void fetchDocumentView();
76
- }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, renderDocument, closeModal, overrideEntityVisibility, t]);
79
+ }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, renderDocument, closeModal, overrideEntityVisibility, t, locale]);
77
80
  const onSave = useCallback(args => {
78
81
  getDocumentView(args.doc.id);
79
82
  if (typeof onSaveFromProps === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","AfterFields","collectionSlug","disableActions","drawerSlug","Header","initialData","initialState","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","config","collections","collectionConfig","find","collection","slug","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasRenderedDocument","getDocumentView","docID","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n AfterFields,\n collectionSlug,\n disableActions,\n drawerSlug,\n Header,\n initialData,\n initialState,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const [collectionConfig] = useState(() =>\n collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasRenderedDocument = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n setIsLoading(true)\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n overrideEntityVisibility,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n closeModal,\n overrideEntityVisibility,\n t,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView()\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasRenderedDocument.current) {\n getDocumentView(existingDocID)\n hasRenderedDocument.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","AfterFields","collectionSlug","disableActions","drawerSlug","Header","initialData","initialState","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","config","collections","locale","collectionConfig","find","collection","slug","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasRenderedDocument","getDocumentView","docID","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n AfterFields,\n collectionSlug,\n disableActions,\n drawerSlug,\n Header,\n initialData,\n initialState,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() =>\n collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasRenderedDocument = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n setIsLoading(true)\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView()\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasRenderedDocument.current) {\n getDocumentView(existingDocID)\n hasRenderedDocument.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EAEtB,yBAAyB,EAGzB,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAYhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAkPnD,CAAA"}
1
+ {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EAEtB,yBAAyB,EAGzB,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAYhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAwOnD,CAAA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MissingEditorProp } from 'payload';
3
3
  import { deepCopyObjectSimple, fieldIsHiddenOrDisabled, fieldIsID, fieldIsPresentationalOnly, flattenTopLevelFields } from 'payload/shared';
4
4
  import React from 'react';
5
- import { RenderCustomComponent, RenderDefaultCell, SelectAll, SelectRow, SortColumn } from '../../exports/client/index.js';
5
+ import { RenderCustomComponent, RenderDefaultCell, SortColumn } from '../../exports/client/index.js';
6
6
  import { RenderServerComponent } from '../RenderServerComponent/index.js';
7
7
  import { filterFields } from './filterFields.js';
8
8
  export const buildColumnState = args => {
@@ -159,17 +159,6 @@ export const buildColumnState = args => {
159
159
  acc.push(column);
160
160
  return acc;
161
161
  }, []);
162
- if (enableRowSelections) {
163
- sorted?.unshift({
164
- accessor: '_select',
165
- active: true,
166
- field: null,
167
- Heading: /*#__PURE__*/_jsx(SelectAll, {}),
168
- renderedCells: docs.map((_, i) => /*#__PURE__*/_jsx(SelectRow, {
169
- rowData: docs[i]
170
- }, i))
171
- });
172
- }
173
162
  if (beforeRows) {
174
163
  sorted.unshift(...beforeRows);
175
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","deepCopyObjectSimple","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SelectAll","SelectRow","SortColumn","RenderServerComponent","filterFields","buildColumnState","args","beforeRows","clientCollectionConfig","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","fields","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","CustomLabel","Component","importMap","fieldAffectsDataSubFields","type","Heading","_jsx","disable","label","baseCellClientProps","cellData","rowData","serverProps","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","CustomCell","editor","Error","clientProps","CellComponent","Cell","CustomComponent","Fallback","columnIndex","_"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientField,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SelectAll,\n SelectRow,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFields(clientCollectionConfig.fields),\n true,\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFields(collectionConfig.fields),\n true,\n ) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n _field &&\n 'admin' in _field &&\n 'components' in _field.admin &&\n 'Label' in _field.admin.components &&\n _field.admin.components.Label !== undefined // let it return `null`\n ? _field.admin.components.Label\n : undefined\n\n const CustomLabel = CustomLabelToRender\n ? RenderServerComponent({ Component: CustomLabelToRender, importMap: payload.importMap })\n : undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionConfig: deepCopyObjectSimple(clientCollectionConfig),\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const serverProps: Pick<DefaultServerCellComponentProps, 'field' | 'i18n' | 'payload'> = {\n field: _field,\n i18n,\n payload,\n }\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps,\n })\n } else {\n CustomCell =\n _field?.admin && 'components' in _field.admin && _field.admin.components?.Cell\n ? RenderServerComponent({\n clientProps: cellClientProps,\n Component:\n _field?.admin &&\n 'components' in _field.admin &&\n _field.admin.components?.Cell,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted?.unshift({\n accessor: '_select',\n active: true,\n field: null,\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","deepCopyObjectSimple","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildColumnState","args","beforeRows","clientCollectionConfig","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","fields","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","CustomLabel","Component","importMap","fieldAffectsDataSubFields","type","Heading","_jsx","disable","label","baseCellClientProps","cellData","rowData","serverProps","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","CustomCell","editor","Error","clientProps","CellComponent","Cell","CustomComponent","Fallback","columnIndex"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientField,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SelectAll,\n SelectRow,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFields(clientCollectionConfig.fields),\n true,\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFields(collectionConfig.fields),\n true,\n ) as Field[] // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => fieldIsID(field))\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n _field &&\n 'admin' in _field &&\n 'components' in _field.admin &&\n 'Label' in _field.admin.components &&\n _field.admin.components.Label !== undefined // let it return `null`\n ? _field.admin.components.Label\n : undefined\n\n const CustomLabel = CustomLabelToRender\n ? RenderServerComponent({ Component: CustomLabelToRender, importMap: payload.importMap })\n : undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionConfig: deepCopyObjectSimple(clientCollectionConfig),\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const serverProps: Pick<DefaultServerCellComponentProps, 'field' | 'i18n' | 'payload'> = {\n field: _field,\n i18n,\n payload,\n }\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps,\n })\n } else {\n CustomCell =\n _field?.admin && 'components' in _field.admin && _field.admin.components?.Cell\n ? RenderServerComponent({\n clientProps: cellClientProps,\n Component:\n _field?.admin &&\n 'components' in _field.admin &&\n _field.admin.components?.Cell,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,9 +9,9 @@ export type Props = {
9
9
  }) => void;
10
10
  readonly andIndex: number;
11
11
  readonly fieldName: string;
12
- readonly fields: FieldCondition[];
13
12
  readonly initialValue: string;
14
13
  readonly operator: Operator;
14
+ readonly options: FieldCondition[];
15
15
  readonly orIndex: number;
16
16
  readonly removeCondition: ({ andIndex, orIndex }: {
17
17
  andIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;KACvB,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;CACX,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AASvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0JrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/WhereBuilder/Condition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,YAAY,EAAE,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAA;KACvB,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,eAAe,EAAE,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,GACN,EAAE;QACD,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;CACX,CAAA;AAED,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AASvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0JrC,CAAA"}