@payloadcms/ui 3.0.0-beta.7 → 3.0.0-canary.6041f49

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 (276) hide show
  1. package/dist/elements/ArrayAction/index.d.ts +1 -0
  2. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  3. package/dist/elements/ArrayAction/index.js +3 -3
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +15 -3
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  9. package/dist/elements/ColumnSelector/index.js +8 -2
  10. package/dist/elements/ColumnSelector/index.js.map +1 -1
  11. package/dist/elements/DocumentControls/index.js +1 -1
  12. package/dist/elements/DocumentControls/index.js.map +1 -1
  13. package/dist/elements/DocumentControls/index.scss +2 -2
  14. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  15. package/dist/elements/DocumentDrawer/DrawerContent.js +7 -7
  16. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  17. package/dist/elements/DocumentFields/index.js +1 -1
  18. package/dist/elements/DocumentFields/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/index.d.ts +2 -0
  23. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentHeader/Tabs/index.js +3 -2
  25. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -1
  28. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  29. package/dist/elements/DocumentHeader/index.d.ts +2 -0
  30. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentHeader/index.js +3 -2
  32. package/dist/elements/DocumentHeader/index.js.map +1 -1
  33. package/dist/elements/EditMany/index.js +2 -2
  34. package/dist/elements/EditMany/index.js.map +1 -1
  35. package/dist/elements/EditUpload/index.d.ts +12 -0
  36. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  37. package/dist/elements/EditUpload/index.js +25 -25
  38. package/dist/elements/EditUpload/index.js.map +1 -1
  39. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  40. package/dist/elements/FieldSelect/index.js +4 -1
  41. package/dist/elements/FieldSelect/index.js.map +1 -1
  42. package/dist/elements/HydrateClientUser/index.d.ts +2 -2
  43. package/dist/elements/HydrateClientUser/index.d.ts.map +1 -1
  44. package/dist/elements/HydrateClientUser/index.js.map +1 -1
  45. package/dist/elements/ListControls/index.d.ts.map +1 -1
  46. package/dist/elements/ListControls/index.js +16 -3
  47. package/dist/elements/ListControls/index.js.map +1 -1
  48. package/dist/elements/PublishMany/index.js +1 -1
  49. package/dist/elements/PublishMany/index.js.map +1 -1
  50. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  51. package/dist/elements/ReactSelect/index.js +4 -1
  52. package/dist/elements/ReactSelect/index.js.map +1 -1
  53. package/dist/elements/Save/index.d.ts.map +1 -1
  54. package/dist/elements/Save/index.js +7 -1
  55. package/dist/elements/Save/index.js.map +1 -1
  56. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  57. package/dist/elements/SaveDraft/index.js +8 -5
  58. package/dist/elements/SaveDraft/index.js.map +1 -1
  59. package/dist/elements/StayLoggedIn/index.d.ts +2 -4
  60. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  61. package/dist/elements/StayLoggedIn/index.js +7 -6
  62. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  63. package/dist/elements/StayLoggedIn/index.scss +1 -1
  64. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +6 -2
  66. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  69. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  70. package/dist/elements/Table/DefaultCell/index.js +1 -1
  71. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  72. package/dist/elements/Table/index.d.ts +1 -0
  73. package/dist/elements/Table/index.d.ts.map +1 -1
  74. package/dist/elements/Table/index.js.map +1 -1
  75. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  76. package/dist/elements/TableColumns/buildColumnState.js +7 -1
  77. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  78. package/dist/elements/Upload/index.d.ts.map +1 -1
  79. package/dist/elements/Upload/index.js +37 -1
  80. package/dist/elements/Upload/index.js.map +1 -1
  81. package/dist/elements/Upload/index.scss +12 -1
  82. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  83. package/dist/elements/WhereBuilder/reduceFieldMap.js +1 -0
  84. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  85. package/dist/{providers/ComponentMap/buildComponentMap/WithServerSideProps.d.ts → elements/WithServerSideProps/index.d.ts} +1 -1
  86. package/dist/elements/WithServerSideProps/index.d.ts.map +1 -0
  87. package/dist/{providers/ComponentMap/buildComponentMap/WithServerSideProps.js → elements/WithServerSideProps/index.js} +3 -3
  88. package/dist/elements/WithServerSideProps/index.js.map +1 -0
  89. package/dist/exports/elements.d.ts +3 -2
  90. package/dist/exports/elements.d.ts.map +1 -1
  91. package/dist/exports/elements.js +5 -2
  92. package/dist/exports/elements.js.map +1 -1
  93. package/dist/exports/fields.d.ts +2 -0
  94. package/dist/exports/fields.d.ts.map +1 -0
  95. package/dist/exports/fields.js +3 -0
  96. package/dist/exports/fields.js.map +1 -0
  97. package/dist/exports/providers.d.ts +2 -0
  98. package/dist/exports/providers.d.ts.map +1 -0
  99. package/dist/exports/providers.js +3 -0
  100. package/dist/exports/providers.js.map +1 -0
  101. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  102. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  103. package/dist/fields/Array/ArrayRow.js +4 -3
  104. package/dist/fields/Array/ArrayRow.js.map +1 -1
  105. package/dist/fields/Array/index.d.ts +1 -2
  106. package/dist/fields/Array/index.d.ts.map +1 -1
  107. package/dist/fields/Array/index.js +4 -3
  108. package/dist/fields/Array/index.js.map +1 -1
  109. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  110. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  111. package/dist/fields/Blocks/BlockRow.js +4 -3
  112. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  113. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  114. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  115. package/dist/fields/Blocks/RowActions.js +2 -1
  116. package/dist/fields/Blocks/RowActions.js.map +1 -1
  117. package/dist/fields/Blocks/index.d.ts +2 -2
  118. package/dist/fields/Blocks/index.d.ts.map +1 -1
  119. package/dist/fields/Blocks/index.js +3 -2
  120. package/dist/fields/Blocks/index.js.map +1 -1
  121. package/dist/fields/Checkbox/Input.d.ts +3 -3
  122. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  123. package/dist/fields/Checkbox/Input.js.map +1 -1
  124. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  125. package/dist/fields/Checkbox/index.js +3 -1
  126. package/dist/fields/Checkbox/index.js.map +1 -1
  127. package/dist/fields/Checkbox/types.d.ts +0 -2
  128. package/dist/fields/Checkbox/types.d.ts.map +1 -1
  129. package/dist/fields/Checkbox/types.js.map +1 -1
  130. package/dist/fields/Code/index.d.ts +1 -2
  131. package/dist/fields/Code/index.d.ts.map +1 -1
  132. package/dist/fields/Code/index.js.map +1 -1
  133. package/dist/fields/Collapsible/index.d.ts +0 -2
  134. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  135. package/dist/fields/Collapsible/index.js +2 -2
  136. package/dist/fields/Collapsible/index.js.map +1 -1
  137. package/dist/fields/ConfirmPassword/index.js +1 -1
  138. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  139. package/dist/fields/DateTime/index.d.ts +1 -2
  140. package/dist/fields/DateTime/index.d.ts.map +1 -1
  141. package/dist/fields/DateTime/index.js.map +1 -1
  142. package/dist/fields/Email/index.d.ts +1 -2
  143. package/dist/fields/Email/index.d.ts.map +1 -1
  144. package/dist/fields/Email/index.js.map +1 -1
  145. package/dist/fields/Group/index.d.ts +0 -2
  146. package/dist/fields/Group/index.d.ts.map +1 -1
  147. package/dist/fields/Group/index.js +3 -3
  148. package/dist/fields/Group/index.js.map +1 -1
  149. package/dist/fields/JSON/index.d.ts +2 -2
  150. package/dist/fields/JSON/index.d.ts.map +1 -1
  151. package/dist/fields/JSON/index.js +20 -1
  152. package/dist/fields/JSON/index.js.map +1 -1
  153. package/dist/fields/Number/index.d.ts +1 -2
  154. package/dist/fields/Number/index.d.ts.map +1 -1
  155. package/dist/fields/Number/index.js.map +1 -1
  156. package/dist/fields/Password/index.d.ts +0 -1
  157. package/dist/fields/Password/index.d.ts.map +1 -1
  158. package/dist/fields/Password/index.js.map +1 -1
  159. package/dist/fields/Point/index.d.ts +0 -2
  160. package/dist/fields/Point/index.d.ts.map +1 -1
  161. package/dist/fields/Point/index.js +2 -2
  162. package/dist/fields/Point/index.js.map +1 -1
  163. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  164. package/dist/fields/RadioGroup/Radio/index.js +3 -1
  165. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  166. package/dist/fields/RadioGroup/index.d.ts +1 -2
  167. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  168. package/dist/fields/RadioGroup/index.js.map +1 -1
  169. package/dist/fields/Relationship/types.d.ts +1 -2
  170. package/dist/fields/Relationship/types.d.ts.map +1 -1
  171. package/dist/fields/Relationship/types.js.map +1 -1
  172. package/dist/fields/RichText/index.d.ts +0 -2
  173. package/dist/fields/RichText/index.d.ts.map +1 -1
  174. package/dist/fields/RichText/index.js.map +1 -1
  175. package/dist/fields/Select/index.d.ts +1 -2
  176. package/dist/fields/Select/index.d.ts.map +1 -1
  177. package/dist/fields/Select/index.js.map +1 -1
  178. package/dist/fields/Text/index.d.ts.map +1 -1
  179. package/dist/fields/Text/index.js +2 -1
  180. package/dist/fields/Text/index.js.map +1 -1
  181. package/dist/fields/Text/types.d.ts +1 -2
  182. package/dist/fields/Text/types.d.ts.map +1 -1
  183. package/dist/fields/Text/types.js.map +1 -1
  184. package/dist/fields/Textarea/index.d.ts.map +1 -1
  185. package/dist/fields/Textarea/index.js +2 -1
  186. package/dist/fields/Textarea/index.js.map +1 -1
  187. package/dist/fields/Textarea/types.d.ts +1 -2
  188. package/dist/fields/Textarea/types.d.ts.map +1 -1
  189. package/dist/fields/Textarea/types.js.map +1 -1
  190. package/dist/fields/Upload/types.d.ts +0 -1
  191. package/dist/fields/Upload/types.d.ts.map +1 -1
  192. package/dist/fields/Upload/types.js.map +1 -1
  193. package/dist/fields/shared/index.d.ts +4 -2
  194. package/dist/fields/shared/index.d.ts.map +1 -1
  195. package/dist/fields/shared/index.js.map +1 -1
  196. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  197. package/dist/forms/FieldLabel/index.js +3 -1
  198. package/dist/forms/FieldLabel/index.js.map +1 -1
  199. package/dist/forms/FieldPropsProvider/index.d.ts +2 -0
  200. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  201. package/dist/forms/FieldPropsProvider/index.js +5 -3
  202. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  203. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  204. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  205. package/dist/forms/RenderFields/RenderField.js +2 -1
  206. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  207. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  208. package/dist/forms/RenderFields/index.js +2 -1
  209. package/dist/forms/RenderFields/index.js.map +1 -1
  210. package/dist/forms/RowLabel/types.d.ts +2 -3
  211. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  212. package/dist/forms/RowLabel/types.js +1 -4
  213. package/dist/forms/RowLabel/types.js.map +1 -1
  214. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +3 -5
  215. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  216. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +2 -1
  217. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  218. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +2 -2
  219. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
  220. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
  221. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +2 -2
  222. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  223. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
  224. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +2 -2
  225. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  226. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +1 -0
  227. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  228. package/dist/forms/buildStateFromSchema/index.d.ts +3 -5
  229. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  230. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  231. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +3 -5
  232. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  233. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  234. package/dist/forms/useField/index.d.ts.map +1 -1
  235. package/dist/forms/useField/index.js +3 -1
  236. package/dist/forms/useField/index.js.map +1 -1
  237. package/dist/graphics/Account/index.js +0 -9
  238. package/dist/graphics/Account/index.js.map +1 -1
  239. package/dist/providers/Auth/index.d.ts.map +1 -1
  240. package/dist/providers/Auth/index.js +2 -1
  241. package/dist/providers/Auth/index.js.map +1 -1
  242. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +1 -1
  243. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  244. package/dist/providers/ComponentMap/buildComponentMap/collections.js +16 -4
  245. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  246. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  247. package/dist/providers/ComponentMap/buildComponentMap/fields.js +52 -36
  248. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  249. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +1 -1
  250. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  251. package/dist/providers/ComponentMap/buildComponentMap/globals.js +16 -4
  252. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  253. package/dist/providers/ComponentMap/buildComponentMap/index.js +1 -1
  254. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  255. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +4 -0
  256. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  257. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  258. package/dist/providers/ComponentMap/index.d.ts +0 -1
  259. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  260. package/dist/providers/ComponentMap/index.js +0 -1
  261. package/dist/providers/ComponentMap/index.js.map +1 -1
  262. package/dist/providers/DocumentInfo/index.js +8 -7
  263. package/dist/providers/DocumentInfo/index.js.map +1 -1
  264. package/dist/providers/EntityVisibility/index.d.ts +1 -1
  265. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  266. package/dist/providers/EntityVisibility/index.js.map +1 -1
  267. package/dist/providers/Root/index.d.ts.map +1 -1
  268. package/dist/providers/Root/index.js +2 -1
  269. package/dist/providers/Root/index.js.map +1 -1
  270. package/dist/utilities/generateFieldID.d.ts +1 -1
  271. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  272. package/dist/utilities/generateFieldID.js +2 -2
  273. package/dist/utilities/generateFieldID.js.map +1 -1
  274. package/package.json +32 -31
  275. package/dist/providers/ComponentMap/buildComponentMap/WithServerSideProps.d.ts.map +0 -1
  276. package/dist/providers/ComponentMap/buildComponentMap/WithServerSideProps.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Permissions } from 'payload/auth'\nimport type { MeOperationResult } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport qs from 'qs'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => void\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n token?: string\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\nexport const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const { useModal } = facelessUIImport\n\n const { searchParams } = useSearchParams()\n const [user, setUser] = useState<ClientUser | null>()\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n // const { code } = useLocale()\n const code = 'en' // TODO: re-enable i18n asap\n\n const config = useConfig()\n\n const {\n admin: { autoLogin, inactivityRoute: logoutInactivityRoute, user: userSlug },\n routes: { admin, api },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>()\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(admin)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`)\n } else {\n router.replace(`${admin}${logoutInactivityRoute}`)\n }\n closeAllModals()\n }, [router, admin, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(async () => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n api,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, api, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${api}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, api, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(async () => {\n const params = {\n locale: code,\n }\n\n try {\n const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n }, [serverURL, api, i18n, code])\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else if (autoLogin && autoLogin.prefillOnly !== true) {\n // auto log-in with the provided autoLogin credentials. This is used in dev mode\n // so you don't have to log in over and over again\n const autoLoginResult = await requests.post(`${serverURL}${api}/${userSlug}/login`, {\n body: JSON.stringify({\n email: autoLogin.email,\n password: autoLogin.password,\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n if (autoLoginResult.status === 200) {\n const autoLoginJson = await autoLoginResult.json()\n setUser(autoLoginJson.user)\n if (autoLoginJson?.token) {\n setTokenAndExpiration(autoLoginJson)\n }\n router.replace(\n typeof searchParams['redirect'] === 'string' ? searchParams['redirect'] : admin,\n )\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [\n serverURL,\n api,\n userSlug,\n i18n.language,\n autoLogin,\n setTokenAndExpiration,\n router,\n searchParams,\n admin,\n revokeTokenAndExpire,\n ])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal('stay-logged-in')\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"names":["facelessUIImport","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","useDebounce","useTranslation","requests","useConfig","useSearchParams","Context","maxTimeoutTime","AuthProvider","children","useModal","searchParams","user","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","code","config","admin","autoLogin","inactivityRoute","logoutInactivityRoute","userSlug","routes","api","serverURL","permissions","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","params","locale","get","stringify","Error","fetchFullUser","prefillOnly","autoLoginResult","body","JSON","email","password","autoLoginJson","reminder","max","min","clearTimeout","forceLogOut","Provider","value","useAuth"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Permissions } from 'payload/auth'\nimport type { MeOperationResult } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { stayLoggedInModalSlug } from '@payloadcms/ui/elements/StayLoggedIn'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport qs from 'qs'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => void\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n token?: string\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\nexport const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const { useModal } = facelessUIImport\n\n const { searchParams } = useSearchParams()\n const [user, setUser] = useState<ClientUser | null>()\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n // const { code } = useLocale()\n const code = 'en' // TODO: re-enable i18n asap\n\n const config = useConfig()\n\n const {\n admin: { autoLogin, inactivityRoute: logoutInactivityRoute, user: userSlug },\n routes: { admin, api },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>()\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(admin)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`)\n } else {\n router.replace(`${admin}${logoutInactivityRoute}`)\n }\n closeAllModals()\n }, [router, admin, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(async () => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n api,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, api, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${api}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, api, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(async () => {\n const params = {\n locale: code,\n }\n\n try {\n const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n }, [serverURL, api, i18n, code])\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else if (autoLogin && autoLogin.prefillOnly !== true) {\n // auto log-in with the provided autoLogin credentials. This is used in dev mode\n // so you don't have to log in over and over again\n const autoLoginResult = await requests.post(`${serverURL}${api}/${userSlug}/login`, {\n body: JSON.stringify({\n email: autoLogin.email,\n password: autoLogin.password,\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n if (autoLoginResult.status === 200) {\n const autoLoginJson = await autoLoginResult.json()\n setUser(autoLoginJson.user)\n if (autoLoginJson?.token) {\n setTokenAndExpiration(autoLoginJson)\n }\n router.replace(\n typeof searchParams['redirect'] === 'string' ? searchParams['redirect'] : admin,\n )\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [\n serverURL,\n api,\n userSlug,\n i18n.language,\n autoLogin,\n setTokenAndExpiration,\n router,\n searchParams,\n admin,\n revokeTokenAndExpire,\n ])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"names":["facelessUIImport","stayLoggedInModalSlug","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","useDebounce","useTranslation","requests","useConfig","useSearchParams","Context","maxTimeoutTime","AuthProvider","children","useModal","searchParams","user","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","code","config","admin","autoLogin","inactivityRoute","logoutInactivityRoute","userSlug","routes","api","serverURL","permissions","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","params","locale","get","stringify","Error","fetchFullUser","prefillOnly","autoLoginResult","body","JSON","email","password","autoLoginJson","reminder","max","min","clearTimeout","forceLogOut","Provider","value","useAuth"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -2,7 +2,7 @@ import type { I18n } from '@payloadcms/translations';
2
2
  import type { AdminViewProps, EditViewProps, SanitizedCollectionConfig, SanitizedConfig, WithServerSideProps as WithServerSidePropsType } from 'payload/types';
3
3
  import React from 'react';
4
4
  import type { CollectionComponentMap } from './types.js';
5
- export declare const mapCollections: ({ DefaultEditView, DefaultListView, WithServerSideProps, collections, config, i18n, readOnly: readOnlyOverride, }: {
5
+ export declare const mapCollections: (args: {
6
6
  DefaultEditView: React.FC<EditViewProps>;
7
7
  DefaultListView: React.FC<AdminViewProps>;
8
8
  WithServerSideProps: WithServerSidePropsType;
@@ -1 +1 @@
1
- {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAGb,yBAAyB,EACzB,eAAe,EACf,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,eAAe,CAAA;AAItB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAKxD,eAAO,MAAM,cAAc,sHAQxB;IACD,eAAe,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,mBAAmB,EAAE,uBAAuB,CAAA;IAC5C,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAG;IACF,CAAC,GAAG,EAAE,yBAAyB,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAA;CAsJ1D,CAAA"}
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,yBAAyB,EACzB,eAAe,EACf,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,eAAe,CAAA;AAGtB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAKxD,eAAO,MAAM,cAAc,SAAU;IACnC,eAAe,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,mBAAmB,EAAE,uBAAuB,CAAA;IAC5C,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAG;IACF,CAAC,GAAG,EAAE,yBAAyB,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAA;CAiKjE,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import { ViewDescription } from '@payloadcms/ui/elements/ViewDescription';
2
- import { isPlainFunction, isReactComponent } from 'payload/utilities';
3
2
  import React from 'react';
4
3
  import { mapActions } from './actions.js';
5
4
  import { mapFields } from './fields.js';
6
- export const mapCollections = ({ DefaultEditView, DefaultListView, WithServerSideProps, collections, config, i18n, readOnly: readOnlyOverride })=>collections.reduce((acc, collectionConfig)=>{
5
+ export const mapCollections = (args)=>{
6
+ const { DefaultEditView, DefaultListView, WithServerSideProps, collections, config, i18n, i18n: { t }, readOnly: readOnlyOverride } = args;
7
+ return collections.reduce((acc, collectionConfig)=>{
7
8
  const { slug, fields } = collectionConfig;
8
9
  const internalCollections = [
9
10
  'payload-preferences',
@@ -50,10 +51,20 @@ export const mapCollections = ({ DefaultEditView, DefaultListView, WithServerSid
50
51
  const AfterListTable = afterListTable && Array.isArray(afterListTable) && afterListTable?.map((Component)=>/*#__PURE__*/ React.createElement(WithServerSideProps, {
51
52
  Component: Component
52
53
  })) || null;
54
+ let description = undefined;
55
+ if (collectionConfig.admin && 'description' in collectionConfig.admin) {
56
+ if (typeof collectionConfig.admin?.description === 'string' || typeof collectionConfig.admin?.description === 'object') {
57
+ description = collectionConfig.admin.description;
58
+ } else if (typeof collectionConfig.admin?.description === 'function') {
59
+ description = collectionConfig.admin?.description({
60
+ t
61
+ });
62
+ }
63
+ }
53
64
  const descriptionProps = {
54
- description: collectionConfig.admin && 'description' in collectionConfig.admin && ((typeof collectionConfig.admin?.description === 'string' || typeof collectionConfig.admin?.description === 'object') && collectionConfig.admin.description || typeof collectionConfig.admin?.description === 'function' && isPlainFunction(collectionConfig.admin?.description) && collectionConfig.admin?.description()) || undefined
65
+ description
55
66
  };
56
- const DescriptionComponent = collectionConfig.admin && 'description' in collectionConfig.admin && (isReactComponent(collectionConfig.admin.description) && collectionConfig.admin.description || collectionConfig.admin.description && ViewDescription) || undefined;
67
+ const DescriptionComponent = collectionConfig.admin?.components?.edit?.Description || (description ? ViewDescription : undefined);
57
68
  const Description = DescriptionComponent !== undefined ? /*#__PURE__*/ React.createElement(WithServerSideProps, {
58
69
  Component: DescriptionComponent,
59
70
  ...descriptionProps || {}
@@ -92,5 +103,6 @@ export const mapCollections = ({ DefaultEditView, DefaultListView, WithServerSid
92
103
  [slug]: componentMap
93
104
  };
94
105
  }, {});
106
+ };
95
107
 
96
108
  //# sourceMappingURL=collections.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/providers/ComponentMap/buildComponentMap/collections.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { ViewDescriptionProps } from '@payloadcms/ui/elements/ViewDescription'\nimport type {\n AdminViewProps,\n EditViewProps,\n EntityDescriptionComponent,\n EntityDescriptionFunction,\n SanitizedCollectionConfig,\n SanitizedConfig,\n WithServerSideProps as WithServerSidePropsType,\n} from 'payload/types'\n\nimport { ViewDescription } from '@payloadcms/ui/elements/ViewDescription'\nimport { isPlainFunction, isReactComponent } from 'payload/utilities'\nimport React from 'react'\n\nimport type { CollectionComponentMap } from './types.js'\n\nimport { mapActions } from './actions.js'\nimport { mapFields } from './fields.js'\n\nexport const mapCollections = ({\n DefaultEditView,\n DefaultListView,\n WithServerSideProps,\n collections,\n config,\n i18n,\n readOnly: readOnlyOverride,\n}: {\n DefaultEditView: React.FC<EditViewProps>\n DefaultListView: React.FC<AdminViewProps>\n WithServerSideProps: WithServerSidePropsType\n collections: SanitizedCollectionConfig[]\n config: SanitizedConfig\n i18n: I18n\n readOnly?: boolean\n}): {\n [key: SanitizedCollectionConfig['slug']]: CollectionComponentMap\n} =>\n collections.reduce((acc, collectionConfig) => {\n const { slug, fields } = collectionConfig\n\n const internalCollections = ['payload-preferences', 'payload-migrations']\n\n if (internalCollections.includes(slug)) {\n return acc\n }\n\n const editViewFromConfig = collectionConfig?.admin?.components?.views?.Edit\n\n const listViewFromConfig = collectionConfig?.admin?.components?.views?.List\n\n const CustomEditView =\n typeof editViewFromConfig === 'function'\n ? editViewFromConfig\n : typeof editViewFromConfig === 'object' && typeof editViewFromConfig.Default === 'function'\n ? editViewFromConfig.Default\n : typeof editViewFromConfig?.Default === 'object' &&\n 'Component' in editViewFromConfig.Default &&\n typeof editViewFromConfig.Default.Component === 'function'\n ? (editViewFromConfig.Default.Component as React.FC<EditViewProps>)\n : undefined\n\n const CustomListView =\n typeof listViewFromConfig === 'function'\n ? listViewFromConfig\n : typeof listViewFromConfig === 'object' &&\n typeof listViewFromConfig.Component === 'function'\n ? listViewFromConfig.Component\n : undefined\n\n const Edit = (CustomEditView as React.FC<EditViewProps>) || DefaultEditView\n\n const List = CustomListView || DefaultListView\n\n const SaveButtonComponent = collectionConfig?.admin?.components?.edit?.SaveButton\n\n const SaveButton = SaveButtonComponent ? (\n <WithServerSideProps Component={SaveButtonComponent} />\n ) : undefined\n\n const SaveDraftButtonComponent = collectionConfig?.admin?.components?.edit?.SaveDraftButton\n\n const SaveDraftButton = SaveDraftButtonComponent ? (\n <WithServerSideProps Component={SaveDraftButtonComponent} />\n ) : undefined\n\n const PreviewButtonComponent = collectionConfig?.admin?.components?.edit?.PreviewButton\n\n const PreviewButton = PreviewButtonComponent ? (\n <WithServerSideProps Component={PreviewButtonComponent} />\n ) : undefined\n\n const PublishButtonComponent = collectionConfig?.admin?.components?.edit?.PublishButton\n\n const PublishButton = PublishButtonComponent ? (\n <WithServerSideProps Component={PublishButtonComponent} />\n ) : undefined\n\n const beforeList = collectionConfig?.admin?.components?.BeforeList\n\n const BeforeList =\n (beforeList &&\n Array.isArray(beforeList) &&\n beforeList?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const beforeListTable = collectionConfig?.admin?.components?.BeforeListTable\n\n const BeforeListTable =\n (beforeListTable &&\n Array.isArray(beforeListTable) &&\n beforeListTable?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const afterList = collectionConfig?.admin?.components?.AfterList\n\n const AfterList =\n (afterList &&\n Array.isArray(afterList) &&\n afterList?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const afterListTable = collectionConfig?.admin?.components?.AfterListTable\n\n const AfterListTable =\n (afterListTable &&\n Array.isArray(afterListTable) &&\n afterListTable?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const descriptionProps: ViewDescriptionProps = {\n description:\n (collectionConfig.admin &&\n 'description' in collectionConfig.admin &&\n (((typeof collectionConfig.admin?.description === 'string' ||\n typeof collectionConfig.admin?.description === 'object') &&\n collectionConfig.admin.description) ||\n (typeof collectionConfig.admin?.description === 'function' &&\n isPlainFunction<EntityDescriptionFunction>(collectionConfig.admin?.description) &&\n collectionConfig.admin?.description()))) ||\n undefined,\n }\n\n const DescriptionComponent =\n (collectionConfig.admin &&\n 'description' in collectionConfig.admin &&\n ((isReactComponent<EntityDescriptionComponent>(collectionConfig.admin.description) &&\n collectionConfig.admin.description) ||\n (collectionConfig.admin.description && ViewDescription))) ||\n undefined\n\n const Description =\n DescriptionComponent !== undefined ? (\n <WithServerSideProps Component={DescriptionComponent} {...(descriptionProps || {})} />\n ) : undefined\n\n const componentMap: CollectionComponentMap = {\n AfterList,\n AfterListTable,\n BeforeList,\n BeforeListTable,\n Description,\n Edit: <Edit collectionSlug={collectionConfig.slug} />,\n List: <List collectionSlug={collectionConfig.slug} />,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n actionsMap: mapActions({\n WithServerSideProps,\n collectionConfig,\n }),\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n fieldSchema: fields,\n i18n,\n readOnly: readOnlyOverride,\n }),\n isPreviewEnabled: !!collectionConfig?.admin?.preview,\n }\n\n return {\n ...acc,\n [slug]: componentMap,\n }\n }, {})\n"],"names":["ViewDescription","isPlainFunction","isReactComponent","React","mapActions","mapFields","mapCollections","DefaultEditView","DefaultListView","WithServerSideProps","collections","config","i18n","readOnly","readOnlyOverride","reduce","acc","collectionConfig","slug","fields","internalCollections","includes","editViewFromConfig","admin","components","views","Edit","listViewFromConfig","List","CustomEditView","Default","Component","undefined","CustomListView","SaveButtonComponent","edit","SaveButton","SaveDraftButtonComponent","SaveDraftButton","PreviewButtonComponent","PreviewButton","PublishButtonComponent","PublishButton","beforeList","BeforeList","Array","isArray","map","beforeListTable","BeforeListTable","afterList","AfterList","afterListTable","AfterListTable","descriptionProps","description","DescriptionComponent","Description","componentMap","collectionSlug","actionsMap","fieldMap","fieldSchema","isPreviewEnabled","preview"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/providers/ComponentMap/buildComponentMap/collections.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { ViewDescriptionProps } from '@payloadcms/ui/elements/ViewDescription'\nimport type {\n AdminViewProps,\n EditViewProps,\n SanitizedCollectionConfig,\n SanitizedConfig,\n WithServerSideProps as WithServerSidePropsType,\n} from 'payload/types'\n\nimport { ViewDescription } from '@payloadcms/ui/elements/ViewDescription'\nimport React from 'react'\n\nimport type { CollectionComponentMap } from './types.js'\n\nimport { mapActions } from './actions.js'\nimport { mapFields } from './fields.js'\n\nexport const mapCollections = (args: {\n DefaultEditView: React.FC<EditViewProps>\n DefaultListView: React.FC<AdminViewProps>\n WithServerSideProps: WithServerSidePropsType\n collections: SanitizedCollectionConfig[]\n config: SanitizedConfig\n i18n: I18n\n readOnly?: boolean\n}): {\n [key: SanitizedCollectionConfig['slug']]: CollectionComponentMap\n} => {\n const {\n DefaultEditView,\n DefaultListView,\n WithServerSideProps,\n collections,\n config,\n i18n,\n i18n: { t },\n readOnly: readOnlyOverride,\n } = args\n\n return collections.reduce((acc, collectionConfig) => {\n const { slug, fields } = collectionConfig\n\n const internalCollections = ['payload-preferences', 'payload-migrations']\n\n if (internalCollections.includes(slug)) {\n return acc\n }\n\n const editViewFromConfig = collectionConfig?.admin?.components?.views?.Edit\n\n const listViewFromConfig = collectionConfig?.admin?.components?.views?.List\n\n const CustomEditView =\n typeof editViewFromConfig === 'function'\n ? editViewFromConfig\n : typeof editViewFromConfig === 'object' && typeof editViewFromConfig.Default === 'function'\n ? editViewFromConfig.Default\n : typeof editViewFromConfig?.Default === 'object' &&\n 'Component' in editViewFromConfig.Default &&\n typeof editViewFromConfig.Default.Component === 'function'\n ? (editViewFromConfig.Default.Component as React.FC<EditViewProps>)\n : undefined\n\n const CustomListView =\n typeof listViewFromConfig === 'function'\n ? listViewFromConfig\n : typeof listViewFromConfig === 'object' &&\n typeof listViewFromConfig.Component === 'function'\n ? listViewFromConfig.Component\n : undefined\n\n const Edit = (CustomEditView as React.FC<EditViewProps>) || DefaultEditView\n\n const List = CustomListView || DefaultListView\n\n const SaveButtonComponent = collectionConfig?.admin?.components?.edit?.SaveButton\n\n const SaveButton = SaveButtonComponent ? (\n <WithServerSideProps Component={SaveButtonComponent} />\n ) : undefined\n\n const SaveDraftButtonComponent = collectionConfig?.admin?.components?.edit?.SaveDraftButton\n\n const SaveDraftButton = SaveDraftButtonComponent ? (\n <WithServerSideProps Component={SaveDraftButtonComponent} />\n ) : undefined\n\n const PreviewButtonComponent = collectionConfig?.admin?.components?.edit?.PreviewButton\n\n const PreviewButton = PreviewButtonComponent ? (\n <WithServerSideProps Component={PreviewButtonComponent} />\n ) : undefined\n\n const PublishButtonComponent = collectionConfig?.admin?.components?.edit?.PublishButton\n\n const PublishButton = PublishButtonComponent ? (\n <WithServerSideProps Component={PublishButtonComponent} />\n ) : undefined\n\n const beforeList = collectionConfig?.admin?.components?.BeforeList\n\n const BeforeList =\n (beforeList &&\n Array.isArray(beforeList) &&\n beforeList?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const beforeListTable = collectionConfig?.admin?.components?.BeforeListTable\n\n const BeforeListTable =\n (beforeListTable &&\n Array.isArray(beforeListTable) &&\n beforeListTable?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const afterList = collectionConfig?.admin?.components?.AfterList\n\n const AfterList =\n (afterList &&\n Array.isArray(afterList) &&\n afterList?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n const afterListTable = collectionConfig?.admin?.components?.AfterListTable\n\n const AfterListTable =\n (afterListTable &&\n Array.isArray(afterListTable) &&\n afterListTable?.map((Component) => <WithServerSideProps Component={Component} />)) ||\n null\n\n let description = undefined\n if (collectionConfig.admin && 'description' in collectionConfig.admin) {\n if (\n typeof collectionConfig.admin?.description === 'string' ||\n typeof collectionConfig.admin?.description === 'object'\n ) {\n description = collectionConfig.admin.description\n } else if (typeof collectionConfig.admin?.description === 'function') {\n description = collectionConfig.admin?.description({ t })\n }\n }\n\n const descriptionProps: ViewDescriptionProps = {\n description,\n }\n\n const DescriptionComponent =\n collectionConfig.admin?.components?.edit?.Description ||\n (description ? ViewDescription : undefined)\n\n const Description =\n DescriptionComponent !== undefined ? (\n <WithServerSideProps Component={DescriptionComponent} {...(descriptionProps || {})} />\n ) : undefined\n\n const componentMap: CollectionComponentMap = {\n AfterList,\n AfterListTable,\n BeforeList,\n BeforeListTable,\n Description,\n Edit: <Edit collectionSlug={collectionConfig.slug} />,\n List: <List collectionSlug={collectionConfig.slug} />,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n actionsMap: mapActions({\n WithServerSideProps,\n collectionConfig,\n }),\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n fieldSchema: fields,\n i18n,\n readOnly: readOnlyOverride,\n }),\n isPreviewEnabled: !!collectionConfig?.admin?.preview,\n }\n\n return {\n ...acc,\n [slug]: componentMap,\n }\n }, {})\n}\n"],"names":["ViewDescription","React","mapActions","mapFields","mapCollections","args","DefaultEditView","DefaultListView","WithServerSideProps","collections","config","i18n","t","readOnly","readOnlyOverride","reduce","acc","collectionConfig","slug","fields","internalCollections","includes","editViewFromConfig","admin","components","views","Edit","listViewFromConfig","List","CustomEditView","Default","Component","undefined","CustomListView","SaveButtonComponent","edit","SaveButton","SaveDraftButtonComponent","SaveDraftButton","PreviewButtonComponent","PreviewButton","PublishButtonComponent","PublishButton","beforeList","BeforeList","Array","isArray","map","beforeListTable","BeforeListTable","afterList","AfterList","afterListTable","AfterListTable","description","descriptionProps","DescriptionComponent","Description","componentMap","collectionSlug","actionsMap","fieldMap","fieldSchema","isPreviewEnabled","preview"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EAIV,KAAK,EAGL,aAAa,EAIb,eAAe,EACf,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,eAAe,CAAA;AAiCtB,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;AAInB,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,uBAAuB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,aA6tBA,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EAEV,KAAK,EAEL,aAAa,EAGb,eAAe,EACf,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,eAAe,CAAA;AA2BtB,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;AAInB,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,uBAAuB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,aAuuBA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { FieldDescription } from '@payloadcms/ui/forms/FieldDescription';
2
2
  import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types';
3
- import { isPlainFunction, isReactComponent } from 'payload/utilities';
4
3
  import React, { Fragment } from 'react';
5
4
  import { HiddenInput } from '../../../fields/HiddenInput/index.js';
6
5
  export const mapFields = (args)=>{
@@ -27,21 +26,45 @@ export const mapFields = (args)=>{
27
26
  Component: Component,
28
27
  key: i
29
28
  }))) || null;
29
+ let label = undefined;
30
+ if ('label' in field) {
31
+ if (typeof field.label === 'string' || typeof field.label === 'object') {
32
+ label = field.label;
33
+ } else if (typeof field.label === 'function') {
34
+ label = field.label({
35
+ t
36
+ });
37
+ }
38
+ }
30
39
  const labelProps = {
31
- label: 'label' in field && !isPlainFunction(field.label) && !isReactComponent(field.label) ? field.label : undefined,
40
+ label,
32
41
  required: 'required' in field ? field.required : undefined
33
42
  };
34
43
  const CustomLabelComponent = 'admin' in field && field.admin?.components && 'Label' in field.admin.components && field.admin.components?.Label || undefined;
44
+ // If we return undefined here (so if no CUSTOM label component is set), the field client component is responsible for falling back to the default label
35
45
  const CustomLabel = CustomLabelComponent !== undefined ? /*#__PURE__*/ React.createElement(WithServerSideProps, {
36
46
  Component: CustomLabelComponent,
37
47
  ...labelProps || {}
38
48
  }) : undefined;
49
+ let description = undefined;
50
+ if (field.admin && 'description' in field.admin) {
51
+ if (typeof field.admin?.description === 'string' || typeof field.admin?.description === 'object') {
52
+ description = field.admin.description;
53
+ } else if (typeof field.admin?.description === 'function') {
54
+ description = field.admin?.description({
55
+ t
56
+ });
57
+ }
58
+ }
39
59
  const descriptionProps = {
40
- description: field.admin && 'description' in field.admin && ((typeof field.admin?.description === 'string' || typeof field.admin?.description === 'object') && field.admin.description || typeof field.admin?.description === 'function' && isPlainFunction(field.admin?.description) && field.admin?.description({
41
- t
42
- })) || undefined
60
+ description
43
61
  };
44
- const CustomDescriptionComponent = field.admin && 'description' in field.admin && (isReactComponent(field.admin.description) && field.admin.description || field.admin.description && FieldDescription) || undefined;
62
+ let CustomDescriptionComponent = undefined;
63
+ if (field.admin?.components && 'Description' in field.admin.components && field.admin.components?.Description) {
64
+ CustomDescriptionComponent = field.admin.components.Description;
65
+ } else if (description) {
66
+ CustomDescriptionComponent = FieldDescription;
67
+ }
45
68
  const CustomDescription = CustomDescriptionComponent !== undefined ? /*#__PURE__*/ React.createElement(WithServerSideProps, {
46
69
  Component: CustomDescriptionComponent,
47
70
  ...descriptionProps || {}
@@ -54,16 +77,18 @@ export const mapFields = (args)=>{
54
77
  Component: CustomErrorComponent,
55
78
  ...errorProps || {}
56
79
  }) : undefined;
80
+ // These fields are shared across all field types even if they are not used in the default field, as the custom field component can use them
57
81
  const baseFieldProps = {
58
82
  AfterInput,
59
83
  BeforeInput,
60
84
  CustomDescription,
61
85
  CustomError,
62
86
  CustomLabel,
87
+ custom: 'admin' in field && 'custom' in field.admin ? field.admin?.custom : undefined,
63
88
  descriptionProps,
64
89
  disabled: 'admin' in field && 'disabled' in field.admin ? field.admin?.disabled : false,
65
90
  errorProps,
66
- labelProps,
91
+ label: labelProps?.label,
67
92
  path,
68
93
  required: 'required' in field ? field.required : undefined
69
94
  };
@@ -74,7 +99,7 @@ export const mapFields = (args)=>{
74
99
  if (typeof option === 'object' && typeof option.label === 'function') {
75
100
  return {
76
101
  label: option.label({
77
- t: i18n.t
102
+ t
78
103
  }),
79
104
  value: option.value
80
105
  };
@@ -86,7 +111,7 @@ export const mapFields = (args)=>{
86
111
  name: 'name' in field ? field.name : undefined,
87
112
  fieldType: field.type,
88
113
  isFieldAffectingData,
89
- label: 'label' in field && field.label && typeof field.label !== 'function' ? field.label : undefined,
114
+ label: labelProps?.label || undefined,
90
115
  labels: 'labels' in field ? field.labels : undefined,
91
116
  options: 'options' in field ? fieldOptions : undefined,
92
117
  relationTo: 'relationTo' in field ? field.relationTo : undefined
@@ -95,10 +120,11 @@ export const mapFields = (args)=>{
95
120
  case 'array':
96
121
  {
97
122
  let CustomRowLabel;
98
- if ('admin' in field && field.admin.components && 'RowLabel' in field.admin.components && field.admin.components.RowLabel && isReactComponent(field.admin.components.RowLabel)) {
123
+ if ('admin' in field && field.admin.components && 'RowLabel' in field.admin.components && field.admin.components.RowLabel) {
99
124
  const CustomRowLabelComponent = field.admin.components.RowLabel;
100
125
  CustomRowLabel = /*#__PURE__*/ React.createElement(WithServerSideProps, {
101
- Component: CustomRowLabelComponent
126
+ Component: CustomRowLabelComponent,
127
+ ...labelProps || {}
102
128
  });
103
129
  }
104
130
  const arrayFieldProps = {
@@ -116,7 +142,7 @@ export const mapFields = (args)=>{
116
142
  parentPath: path,
117
143
  readOnly: readOnlyOverride
118
144
  }),
119
- label: field?.label,
145
+ isSortable: field.admin?.isSortable,
120
146
  labels: field.labels,
121
147
  maxRows: field.maxRows,
122
148
  minRows: field.minRows,
@@ -142,6 +168,7 @@ export const mapFields = (args)=>{
142
168
  });
143
169
  const reducedBlock = {
144
170
  slug: block.slug,
171
+ custom: block.admin?.custom,
145
172
  fieldMap: blockFieldMap,
146
173
  imageAltText: block.imageAltText,
147
174
  imageURL: block.imageURL,
@@ -155,7 +182,7 @@ export const mapFields = (args)=>{
155
182
  blocks,
156
183
  className: field.admin?.className,
157
184
  disabled: field.admin?.disabled,
158
- label: field?.label,
185
+ isSortable: field.admin?.isSortable,
159
186
  labels: field.labels,
160
187
  maxRows: field.maxRows,
161
188
  minRows: field.minRows,
@@ -178,7 +205,6 @@ export const mapFields = (args)=>{
178
205
  name: field.name,
179
206
  className: field.admin?.className,
180
207
  disabled: field.admin?.disabled,
181
- label: field.label,
182
208
  readOnly: field.admin?.readOnly,
183
209
  required: field.required,
184
210
  style: field.admin?.style,
@@ -195,7 +221,6 @@ export const mapFields = (args)=>{
195
221
  className: field.admin?.className,
196
222
  disabled: field.admin?.disabled,
197
223
  editorOptions: field.admin?.editorOptions,
198
- label: field.label,
199
224
  language: field.admin?.language,
200
225
  readOnly: field.admin?.readOnly,
201
226
  required: field.required,
@@ -208,10 +233,11 @@ export const mapFields = (args)=>{
208
233
  case 'collapsible':
209
234
  {
210
235
  let CustomCollapsibleLabel;
211
- if (isReactComponent(field.label) || isPlainFunction(field.label)) {
212
- const CustomCollapsibleLabelComponent = field.label;
236
+ if (field?.admin?.components && 'RowLabel' in field.admin.components && field?.admin?.components?.RowLabel) {
237
+ const CustomCollapsibleLabelComponent = field.admin.components.RowLabel;
213
238
  CustomCollapsibleLabel = /*#__PURE__*/ React.createElement(WithServerSideProps, {
214
- Component: CustomCollapsibleLabelComponent
239
+ Component: CustomCollapsibleLabelComponent,
240
+ ...labelProps || {}
215
241
  });
216
242
  }
217
243
  const collapsibleField = {
@@ -230,7 +256,6 @@ export const mapFields = (args)=>{
230
256
  readOnly: readOnlyOverride
231
257
  }),
232
258
  initCollapsed: field.admin?.initCollapsed,
233
- label: !CustomCollapsibleLabel ? field.label : undefined,
234
259
  readOnly: field.admin?.readOnly,
235
260
  required: field.required,
236
261
  style: field.admin?.style,
@@ -248,7 +273,6 @@ export const mapFields = (args)=>{
248
273
  className: field.admin?.className,
249
274
  date: field.admin?.date,
250
275
  disabled: field.admin?.disabled,
251
- label: field.label,
252
276
  placeholder: field.admin?.placeholder,
253
277
  readOnly: field.admin?.readOnly,
254
278
  required: field.required,
@@ -266,7 +290,6 @@ export const mapFields = (args)=>{
266
290
  name: field.name,
267
291
  className: field.admin?.className,
268
292
  disabled: field.admin?.disabled,
269
- label: field.label,
270
293
  placeholder: field.admin?.placeholder,
271
294
  readOnly: field.admin?.readOnly,
272
295
  required: field.required,
@@ -293,7 +316,6 @@ export const mapFields = (args)=>{
293
316
  parentPath: path,
294
317
  readOnly: readOnlyOverride
295
318
  }),
296
- label: field.label,
297
319
  readOnly: field.admin?.readOnly,
298
320
  style: field.admin?.style,
299
321
  width: field.admin?.width
@@ -309,7 +331,7 @@ export const mapFields = (args)=>{
309
331
  className: field.admin?.className,
310
332
  disabled: field.admin?.disabled,
311
333
  editorOptions: field.admin?.editorOptions,
312
- label: field.label,
334
+ jsonSchema: field.jsonSchema,
313
335
  readOnly: field.admin?.readOnly,
314
336
  required: field.required,
315
337
  style: field.admin?.style,
@@ -326,7 +348,6 @@ export const mapFields = (args)=>{
326
348
  className: field.admin?.className,
327
349
  disabled: field.admin?.disabled,
328
350
  hasMany: field.hasMany,
329
- label: field.label,
330
351
  max: field.max,
331
352
  maxRows: field.maxRows,
332
353
  min: field.min,
@@ -346,7 +367,6 @@ export const mapFields = (args)=>{
346
367
  name: field.name,
347
368
  className: field.admin?.className,
348
369
  disabled: field.admin?.disabled,
349
- label: field.label,
350
370
  readOnly: field.admin?.readOnly,
351
371
  required: field.required,
352
372
  style: field.admin?.style,
@@ -364,7 +384,6 @@ export const mapFields = (args)=>{
364
384
  className: field.admin?.className,
365
385
  disabled: field.admin?.disabled,
366
386
  hasMany: field.hasMany,
367
- label: field.label,
368
387
  readOnly: field.admin?.readOnly,
369
388
  relationTo: field.relationTo,
370
389
  required: field.required,
@@ -383,7 +402,6 @@ export const mapFields = (args)=>{
383
402
  name: field.name,
384
403
  className: field.admin?.className,
385
404
  disabled: field.admin?.disabled,
386
- label: field.label,
387
405
  options: fieldOptions,
388
406
  readOnly: field.admin?.readOnly,
389
407
  required: field.required,
@@ -401,12 +419,14 @@ export const mapFields = (args)=>{
401
419
  name: field.name,
402
420
  className: field.admin?.className,
403
421
  disabled: field.admin?.disabled,
404
- label: field.label,
405
422
  readOnly: field.admin?.readOnly,
406
423
  required: field.required,
407
424
  style: field.admin?.style,
408
425
  width: field.admin?.width
409
426
  };
427
+ if (typeof field?.editor === 'function') {
428
+ throw new Error('Attempted to access unsanitized rich text editor.');
429
+ }
410
430
  const RichTextFieldComponent = field.editor.FieldComponent;
411
431
  const RichTextCellComponent = field.editor.CellComponent;
412
432
  if (typeof field.editor.generateComponentMap === 'function') {
@@ -497,7 +517,6 @@ export const mapFields = (args)=>{
497
517
  className: field.admin?.className,
498
518
  disabled: field.admin?.disabled,
499
519
  hasMany: field.hasMany,
500
- label: field.label,
501
520
  maxLength: field.maxLength,
502
521
  minLength: field.minLength,
503
522
  placeholder: field.admin?.placeholder,
@@ -516,7 +535,6 @@ export const mapFields = (args)=>{
516
535
  name: field.name,
517
536
  className: field.admin?.className,
518
537
  disabled: field.admin?.disabled,
519
- label: field.label,
520
538
  maxLength: field.maxLength,
521
539
  minLength: field.minLength,
522
540
  placeholder: field.admin?.placeholder,
@@ -542,7 +560,6 @@ export const mapFields = (args)=>{
542
560
  className: field.admin?.className,
543
561
  disabled: field.admin?.disabled,
544
562
  filterOptions: field.filterOptions,
545
- label: field.label,
546
563
  readOnly: field.admin?.readOnly,
547
564
  relationTo: field.relationTo,
548
565
  required: field.required,
@@ -562,7 +579,6 @@ export const mapFields = (args)=>{
562
579
  disabled: field.admin?.disabled,
563
580
  hasMany: field.hasMany,
564
581
  isClearable: field.admin?.isClearable,
565
- label: field.label,
566
582
  options: fieldOptions,
567
583
  readOnly: field.admin?.readOnly,
568
584
  required: field.required,
@@ -590,7 +606,10 @@ export const mapFields = (args)=>{
590
606
  ...fieldComponentProps
591
607
  }) : undefined,
592
608
  cellComponentProps,
609
+ custom: field?.admin?.custom,
593
610
  disableBulkEdit: 'admin' in field && 'disableBulkEdit' in field.admin && field.admin.disableBulkEdit,
611
+ disableListColumn: 'admin' in field && 'disableListColumn' in field.admin && field.admin.disableListColumn,
612
+ disableListFilter: 'admin' in field && 'disableListFilter' in field.admin && field.admin.disableListFilter,
594
613
  fieldComponentProps,
595
614
  fieldIsPresentational,
596
615
  isFieldAffectingData,
@@ -617,10 +636,7 @@ export const mapFields = (args)=>{
617
636
  disableBulkEdit: true,
618
637
  fieldComponentProps: {
619
638
  name: 'id',
620
- label: 'ID',
621
- labelProps: {
622
- label: 'ID'
623
- }
639
+ label: 'ID'
624
640
  },
625
641
  fieldIsPresentational: false,
626
642
  isFieldAffectingData: true,