@payloadcms/ui 3.0.0-beta.31 → 3.0.0-beta.33

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 (251) hide show
  1. package/dist/assets/index.d.ts +4 -4
  2. package/dist/assets/index.d.ts.map +1 -1
  3. package/dist/assets/index.js +4 -4
  4. package/dist/assets/index.js.map +1 -1
  5. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  6. package/dist/elements/AppHeader/index.js +2 -2
  7. package/dist/elements/AppHeader/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +1 -1
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/Banner/index.js +1 -1
  12. package/dist/elements/Banner/index.js.map +1 -1
  13. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  14. package/dist/elements/DocumentControls/index.js +1 -1
  15. package/dist/elements/DocumentControls/index.js.map +1 -1
  16. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  17. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +1 -1
  18. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  19. package/dist/elements/ListControls/index.d.ts.map +1 -1
  20. package/dist/elements/ListControls/index.js +1 -1
  21. package/dist/elements/ListControls/index.js.map +1 -1
  22. package/dist/elements/Logout/index.d.ts.map +1 -1
  23. package/dist/elements/Logout/index.js +1 -1
  24. package/dist/elements/Logout/index.js.map +1 -1
  25. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  26. package/dist/elements/Nav/index.client.js +1 -1
  27. package/dist/elements/Nav/index.client.js.map +1 -1
  28. package/dist/elements/Nav/index.d.ts +2 -4
  29. package/dist/elements/Nav/index.d.ts.map +1 -1
  30. package/dist/elements/Nav/index.js +20 -4
  31. package/dist/elements/Nav/index.js.map +1 -1
  32. package/dist/elements/Pill/index.js +1 -1
  33. package/dist/elements/Pill/index.js.map +1 -1
  34. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  35. package/dist/elements/ReactSelect/ClearIndicator/index.js +10 -2
  36. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  37. package/dist/elements/ReactSelect/ClearIndicator/index.scss +4 -0
  38. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +8 -0
  39. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -0
  40. package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -0
  41. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -0
  42. package/dist/elements/ReactSelect/DropdownIndicator/index.scss +16 -0
  43. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  44. package/dist/elements/ReactSelect/MultiValue/index.js +3 -3
  45. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  46. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +4 -0
  47. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  48. package/dist/elements/ReactSelect/MultiValueRemove/index.js +6 -0
  49. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  50. package/dist/elements/ReactSelect/index.js +3 -3
  51. package/dist/elements/ReactSelect/index.js.map +1 -1
  52. package/dist/elements/ReactSelect/index.scss +1 -1
  53. package/dist/elements/RenderCustomComponent/index.d.ts +3 -3
  54. package/dist/elements/RenderCustomComponent/index.d.ts.map +1 -1
  55. package/dist/elements/RenderCustomComponent/index.js +4 -4
  56. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  57. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  58. package/dist/elements/StayLoggedIn/index.js +2 -2
  59. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  60. package/dist/elements/StepNav/index.d.ts.map +1 -1
  61. package/dist/elements/StepNav/index.js +13 -3
  62. package/dist/elements/StepNav/index.js.map +1 -1
  63. package/dist/elements/StepNav/index.scss +11 -0
  64. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Array/index.js +1 -1
  66. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  70. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  71. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +1 -1
  72. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  73. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  74. package/dist/elements/Table/DefaultCell/fields/Date/index.js +3 -3
  75. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  77. package/dist/elements/Table/DefaultCell/fields/File/index.js +1 -1
  78. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  79. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  80. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +5 -5
  81. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  82. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  83. package/dist/elements/Table/DefaultCell/fields/Select/index.js +1 -1
  84. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  85. package/dist/elements/Table/DefaultCell/index.js +3 -3
  86. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  87. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  88. package/dist/elements/Table/RelationshipProvider/index.js +4 -4
  89. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  90. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  91. package/dist/elements/TableColumns/buildColumnState.js +1 -1
  92. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  93. package/dist/elements/Upload/index.d.ts.map +1 -1
  94. package/dist/elements/Upload/index.js +2 -2
  95. package/dist/elements/Upload/index.js.map +1 -1
  96. package/dist/elements/WithServerSideProps/index.d.ts +2 -2
  97. package/dist/elements/WithServerSideProps/index.d.ts.map +1 -1
  98. package/dist/elements/WithServerSideProps/index.js +4 -6
  99. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  100. package/dist/fields/Array/index.d.ts.map +1 -1
  101. package/dist/fields/Array/index.js +5 -5
  102. package/dist/fields/Array/index.js.map +1 -1
  103. package/dist/fields/Blocks/index.d.ts.map +1 -1
  104. package/dist/fields/Blocks/index.js +5 -5
  105. package/dist/fields/Blocks/index.js.map +1 -1
  106. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  107. package/dist/fields/Checkbox/Input.js +1 -1
  108. package/dist/fields/Checkbox/Input.js.map +1 -1
  109. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  110. package/dist/fields/Checkbox/index.js +4 -4
  111. package/dist/fields/Checkbox/index.js.map +1 -1
  112. package/dist/fields/Code/index.d.ts.map +1 -1
  113. package/dist/fields/Code/index.js +4 -4
  114. package/dist/fields/Code/index.js.map +1 -1
  115. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  116. package/dist/fields/Collapsible/index.js +1 -1
  117. package/dist/fields/Collapsible/index.js.map +1 -1
  118. package/dist/fields/DateTime/index.d.ts.map +1 -1
  119. package/dist/fields/DateTime/index.js +3 -3
  120. package/dist/fields/DateTime/index.js.map +1 -1
  121. package/dist/fields/Email/index.d.ts.map +1 -1
  122. package/dist/fields/Email/index.js +4 -4
  123. package/dist/fields/Email/index.js.map +1 -1
  124. package/dist/fields/Group/index.d.ts.map +1 -1
  125. package/dist/fields/Group/index.js +1 -1
  126. package/dist/fields/Group/index.js.map +1 -1
  127. package/dist/fields/HiddenInput/index.d.ts.map +1 -1
  128. package/dist/fields/HiddenInput/index.js +1 -1
  129. package/dist/fields/HiddenInput/index.js.map +1 -1
  130. package/dist/fields/JSON/index.d.ts.map +1 -1
  131. package/dist/fields/JSON/index.js +3 -3
  132. package/dist/fields/JSON/index.js.map +1 -1
  133. package/dist/fields/Number/index.d.ts.map +1 -1
  134. package/dist/fields/Number/index.js +4 -4
  135. package/dist/fields/Number/index.js.map +1 -1
  136. package/dist/fields/Password/index.d.ts.map +1 -1
  137. package/dist/fields/Password/index.js +2 -2
  138. package/dist/fields/Password/index.js.map +1 -1
  139. package/dist/fields/Point/index.d.ts.map +1 -1
  140. package/dist/fields/Point/index.js +4 -4
  141. package/dist/fields/Point/index.js.map +1 -1
  142. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  143. package/dist/fields/RadioGroup/Radio/index.js +1 -1
  144. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  145. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  146. package/dist/fields/RadioGroup/index.js +3 -3
  147. package/dist/fields/RadioGroup/index.js.map +1 -1
  148. package/dist/fields/Relationship/index.d.ts.map +1 -1
  149. package/dist/fields/Relationship/index.js +5 -5
  150. package/dist/fields/Relationship/index.js.map +1 -1
  151. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  152. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +8 -1
  153. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  154. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +4 -0
  155. package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
  156. package/dist/fields/Relationship/select-components/SingleValue/index.js +5 -0
  157. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  158. package/dist/fields/Relationship/select-components/SingleValue/index.scss +2 -2
  159. package/dist/fields/Select/index.d.ts.map +1 -1
  160. package/dist/fields/Select/index.js +4 -4
  161. package/dist/fields/Select/index.js.map +1 -1
  162. package/dist/fields/Tabs/index.d.ts.map +1 -1
  163. package/dist/fields/Tabs/index.js +1 -1
  164. package/dist/fields/Tabs/index.js.map +1 -1
  165. package/dist/fields/Text/Input.d.ts.map +1 -1
  166. package/dist/fields/Text/Input.js +3 -3
  167. package/dist/fields/Text/Input.js.map +1 -1
  168. package/dist/fields/Text/index.d.ts.map +1 -1
  169. package/dist/fields/Text/index.js +1 -1
  170. package/dist/fields/Text/index.js.map +1 -1
  171. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  172. package/dist/fields/Textarea/Input.js +3 -3
  173. package/dist/fields/Textarea/Input.js.map +1 -1
  174. package/dist/fields/Textarea/index.d.ts.map +1 -1
  175. package/dist/fields/Textarea/index.js +1 -1
  176. package/dist/fields/Textarea/index.js.map +1 -1
  177. package/dist/fields/Upload/Input.d.ts.map +1 -1
  178. package/dist/fields/Upload/Input.js +3 -3
  179. package/dist/fields/Upload/Input.js.map +1 -1
  180. package/dist/fields/Upload/index.d.ts.map +1 -1
  181. package/dist/fields/Upload/index.js +2 -2
  182. package/dist/fields/Upload/index.js.map +1 -1
  183. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  184. package/dist/forms/FieldLabel/index.js +1 -1
  185. package/dist/forms/FieldLabel/index.js.map +1 -1
  186. package/dist/forms/Form/index.js.map +1 -1
  187. package/dist/forms/Form/mergeErrorPaths.js +1 -1
  188. package/dist/forms/Form/mergeErrorPaths.js.map +1 -1
  189. package/dist/forms/Submit/index.d.ts.map +1 -1
  190. package/dist/forms/Submit/index.js.map +1 -1
  191. package/dist/graphics/Account/index.d.ts +0 -1
  192. package/dist/graphics/Account/index.d.ts.map +1 -1
  193. package/dist/graphics/Account/index.js +2 -11
  194. package/dist/graphics/Account/index.js.map +1 -1
  195. package/dist/graphics/Icon/index.d.ts +3 -1
  196. package/dist/graphics/Icon/index.d.ts.map +1 -1
  197. package/dist/graphics/Icon/index.js +10 -36
  198. package/dist/graphics/Icon/index.js.map +1 -1
  199. package/dist/graphics/Logo/index.d.ts +2 -4
  200. package/dist/graphics/Logo/index.d.ts.map +1 -1
  201. package/dist/graphics/Logo/index.js +10 -2
  202. package/dist/graphics/Logo/index.js.map +1 -1
  203. package/dist/icons/Edit/index.d.ts +3 -1
  204. package/dist/icons/Edit/index.d.ts.map +1 -1
  205. package/dist/icons/Edit/index.js +5 -2
  206. package/dist/icons/Edit/index.js.map +1 -1
  207. package/dist/providers/Auth/index.d.ts.map +1 -1
  208. package/dist/providers/Auth/index.js +5 -4
  209. package/dist/providers/Auth/index.js.map +1 -1
  210. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts +3 -2
  211. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -1
  212. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
  213. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +3 -2
  214. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  215. package/dist/providers/ComponentMap/buildComponentMap/collections.js +4 -3
  216. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  217. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +3 -2
  218. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  219. package/dist/providers/ComponentMap/buildComponentMap/fields.js +1 -1
  220. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  221. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +3 -2
  222. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  223. package/dist/providers/ComponentMap/buildComponentMap/globals.js +3 -2
  224. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  225. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +4 -4
  226. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  227. package/dist/providers/ComponentMap/buildComponentMap/index.js +6 -2
  228. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  229. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -1
  230. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  231. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  232. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  233. package/dist/providers/DocumentInfo/index.js +44 -31
  234. package/dist/providers/DocumentInfo/index.js.map +1 -1
  235. package/dist/providers/Root/index.d.ts.map +1 -1
  236. package/dist/providers/Root/index.js +1 -1
  237. package/dist/providers/Root/index.js.map +1 -1
  238. package/dist/templates/Default/index.d.ts +4 -4
  239. package/dist/templates/Default/index.d.ts.map +1 -1
  240. package/dist/templates/Default/index.js +18 -4
  241. package/dist/templates/Default/index.js.map +1 -1
  242. package/dist/utilities/hasSavePermission.d.ts +8 -0
  243. package/dist/utilities/hasSavePermission.d.ts.map +1 -0
  244. package/dist/utilities/hasSavePermission.js +12 -0
  245. package/dist/utilities/hasSavePermission.js.map +1 -0
  246. package/dist/utilities/isEditing.d.ts +6 -0
  247. package/dist/utilities/isEditing.d.ts.map +1 -0
  248. package/dist/utilities/isEditing.js +3 -0
  249. package/dist/utilities/isEditing.js.map +1 -0
  250. package/package.json +11 -11
  251. /package/dist/assets/{og-image.png → static-og-image.png} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport isDeepEqual from 'deep-equal'\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { wait } from 'payload/utilities'\nimport QueryString from 'qs'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type {\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport useThrottledEffect from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { getDataByPath as getDataByPathFunc } from './getDataByPath.js'\nimport { getSiblingData as getSiblingDataFunc } from './getSiblingData.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled: disabledFromProps,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { formQueryParams } = useFormQueryParams()\n\n const config = useConfig()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [modified, setModified] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if (typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n id,\n config,\n data,\n operation,\n siblingData: contextRef.current.getSiblingData(path),\n t,\n user,\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!isDeepEqual(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [id, user, operation, t, dispatchFields, config])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg,\n method: methodToUse = method,\n overrides = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) await wait(100)\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: fields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(([, field]) => field.valid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n toast.error(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const data = {\n ...reduceFieldsToValues(fields, true),\n ...overrides,\n }\n\n onSubmit(fields, data)\n }\n\n const formData = contextRef.current.createFormData(overrides)\n\n try {\n let res\n const actionEndpoint =\n actionArg ||\n (typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : null)\n\n if (actionEndpoint) {\n res = await requests[methodToUse.toLowerCase()](actionEndpoint, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) json = await res.json()\n\n if (res.status < 400) {\n if (typeof onSuccess === 'function') await onSuccess(json)\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n toast.success(json.message || t('general:submissionSuccessful'), { autoClose: 3000 })\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n toast.error(json.message)\n\n return\n }\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 || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n toast.error(message)\n }\n } catch (err) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n\n toast.error(err)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n fields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n formQueryParams,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const newState = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n data,\n globalSlug,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [apiRoute, collectionSlug, dispatchFields, globalSlug, id, operation, serverURL],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const getFieldStateBySchemaPath = useCallback(\n async ({ data, schemaPath }) => {\n const fieldSchema = await getFormState({\n apiRoute,\n body: {\n collectionSlug,\n data,\n globalSlug,\n schemaPath,\n },\n serverURL,\n })\n return fieldSchema\n },\n [apiRoute, collectionSlug, globalSlug, serverURL],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'ADD_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\n )\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') setSubmitted(submittedFromProps)\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ type: 'REPLACE_STATE', state: initialState })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useDebouncedEffect(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n revalidatedFormState = await onChangeFn({\n formState: revalidatedFormState,\n })\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n revalidatedFormState,\n )\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) void executeOnChange()\n },\n 150,\n // Make sure we trigger this whenever modified changes (not just when `fields` changes), otherwise we will miss merging server form state for the first form update/onChange. Here's why:\n // `fields` updates before `modified`, because setModified is in a setTimeout. So on the first change, modified is false, so we don't trigger the effect even though we should.\n [contextRef.current.fields, dispatchFields, onChange, modified],\n )\n\n const actionString =\n typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : ''\n\n return (\n <form\n action={method ? actionString : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"names":["isDeepEqual","useRouter","serialize","wait","QueryString","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useFormQueryParams","useLocale","useOperation","useTranslation","requests","getFormState","reduceFieldsToValues","FormContext","FormFieldsContext","FormWatchContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","globalSlug","action","beforeSubmit","children","className","disableSuccessStatus","disableValidationOnSubmit","disabled","disabledFromProps","handleResponse","initialState","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","formQueryParams","config","routes","api","apiRoute","serverURL","setDisabled","modified","setModified","processing","setProcessing","setSubmitted","formRef","contextRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","stopPropagation","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","formState","resolve","every","error","formData","createFormData","res","actionEndpoint","stringify","addQueryPrefix","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","push","success","message","autoClose","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","indices","nullsAsUndefineds","reset","newState","schemaPath","replaceState","getFieldStateBySchemaPath","fieldSchema","addFieldRow","rowIndex","subFieldState","blockType","removeFieldRow","replaceFieldRow","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","optimize","actionString","form","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload/types'\n\n/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport isDeepEqual from 'deep-equal'\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { wait } from 'payload/utilities'\nimport QueryString from 'qs'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport type {\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport useThrottledEffect from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { getDataByPath as getDataByPathFunc } from './getDataByPath.js'\nimport { getSiblingData as getSiblingDataFunc } from './getSiblingData.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled: disabledFromProps,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n handleResponse,\n initialState, // fully formed initial field state\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n const { formQueryParams } = useFormQueryParams()\n\n const config = useConfig()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [modified, setModified] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const dataFromContext = contextRef.current.getData()\n const data = dataFromContext\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if (typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n id,\n config,\n data,\n operation,\n siblingData: contextRef.current.getSiblingData(path),\n t,\n user,\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!isDeepEqual(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n return isValid\n }, [id, user, operation, t, dispatchFields, config])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg,\n method: methodToUse = method,\n overrides = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) await wait(100)\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: fields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(([, field]) => field.valid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n // If not valid, prevent submission\n if (!isValid) {\n toast.error(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const data = {\n ...reduceFieldsToValues(fields, true),\n ...overrides,\n }\n\n onSubmit(fields, data)\n }\n\n const formData = contextRef.current.createFormData(overrides)\n\n try {\n let res\n const actionEndpoint =\n actionArg ||\n (typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : null)\n\n if (actionEndpoint) {\n res = await requests[methodToUse.toLowerCase()](actionEndpoint, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) json = await res.json()\n\n if (res.status < 400) {\n if (typeof onSuccess === 'function') await onSuccess(json)\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n router.push(redirect)\n } else if (!disableSuccessStatus) {\n toast.success(json.message || t('general:submissionSuccessful'), { autoClose: 3000 })\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n toast.error(json.message)\n\n return\n }\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 || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n toast.error(message)\n }\n } catch (err) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n\n toast.error(err)\n }\n },\n [\n beforeSubmit,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n fields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n formQueryParams,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createFormData = useCallback((overrides: any = {}) => {\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n }, [])\n\n const reset = useCallback(\n async (data: unknown) => {\n const newState = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n data,\n globalSlug,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n },\n [apiRoute, collectionSlug, dispatchFields, globalSlug, id, operation, serverURL],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const getFieldStateBySchemaPath = useCallback(\n async ({ data, schemaPath }) => {\n const fieldSchema = await getFormState({\n apiRoute,\n body: {\n collectionSlug,\n data,\n globalSlug,\n schemaPath,\n },\n serverURL,\n })\n return fieldSchema\n },\n [apiRoute, collectionSlug, globalSlug, serverURL],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'ADD_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n async ({ data, path, rowIndex, schemaPath }) => {\n const subFieldState = await getFieldStateBySchemaPath({ data, schemaPath })\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType: data?.blockType,\n path,\n rowIndex,\n subFieldState,\n })\n },\n [getFieldStateBySchemaPath, dispatchFields],\n )\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') setSubmitted(submittedFromProps)\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({ type: 'REPLACE_STATE', state: initialState })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n useDebouncedEffect(\n () => {\n const executeOnChange = async () => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n revalidatedFormState = await onChangeFn({\n formState: revalidatedFormState,\n })\n }\n\n const { changed, newState } = mergeServerFormState(\n contextRef.current.fields || {},\n revalidatedFormState,\n )\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n }\n\n if (modified) void executeOnChange()\n },\n 150,\n // Make sure we trigger this whenever modified changes (not just when `fields` changes), otherwise we will miss merging server form state for the first form update/onChange. Here's why:\n // `fields` updates before `modified`, because setModified is in a setTimeout. So on the first change, modified is false, so we don't trigger the effect even though we should.\n [contextRef.current.fields, dispatchFields, onChange, modified],\n )\n\n const actionString =\n typeof action === 'string'\n ? `${action}${QueryString.stringify(formQueryParams, { addQueryPrefix: true })}`\n : ''\n\n return (\n <form\n action={method ? actionString : (action as string)}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <ProcessingContext.Provider value={processing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </ProcessingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </form>\n )\n}\n\nexport {\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"names":["isDeepEqual","useRouter","serialize","wait","QueryString","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useFormQueryParams","useLocale","useOperation","useTranslation","requests","getFormState","reduceFieldsToValues","FormContext","FormFieldsContext","FormWatchContext","ModifiedContext","ProcessingContext","SubmittedContext","errorMessages","fieldReducer","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","globalSlug","action","beforeSubmit","children","className","disableSuccessStatus","disableValidationOnSubmit","disabled","disabledFromProps","handleResponse","initialState","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","code","locale","i18n","t","refreshCookie","user","operation","formQueryParams","config","routes","api","apiRoute","serverURL","setDisabled","modified","setModified","processing","setProcessing","setSubmitted","formRef","contextRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","isValid","dataFromContext","getData","data","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","skipValidation","preventDefault","stopPropagation","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","formState","resolve","every","error","formData","createFormData","res","actionEndpoint","stringify","addQueryPrefix","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","push","success","message","autoClose","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","getFields","getField","file","dataWithOverrides","dataToSerialize","_payload","JSON","indices","nullsAsUndefineds","reset","newState","schemaPath","replaceState","getFieldStateBySchemaPath","fieldSchema","addFieldRow","rowIndex","subFieldState","blockType","removeFieldRow","replaceFieldRow","classes","filter","Boolean","join","executeOnChange","onChangeFn","changed","optimize","actionString","form","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { arraysHaveSameStrings } from '@payloadcms/ui/utilities/arraysHaveSameStrings';
1
+ import { arraysHaveSameStrings } from '../../utilities/arraysHaveSameStrings.js';
2
2
  export const mergeErrorPaths = (existing, incoming)=>{
3
3
  if (!existing) {
4
4
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/Form/mergeErrorPaths.ts"],"sourcesContent":["import { arraysHaveSameStrings } from '@payloadcms/ui/utilities/arraysHaveSameStrings'\n\nexport const mergeErrorPaths = (\n existing?: string[],\n incoming?: string[],\n): {\n changed: boolean\n result?: string[]\n} => {\n if (!existing) {\n return {\n changed: false,\n result: undefined,\n }\n }\n\n const existingErrorPaths: string[] = []\n const incomingErrorPaths: string[] = []\n\n if (Array.isArray(incoming) && incoming?.length) {\n incoming.forEach((path) => incomingErrorPaths.push(path))\n }\n\n if (Array.isArray(existing) && existing?.length) {\n existing.forEach((path) => existingErrorPaths.push(path))\n }\n\n if (!arraysHaveSameStrings(existingErrorPaths, incomingErrorPaths)) {\n return {\n changed: true,\n result: incomingErrorPaths,\n }\n }\n return {\n changed: false,\n result: existing,\n }\n}\n"],"names":["arraysHaveSameStrings","mergeErrorPaths","existing","incoming","changed","result","undefined","existingErrorPaths","incomingErrorPaths","Array","isArray","length","forEach","path","push"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,qBAAqB,QAAQ,iDAAgD;AAEtF,OAAO,MAAMC,kBAAkB,CAC7BC,UACAC;IAKA,IAAI,CAACD,UAAU;QACb,OAAO;YACLE,SAAS;YACTC,QAAQC;QACV;IACF;IAEA,MAAMC,qBAA+B,EAAE;IACvC,MAAMC,qBAA+B,EAAE;IAEvC,IAAIC,MAAMC,OAAO,CAACP,aAAaA,UAAUQ,QAAQ;QAC/CR,SAASS,OAAO,CAAC,CAACC,OAASL,mBAAmBM,IAAI,CAACD;IACrD;IAEA,IAAIJ,MAAMC,OAAO,CAACR,aAAaA,UAAUS,QAAQ;QAC/CT,SAASU,OAAO,CAAC,CAACC,OAASN,mBAAmBO,IAAI,CAACD;IACrD;IAEA,IAAI,CAACb,sBAAsBO,oBAAoBC,qBAAqB;QAClE,OAAO;YACLJ,SAAS;YACTC,QAAQG;QACV;IACF;IACA,OAAO;QACLJ,SAAS;QACTC,QAAQH;IACV;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/Form/mergeErrorPaths.ts"],"sourcesContent":["import { arraysHaveSameStrings } from '../../utilities/arraysHaveSameStrings.js'\n\nexport const mergeErrorPaths = (\n existing?: string[],\n incoming?: string[],\n): {\n changed: boolean\n result?: string[]\n} => {\n if (!existing) {\n return {\n changed: false,\n result: undefined,\n }\n }\n\n const existingErrorPaths: string[] = []\n const incomingErrorPaths: string[] = []\n\n if (Array.isArray(incoming) && incoming?.length) {\n incoming.forEach((path) => incomingErrorPaths.push(path))\n }\n\n if (Array.isArray(existing) && existing?.length) {\n existing.forEach((path) => existingErrorPaths.push(path))\n }\n\n if (!arraysHaveSameStrings(existingErrorPaths, incomingErrorPaths)) {\n return {\n changed: true,\n result: incomingErrorPaths,\n }\n }\n return {\n changed: false,\n result: existing,\n }\n}\n"],"names":["arraysHaveSameStrings","mergeErrorPaths","existing","incoming","changed","result","undefined","existingErrorPaths","incomingErrorPaths","Array","isArray","length","forEach","path","push"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,qBAAqB,QAAQ,2CAA0C;AAEhF,OAAO,MAAMC,kBAAkB,CAC7BC,UACAC;IAKA,IAAI,CAACD,UAAU;QACb,OAAO;YACLE,SAAS;YACTC,QAAQC;QACV;IACF;IAEA,MAAMC,qBAA+B,EAAE;IACvC,MAAMC,qBAA+B,EAAE;IAEvC,IAAIC,MAAMC,OAAO,CAACP,aAAaA,UAAUQ,QAAQ;QAC/CR,SAASS,OAAO,CAAC,CAACC,OAASL,mBAAmBM,IAAI,CAACD;IACrD;IAEA,IAAIJ,MAAMC,OAAO,CAACR,aAAaA,UAAUS,QAAQ;QAC/CT,SAASU,OAAO,CAAC,CAACC,OAASN,mBAAmBO,IAAI,CAACD;IACrD;IAEA,IAAI,CAACb,sBAAsBO,oBAAoBC,qBAAqB;QAClE,OAAO;YACLJ,SAAS;YACTC,QAAQG;QACV;IACF;IACA,OAAO;QACLJ,SAAS;QACTC,QAAQH;IACV;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Submit/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAI3D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,iFAarB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Submit/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAI3D,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,iFAcrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { type = 'submit', buttonId: id, children, disabled: disabledFromProps } = props\n const processing = useFormProcessing()\n const { disabled } = useForm()\n const canSave = !(disabledFromProps || processing || disabled)\n\n return (\n <div className={baseClass}>\n <Button ref={ref} {...props} disabled={canSave ? undefined : true} id={id} type={type}>\n {children}\n </Button>\n </div>\n )\n})\n"],"names":["React","forwardRef","Button","useForm","useFormProcessing","baseClass","FormSubmit","props","ref","type","buttonId","id","children","disabled","disabledFromProps","processing","canSave","div","className","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,OAAOA,SAASC,UAAU,QAAQ,QAAO;AAIzC,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,qBAAoB;AAG/D,MAAMC,YAAY;AAElB,OAAO,MAAMC,2BAAaL,WAAqC,CAACM,OAAOC;IACrE,MAAM,EAAEC,OAAO,QAAQ,EAAEC,UAAUC,EAAE,EAAEC,QAAQ,EAAEC,UAAUC,iBAAiB,EAAE,GAAGP;IACjF,MAAMQ,aAAaX;IACnB,MAAM,EAAES,QAAQ,EAAE,GAAGV;IACrB,MAAMa,UAAU,CAAEF,CAAAA,qBAAqBC,cAAcF,QAAO;IAE5D,qBACE,oBAACI;QAAIC,WAAWb;qBACd,oBAACH;QAAOM,KAAKA;QAAM,GAAGD,KAAK;QAAEM,UAAUG,UAAUG,YAAY;QAAMR,IAAIA;QAAIF,MAAMA;OAC9EG;AAIT,GAAE"}
1
+ {"version":3,"sources":["../../../src/forms/Submit/index.tsx"],"sourcesContent":["'use client'\nimport React, { forwardRef } from 'react'\n\nimport type { Props } from '../../elements/Button/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useForm, useFormProcessing } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'form-submit'\n\nexport const FormSubmit = forwardRef<HTMLButtonElement, Props>((props, ref) => {\n const { type = 'submit', buttonId: id, children, disabled: disabledFromProps } = props\n const processing = useFormProcessing()\n const { disabled } = useForm()\n\n const canSave = !(disabledFromProps || processing || disabled)\n\n return (\n <div className={baseClass}>\n <Button ref={ref} {...props} disabled={canSave ? undefined : true} id={id} type={type}>\n {children}\n </Button>\n </div>\n )\n})\n"],"names":["React","forwardRef","Button","useForm","useFormProcessing","baseClass","FormSubmit","props","ref","type","buttonId","id","children","disabled","disabledFromProps","processing","canSave","div","className","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,OAAOA,SAASC,UAAU,QAAQ,QAAO;AAIzC,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,qBAAoB;AAG/D,MAAMC,YAAY;AAElB,OAAO,MAAMC,2BAAaL,WAAqC,CAACM,OAAOC;IACrE,MAAM,EAAEC,OAAO,QAAQ,EAAEC,UAAUC,EAAE,EAAEC,QAAQ,EAAEC,UAAUC,iBAAiB,EAAE,GAAGP;IACjF,MAAMQ,aAAaX;IACnB,MAAM,EAAES,QAAQ,EAAE,GAAGV;IAErB,MAAMa,UAAU,CAAEF,CAAAA,qBAAqBC,cAAcF,QAAO;IAE5D,qBACE,oBAACI;QAAIC,WAAWb;qBACd,oBAACH;QAAOM,KAAKA;QAAM,GAAGD,KAAK;QAAEM,UAAUG,UAAUG,YAAY;QAAMR,IAAIA;QAAIF,MAAMA;OAC9EG;AAIT,GAAE"}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- export { DefaultAccountIcon } from './Default/index.js';
3
2
  export { GravatarAccountIcon } from './Gravatar/index.js';
4
3
  export declare const Account: () => React.JSX.Element;
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Account/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,eAAO,MAAM,OAAO,yBAcnB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Account/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,eAAO,MAAM,OAAO,yBAenB,CAAA"}
@@ -4,24 +4,15 @@ import React from 'react';
4
4
  import { useAuth } from '../../providers/Auth/index.js';
5
5
  import { useConfig } from '../../providers/Config/index.js';
6
6
  import { DefaultAccountIcon } from './Default/index.js';
7
- export { DefaultAccountIcon } from './Default/index.js';
8
- import { GravatarAccountIcon } from './Gravatar/index.js';
9
7
  export { GravatarAccountIcon } from './Gravatar/index.js';
10
8
  export const Account = ()=>{
11
- const { admin: { avatar: Avatar }, routes: { admin: adminRoute } } = useConfig();
9
+ const { admin: { avatar: Avatar }, admin: { routes: { account: accountRoute } }, routes: { admin: adminRoute } } = useConfig();
12
10
  const { user } = useAuth();
13
11
  const pathname = usePathname();
14
- const isOnAccountPage = pathname === `${adminRoute}/account`;
12
+ const isOnAccountPage = pathname === `${adminRoute}${accountRoute}`;
15
13
  if (!user?.email || Avatar === 'default') return /*#__PURE__*/ React.createElement(DefaultAccountIcon, {
16
14
  active: isOnAccountPage
17
15
  });
18
- if (Avatar === 'gravatar') return /*#__PURE__*/ React.createElement(GravatarAccountIcon, null);
19
- if (Avatar) return /*#__PURE__*/ React.createElement(Avatar, {
20
- active: isOnAccountPage
21
- });
22
- return /*#__PURE__*/ React.createElement(DefaultAccountIcon, {
23
- active: isOnAccountPage
24
- });
25
16
  };
26
17
 
27
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/graphics/Account/index.tsx"],"sourcesContent":["'use client'\nimport { usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DefaultAccountIcon } from './Default/index.js'\nexport { DefaultAccountIcon } from './Default/index.js'\nimport { GravatarAccountIcon } from './Gravatar/index.js'\nexport { GravatarAccountIcon } from './Gravatar/index.js'\n\nexport const Account = () => {\n const {\n admin: { avatar: Avatar },\n routes: { admin: adminRoute },\n } = useConfig()\n const { user } = useAuth()\n const pathname = usePathname()\n\n const isOnAccountPage = pathname === `${adminRoute}/account`\n\n if (!user?.email || Avatar === 'default') return <DefaultAccountIcon active={isOnAccountPage} />\n if (Avatar === 'gravatar') return <GravatarAccountIcon />\n if (Avatar) return <Avatar active={isOnAccountPage} />\n return <DefaultAccountIcon active={isOnAccountPage} />\n}\n"],"names":["usePathname","React","useAuth","useConfig","DefaultAccountIcon","GravatarAccountIcon","Account","admin","avatar","Avatar","routes","adminRoute","user","pathname","isOnAccountPage","email","active"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,WAAW,QAAQ,qBAAoB;AAChD,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,kBAAkB,QAAQ,qBAAoB;AACvD,SAASA,kBAAkB,QAAQ,qBAAoB;AACvD,SAASC,mBAAmB,QAAQ,sBAAqB;AACzD,SAASA,mBAAmB,QAAQ,sBAAqB;AAEzD,OAAO,MAAMC,UAAU;IACrB,MAAM,EACJC,OAAO,EAAEC,QAAQC,MAAM,EAAE,EACzBC,QAAQ,EAAEH,OAAOI,UAAU,EAAE,EAC9B,GAAGR;IACJ,MAAM,EAAES,IAAI,EAAE,GAAGV;IACjB,MAAMW,WAAWb;IAEjB,MAAMc,kBAAkBD,aAAa,CAAC,EAAEF,WAAW,QAAQ,CAAC;IAE5D,IAAI,CAACC,MAAMG,SAASN,WAAW,WAAW,qBAAO,oBAACL;QAAmBY,QAAQF;;IAC7E,IAAIL,WAAW,YAAY,qBAAO,oBAACJ;IACnC,IAAII,QAAQ,qBAAO,oBAACA;QAAOO,QAAQF;;IACnC,qBAAO,oBAACV;QAAmBY,QAAQF;;AACrC,EAAC"}
1
+ {"version":3,"sources":["../../../src/graphics/Account/index.tsx"],"sourcesContent":["'use client'\nimport { usePathname } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DefaultAccountIcon } from './Default/index.js'\nexport { GravatarAccountIcon } from './Gravatar/index.js'\n\nexport const Account = () => {\n const {\n admin: { avatar: Avatar },\n admin: {\n routes: { account: accountRoute },\n },\n routes: { admin: adminRoute },\n } = useConfig()\n\n const { user } = useAuth()\n const pathname = usePathname()\n\n const isOnAccountPage = pathname === `${adminRoute}${accountRoute}`\n\n if (!user?.email || Avatar === 'default') return <DefaultAccountIcon active={isOnAccountPage} />\n}\n"],"names":["usePathname","React","useAuth","useConfig","DefaultAccountIcon","GravatarAccountIcon","Account","admin","avatar","Avatar","routes","account","accountRoute","adminRoute","user","pathname","isOnAccountPage","email","active"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,WAAW,QAAQ,qBAAoB;AAChD,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,kBAAkB,QAAQ,qBAAoB;AACvD,SAASC,mBAAmB,QAAQ,sBAAqB;AAEzD,OAAO,MAAMC,UAAU;IACrB,MAAM,EACJC,OAAO,EAAEC,QAAQC,MAAM,EAAE,EACzBF,OAAO,EACLG,QAAQ,EAAEC,SAASC,YAAY,EAAE,EAClC,EACDF,QAAQ,EAAEH,OAAOM,UAAU,EAAE,EAC9B,GAAGV;IAEJ,MAAM,EAAEW,IAAI,EAAE,GAAGZ;IACjB,MAAMa,WAAWf;IAEjB,MAAMgB,kBAAkBD,aAAa,CAAC,EAAEF,WAAW,EAAED,aAAa,CAAC;IAEnE,IAAI,CAACE,MAAMG,SAASR,WAAW,WAAW,qBAAO,oBAACL;QAAmBc,QAAQF;;AAC/E,EAAC"}
@@ -1,3 +1,5 @@
1
1
  import React from 'react';
2
- export declare const Icon: React.FC;
2
+ export declare const PayloadIcon: React.FC<{
3
+ fill?: string;
4
+ }>;
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Icon/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2CvC,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAUxB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Icon/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAkBA,CAAA"}
@@ -1,45 +1,19 @@
1
- import React, { Fragment } from 'react';
2
- import { useComponentMap } from '../../providers/ComponentMap/index.js';
3
- import { useTranslation } from '../../providers/Translation/index.js';
4
- const css = `
5
- .graphic-icon {
6
- width: 18px;
7
- height: 18px;
8
- }
9
-
10
- .graphic-icon path {
11
- fill: var(--theme-elevation-1000);
12
- }
13
-
14
- @media (max-width: 768px) {
15
- .graphic-icon {
16
- width: 16px;
17
- height: 16px;
18
- }
19
- }
20
- `;
21
- const PayloadIcon = ()=>{
22
- const { t } = useTranslation();
23
- return /*#__PURE__*/ React.createElement("span", {
24
- title: t('general:dashboard')
25
- }, /*#__PURE__*/ React.createElement("svg", {
1
+ import React from 'react';
2
+ export const PayloadIcon = ({ fill: fillFromProps })=>{
3
+ const fill = fillFromProps || 'var(--theme-elevation-1000)';
4
+ return /*#__PURE__*/ React.createElement("svg", {
26
5
  className: "graphic-icon",
27
6
  height: "100%",
28
7
  viewBox: "0 0 25 25",
29
8
  width: "100%",
30
9
  xmlns: "http://www.w3.org/2000/svg"
31
- }, /*#__PURE__*/ React.createElement("style", null, css), /*#__PURE__*/ React.createElement("path", {
32
- d: "M11.5293 0L23 6.90096V19.9978L14.3608 25V11.9032L2.88452 5.00777L11.5293 0Z"
10
+ }, /*#__PURE__*/ React.createElement("path", {
11
+ d: "M11.5293 0L23 6.90096V19.9978L14.3608 25V11.9032L2.88452 5.00777L11.5293 0Z",
12
+ fill: fill
33
13
  }), /*#__PURE__*/ React.createElement("path", {
34
- d: "M10.6559 24.2727V14.0518L2 19.0651L10.6559 24.2727Z"
35
- })));
36
- };
37
- export const Icon = ()=>{
38
- const { componentMap: { Icon: CustomIcon } } = useComponentMap();
39
- if (CustomIcon) {
40
- return /*#__PURE__*/ React.createElement(Fragment, null, CustomIcon);
41
- }
42
- return /*#__PURE__*/ React.createElement(PayloadIcon, null);
14
+ d: "M10.6559 24.2727V14.0518L2 19.0651L10.6559 24.2727Z",
15
+ fill: fill
16
+ }));
43
17
  };
44
18
 
45
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/graphics/Icon/index.tsx"],"sourcesContent":["import React, { Fragment } from 'react'\n\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst css = `\n .graphic-icon {\n width: 18px;\n height: 18px;\n }\n\n .graphic-icon path {\n fill: var(--theme-elevation-1000);\n }\n\n @media (max-width: 768px) {\n .graphic-icon {\n width: 16px;\n height: 16px;\n }\n }\n`\n\nconst PayloadIcon: React.FC = () => {\n const { t } = useTranslation()\n\n return (\n <span title={t('general:dashboard')}>\n <svg\n className=\"graphic-icon\"\n height=\"100%\"\n viewBox=\"0 0 25 25\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <style>{css}</style>\n <path d=\"M11.5293 0L23 6.90096V19.9978L14.3608 25V11.9032L2.88452 5.00777L11.5293 0Z\" />\n <path d=\"M10.6559 24.2727V14.0518L2 19.0651L10.6559 24.2727Z\" />\n </svg>\n </span>\n )\n}\n\nexport const Icon: React.FC = () => {\n const {\n componentMap: { Icon: CustomIcon },\n } = useComponentMap()\n\n if (CustomIcon) {\n return <Fragment>{CustomIcon}</Fragment>\n }\n\n return <PayloadIcon />\n}\n"],"names":["React","Fragment","useComponentMap","useTranslation","css","PayloadIcon","t","span","title","svg","className","height","viewBox","width","xmlns","style","path","d","Icon","componentMap","CustomIcon"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AAErE,MAAMC,MAAM,CAAC;;;;;;;;;;;;;;;;AAgBb,CAAC;AAED,MAAMC,cAAwB;IAC5B,MAAM,EAAEC,CAAC,EAAE,GAAGH;IAEd,qBACE,oBAACI;QAAKC,OAAOF,EAAE;qBACb,oBAACG;QACCC,WAAU;QACVC,QAAO;QACPC,SAAQ;QACRC,OAAM;QACNC,OAAM;qBAEN,oBAACC,eAAOX,oBACR,oBAACY;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;;AAIhB;AAEA,OAAO,MAAMC,OAAiB;IAC5B,MAAM,EACJC,cAAc,EAAED,MAAME,UAAU,EAAE,EACnC,GAAGlB;IAEJ,IAAIkB,YAAY;QACd,qBAAO,oBAACnB,gBAAUmB;IACpB;IAEA,qBAAO,oBAACf;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../src/graphics/Icon/index.tsx"],"sourcesContent":["import React from 'react'\n\nexport const PayloadIcon: React.FC<{\n fill?: string\n}> = ({ fill: fillFromProps }) => {\n const fill = fillFromProps || 'var(--theme-elevation-1000)'\n\n return (\n <svg\n className=\"graphic-icon\"\n height=\"100%\"\n viewBox=\"0 0 25 25\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5293 0L23 6.90096V19.9978L14.3608 25V11.9032L2.88452 5.00777L11.5293 0Z\"\n fill={fill}\n />\n <path d=\"M10.6559 24.2727V14.0518L2 19.0651L10.6559 24.2727Z\" fill={fill} />\n </svg>\n )\n}\n"],"names":["React","PayloadIcon","fill","fillFromProps","svg","className","height","viewBox","width","xmlns","path","d"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAEzB,OAAO,MAAMC,cAER,CAAC,EAAEC,MAAMC,aAAa,EAAE;IAC3B,MAAMD,OAAOC,iBAAiB;IAE9B,qBACE,oBAACC;QACCC,WAAU;QACVC,QAAO;QACPC,SAAQ;QACRC,OAAM;QACNC,OAAM;qBAEN,oBAACC;QACCC,GAAE;QACFT,MAAMA;sBAER,oBAACQ;QAAKC,GAAE;QAAsDT,MAAMA;;AAG1E,EAAC"}
@@ -1,6 +1,4 @@
1
- import type { Payload } from 'payload';
1
+ import type { ServerProps } from 'payload/config';
2
2
  import React from 'react';
3
- export declare const Logo: React.FC<{
4
- payload: Payload;
5
- }>;
3
+ export declare const Logo: React.FC<ServerProps>;
6
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Logo/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAgCzB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAoBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Logo/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,KAAK,MAAM,OAAO,CAAA;AAgCzB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4BtC,CAAA"}
@@ -32,14 +32,22 @@ const PayloadLogo = ()=>/*#__PURE__*/ React.createElement("svg", {
32
32
  d: "M17.4097 48.5454V28.1035L0.132324 38.1301L17.4097 48.5454Z"
33
33
  }));
34
34
  export const Logo = (props)=>{
35
- const { payload } = props;
35
+ const { i18n, locale, params, payload, permissions, searchParams, user } = props;
36
36
  const { admin: { components: { graphics: { Logo: CustomLogo } = {
37
37
  Logo: undefined
38
38
  } } = {} } = {} } = payload.config;
39
39
  return /*#__PURE__*/ React.createElement(RenderCustomComponent, {
40
40
  CustomComponent: CustomLogo,
41
41
  DefaultComponent: PayloadLogo,
42
- payload: payload
42
+ serverOnlyProps: {
43
+ i18n,
44
+ locale,
45
+ params,
46
+ payload,
47
+ permissions,
48
+ searchParams,
49
+ user
50
+ }
43
51
  });
44
52
  };
45
53
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/graphics/Logo/index.tsx"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport React from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\n\nconst css = `\n .graphic-logo path {\n fill: var(--theme-elevation-1000);\n }\n`\n\nconst PayloadLogo: React.FC = () => (\n <svg\n className=\"graphic-logo\"\n fill=\"none\"\n height=\"50\"\n viewBox=\"0 0 180 50\"\n width=\"180\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <style>{css}</style>\n <path d=\"M65.922 13.8685C71.1075 13.8685 77.0257 14.6014 77.0257 22.2185C77.0257 28.6587 71.8736 30.2243 66.0664 30.2243H62.2689V39.0961H57.2944V13.8685H65.922ZM62.2689 17.7659V26.3602H66.3773C69.4752 26.3602 71.9069 25.594 71.9069 22.2518C71.9069 18.1101 68.7424 17.7659 66.022 17.7659H62.2689Z\" />\n <path d=\"M84.3209 39.5514C80.7344 39.5514 77.5698 37.4639 77.5698 34.0884C77.5698 29.6358 82.5443 28.3145 89.8949 27.4706V27.1264C89.8949 24.2394 88.3626 23.2623 86.3084 23.2623C84.2542 23.2623 82.7219 24.2394 82.622 26.2936H78.1361C78.4803 22.6072 81.7226 19.8867 86.4861 19.8867C91.1163 19.8867 94.7028 21.7633 94.7028 28.1035C94.7028 28.692 94.6362 31.2014 94.6362 32.9114C94.6362 35.865 94.8472 37.5416 95.1914 39.1073H90.7721C90.6278 38.5188 90.4945 37.6083 90.4279 36.7089C89.0844 38.6853 87.1412 39.5514 84.3209 39.5514ZM90.0282 30.5463C84.6651 31.1015 82.511 31.7344 82.511 33.8219C82.511 35.1766 83.588 36.298 85.7532 36.298C88.7512 36.298 90.0393 34.5547 90.0393 31.4901V30.5463H90.0282Z\" />\n <path d=\"M97.2899 45.1921V41.5057H99.0998C100.699 41.5057 101.432 41.539 102.231 39.5514L102.442 39.0295L95.269 20.3753H100.521L104.763 33.8774L109.115 20.3753H113.99L107.139 38.541C104.951 44.3593 103.974 45.1921 99.3108 45.1921H97.2899Z\" />\n <path d=\"M120.263 39.1073H115.456V13.8685H120.263V39.1073Z\" />\n <path d=\"M122.406 29.7801C122.406 23.2067 126.826 19.9645 131.7 19.9645C136.575 19.9645 140.994 23.2067 140.994 29.7801C140.994 36.3535 136.575 39.5625 131.7 39.5625C126.826 39.5514 122.406 36.3535 122.406 29.7801ZM127.281 29.7801C127.281 33.6775 128.913 35.7984 131.7 35.7984C134.487 35.7984 136.119 33.6775 136.119 29.7801C136.119 25.8494 134.487 23.7286 131.7 23.7286C128.913 23.7286 127.281 25.8383 127.281 29.7801Z\" />\n <path d=\"M149.167 39.5514C145.58 39.5514 142.416 37.4639 142.416 34.0884C142.416 29.6358 147.39 28.3145 154.741 27.4706V27.1264C154.741 24.2394 153.208 23.2623 151.154 23.2623C149.1 23.2623 147.568 24.2394 147.468 26.2936H142.982C143.326 22.6072 146.568 19.8867 151.332 19.8867C155.962 19.8867 159.549 21.7633 159.549 28.1035C159.549 28.692 159.482 31.2014 159.482 32.9114C159.482 35.865 159.693 37.5416 160.037 39.1073H155.618C155.473 38.5188 155.34 37.6083 155.274 36.7089C153.941 38.6853 151.987 39.5514 149.167 39.5514ZM154.874 30.5463C149.511 31.1015 147.357 31.7344 147.357 33.8219C147.357 35.1766 148.434 36.298 150.599 36.298C153.597 36.298 154.885 34.5547 154.885 31.4901V30.5463H154.874Z\" />\n <path d=\"M175.06 39.1073V36.7422C173.872 38.7964 171.618 39.5625 169.664 39.5625C165.067 39.5625 161.625 35.7317 161.625 29.7468C161.625 23.8619 165 19.9645 169.664 19.9645C172.029 19.9645 174.05 21.0415 175.06 22.7848V13.8796H179.868V39.1073H175.06ZM175.238 29.7357C175.238 25.9716 173.494 23.6398 170.852 23.6398C168.242 23.6398 166.677 26.1159 166.677 29.7691C166.677 33.4222 168.242 35.865 170.852 35.865C173.494 35.865 175.238 33.5665 175.238 29.7357Z\" />\n <path d=\"M19.1531 0L42.049 13.8019V39.9956L24.8049 50V23.8064L1.89795 10.0155L19.1531 0Z\" />\n <path d=\"M17.4097 48.5454V28.1035L0.132324 38.1301L17.4097 48.5454Z\" />\n </svg>\n)\n\nexport const Logo: React.FC<{\n payload: Payload\n}> = (props) => {\n const { payload } = props\n\n const {\n admin: {\n components: {\n graphics: { Logo: CustomLogo } = {\n Logo: undefined,\n },\n } = {},\n } = {},\n } = payload.config\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomLogo}\n DefaultComponent={PayloadLogo}\n payload={payload}\n />\n )\n}\n"],"names":["React","RenderCustomComponent","css","PayloadLogo","svg","className","fill","height","viewBox","width","xmlns","style","path","d","Logo","props","payload","admin","components","graphics","CustomLogo","undefined","config","CustomComponent","DefaultComponent"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,gDAA+C;AAErF,MAAMC,MAAM,CAAC;;;;AAIb,CAAC;AAED,MAAMC,cAAwB,kBAC5B,oBAACC;QACCC,WAAU;QACVC,MAAK;QACLC,QAAO;QACPC,SAAQ;QACRC,OAAM;QACNC,OAAM;qBAEN,oBAACC,eAAOT,oBACR,oBAACU;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;;AAIZ,OAAO,MAAMC,OAER,CAACC;IACJ,MAAM,EAAEC,OAAO,EAAE,GAAGD;IAEpB,MAAM,EACJE,OAAO,EACLC,YAAY,EACVC,UAAU,EAAEL,MAAMM,UAAU,EAAE,GAAG;QAC/BN,MAAMO;IACR,CAAC,EACF,GAAG,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,EACP,GAAGL,QAAQM,MAAM;IAElB,qBACE,oBAACrB;QACCsB,iBAAiBH;QACjBI,kBAAkBrB;QAClBa,SAASA;;AAGf,EAAC"}
1
+ {"version":3,"sources":["../../../src/graphics/Logo/index.tsx"],"sourcesContent":["import type { ServerProps } from 'payload/config'\n\nimport React from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\n\nconst css = `\n .graphic-logo path {\n fill: var(--theme-elevation-1000);\n }\n`\n\nconst PayloadLogo: React.FC = () => (\n <svg\n className=\"graphic-logo\"\n fill=\"none\"\n height=\"50\"\n viewBox=\"0 0 180 50\"\n width=\"180\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <style>{css}</style>\n <path d=\"M65.922 13.8685C71.1075 13.8685 77.0257 14.6014 77.0257 22.2185C77.0257 28.6587 71.8736 30.2243 66.0664 30.2243H62.2689V39.0961H57.2944V13.8685H65.922ZM62.2689 17.7659V26.3602H66.3773C69.4752 26.3602 71.9069 25.594 71.9069 22.2518C71.9069 18.1101 68.7424 17.7659 66.022 17.7659H62.2689Z\" />\n <path d=\"M84.3209 39.5514C80.7344 39.5514 77.5698 37.4639 77.5698 34.0884C77.5698 29.6358 82.5443 28.3145 89.8949 27.4706V27.1264C89.8949 24.2394 88.3626 23.2623 86.3084 23.2623C84.2542 23.2623 82.7219 24.2394 82.622 26.2936H78.1361C78.4803 22.6072 81.7226 19.8867 86.4861 19.8867C91.1163 19.8867 94.7028 21.7633 94.7028 28.1035C94.7028 28.692 94.6362 31.2014 94.6362 32.9114C94.6362 35.865 94.8472 37.5416 95.1914 39.1073H90.7721C90.6278 38.5188 90.4945 37.6083 90.4279 36.7089C89.0844 38.6853 87.1412 39.5514 84.3209 39.5514ZM90.0282 30.5463C84.6651 31.1015 82.511 31.7344 82.511 33.8219C82.511 35.1766 83.588 36.298 85.7532 36.298C88.7512 36.298 90.0393 34.5547 90.0393 31.4901V30.5463H90.0282Z\" />\n <path d=\"M97.2899 45.1921V41.5057H99.0998C100.699 41.5057 101.432 41.539 102.231 39.5514L102.442 39.0295L95.269 20.3753H100.521L104.763 33.8774L109.115 20.3753H113.99L107.139 38.541C104.951 44.3593 103.974 45.1921 99.3108 45.1921H97.2899Z\" />\n <path d=\"M120.263 39.1073H115.456V13.8685H120.263V39.1073Z\" />\n <path d=\"M122.406 29.7801C122.406 23.2067 126.826 19.9645 131.7 19.9645C136.575 19.9645 140.994 23.2067 140.994 29.7801C140.994 36.3535 136.575 39.5625 131.7 39.5625C126.826 39.5514 122.406 36.3535 122.406 29.7801ZM127.281 29.7801C127.281 33.6775 128.913 35.7984 131.7 35.7984C134.487 35.7984 136.119 33.6775 136.119 29.7801C136.119 25.8494 134.487 23.7286 131.7 23.7286C128.913 23.7286 127.281 25.8383 127.281 29.7801Z\" />\n <path d=\"M149.167 39.5514C145.58 39.5514 142.416 37.4639 142.416 34.0884C142.416 29.6358 147.39 28.3145 154.741 27.4706V27.1264C154.741 24.2394 153.208 23.2623 151.154 23.2623C149.1 23.2623 147.568 24.2394 147.468 26.2936H142.982C143.326 22.6072 146.568 19.8867 151.332 19.8867C155.962 19.8867 159.549 21.7633 159.549 28.1035C159.549 28.692 159.482 31.2014 159.482 32.9114C159.482 35.865 159.693 37.5416 160.037 39.1073H155.618C155.473 38.5188 155.34 37.6083 155.274 36.7089C153.941 38.6853 151.987 39.5514 149.167 39.5514ZM154.874 30.5463C149.511 31.1015 147.357 31.7344 147.357 33.8219C147.357 35.1766 148.434 36.298 150.599 36.298C153.597 36.298 154.885 34.5547 154.885 31.4901V30.5463H154.874Z\" />\n <path d=\"M175.06 39.1073V36.7422C173.872 38.7964 171.618 39.5625 169.664 39.5625C165.067 39.5625 161.625 35.7317 161.625 29.7468C161.625 23.8619 165 19.9645 169.664 19.9645C172.029 19.9645 174.05 21.0415 175.06 22.7848V13.8796H179.868V39.1073H175.06ZM175.238 29.7357C175.238 25.9716 173.494 23.6398 170.852 23.6398C168.242 23.6398 166.677 26.1159 166.677 29.7691C166.677 33.4222 168.242 35.865 170.852 35.865C173.494 35.865 175.238 33.5665 175.238 29.7357Z\" />\n <path d=\"M19.1531 0L42.049 13.8019V39.9956L24.8049 50V23.8064L1.89795 10.0155L19.1531 0Z\" />\n <path d=\"M17.4097 48.5454V28.1035L0.132324 38.1301L17.4097 48.5454Z\" />\n </svg>\n)\n\nexport const Logo: React.FC<ServerProps> = (props) => {\n const { i18n, locale, params, payload, permissions, searchParams, user } = props\n\n const {\n admin: {\n components: {\n graphics: { Logo: CustomLogo } = {\n Logo: undefined,\n },\n } = {},\n } = {},\n } = payload.config\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomLogo}\n DefaultComponent={PayloadLogo}\n serverOnlyProps={{\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n )\n}\n"],"names":["React","RenderCustomComponent","css","PayloadLogo","svg","className","fill","height","viewBox","width","xmlns","style","path","d","Logo","props","i18n","locale","params","payload","permissions","searchParams","user","admin","components","graphics","CustomLogo","undefined","config","CustomComponent","DefaultComponent","serverOnlyProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,gDAA+C;AAErF,MAAMC,MAAM,CAAC;;;;AAIb,CAAC;AAED,MAAMC,cAAwB,kBAC5B,oBAACC;QACCC,WAAU;QACVC,MAAK;QACLC,QAAO;QACPC,SAAQ;QACRC,OAAM;QACNC,OAAM;qBAEN,oBAACC,eAAOT,oBACR,oBAACU;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;sBACR,oBAACD;QAAKC,GAAE;;AAIZ,OAAO,MAAMC,OAA8B,CAACC;IAC1C,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAEC,WAAW,EAAEC,YAAY,EAAEC,IAAI,EAAE,GAAGP;IAE3E,MAAM,EACJQ,OAAO,EACLC,YAAY,EACVC,UAAU,EAAEX,MAAMY,UAAU,EAAE,GAAG;QAC/BZ,MAAMa;IACR,CAAC,EACF,GAAG,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,EACP,GAAGR,QAAQS,MAAM;IAElB,qBACE,oBAAC3B;QACC4B,iBAAiBH;QACjBI,kBAAkB3B;QAClB4B,iBAAiB;YACff;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;;AAGN,EAAC"}
@@ -1,4 +1,6 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
- export declare const Edit: React.FC;
3
+ export declare const Edit: React.FC<{
4
+ className?: string;
5
+ }>;
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Edit/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAmBxB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Edit/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAuBjD,CAAA"}
@@ -1,6 +1,9 @@
1
1
  import React from 'react';
2
- export const Edit = ()=>/*#__PURE__*/ React.createElement("svg", {
3
- className: "icon icon--edit",
2
+ export const Edit = ({ className })=>/*#__PURE__*/ React.createElement("svg", {
3
+ className: [
4
+ className,
5
+ 'icon icon--edit'
6
+ ].filter(Boolean).join(' '),
4
7
  viewBox: "0 0 25 25",
5
8
  xmlns: "http://www.w3.org/2000/svg"
6
9
  }, /*#__PURE__*/ React.createElement("polygon", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/icons/Edit/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const Edit: React.FC = () => (\n <svg className=\"icon icon--edit\" viewBox=\"0 0 25 25\" xmlns=\"http://www.w3.org/2000/svg\">\n <polygon\n className=\"fill\"\n points=\"16.92 16.86 8.25 16.86 8.25 8.21 12.54 8.21 12.54 6.63 6.68 6.63 6.68 18.43 18.5 18.43 18.5 12.53 16.92 12.53 16.92 16.86\"\n />\n <polygon\n className=\"fill\"\n points=\"16.31 7.33 17.42 8.44 12.66 13.2 11.51 13.24 11.55 12.09 16.31 7.33\"\n />\n <rect\n className=\"fill\"\n height=\"1.15\"\n transform=\"translate(10.16 -10.48) rotate(45)\"\n width=\"1.58\"\n x=\"16.94\"\n y=\"6.44\"\n />\n </svg>\n)\n"],"names":["React","Edit","svg","className","viewBox","xmlns","polygon","points","rect","height","transform","width","x","y"],"rangeMappings":";;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAIzB,OAAO,MAAMC,OAAiB,kBAC5B,oBAACC;QAAIC,WAAU;QAAkBC,SAAQ;QAAYC,OAAM;qBACzD,oBAACC;QACCH,WAAU;QACVI,QAAO;sBAET,oBAACD;QACCH,WAAU;QACVI,QAAO;sBAET,oBAACC;QACCL,WAAU;QACVM,QAAO;QACPC,WAAU;QACVC,OAAM;QACNC,GAAE;QACFC,GAAE;QAGP"}
1
+ {"version":3,"sources":["../../../src/icons/Edit/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const Edit: React.FC<{ className?: string }> = ({ className }) => (\n <svg\n className={[className, 'icon icon--edit'].filter(Boolean).join(' ')}\n viewBox=\"0 0 25 25\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <polygon\n className=\"fill\"\n points=\"16.92 16.86 8.25 16.86 8.25 8.21 12.54 8.21 12.54 6.63 6.68 6.63 6.68 18.43 18.5 18.43 18.5 12.53 16.92 12.53 16.92 16.86\"\n />\n <polygon\n className=\"fill\"\n points=\"16.31 7.33 17.42 8.44 12.66 13.2 11.51 13.24 11.55 12.09 16.31 7.33\"\n />\n <rect\n className=\"fill\"\n height=\"1.15\"\n transform=\"translate(10.16 -10.48) rotate(45)\"\n width=\"1.58\"\n x=\"16.94\"\n y=\"6.44\"\n />\n </svg>\n)\n"],"names":["React","Edit","className","svg","filter","Boolean","join","viewBox","xmlns","polygon","points","rect","height","transform","width","x","y"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAIzB,OAAO,MAAMC,OAAyC,CAAC,EAAEC,SAAS,EAAE,iBAClE,oBAACC;QACCD,WAAW;YAACA;YAAW;SAAkB,CAACE,MAAM,CAACC,SAASC,IAAI,CAAC;QAC/DC,SAAQ;QACRC,OAAM;qBAEN,oBAACC;QACCP,WAAU;QACVQ,QAAO;sBAET,oBAACD;QACCP,WAAU;QACVQ,QAAO;sBAET,oBAACC;QACCT,WAAU;QACVU,QAAO;QACPC,WAAU;QACVC,OAAM;QACNC,GAAE;QACFC,GAAE;QAGP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAO3D,OAAO,KAAsE,MAAM,OAAO,CAAA;AAS1F,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAChB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAyShE,CAAA;AAED,eAAO,MAAM,OAAO,wBAAwB,YAAY,CAAC,CAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAM3D,OAAO,KAAsE,MAAM,OAAO,CAAA;AAU1F,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/C,kBAAkB,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAChB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAkThE,CAAA;AAED,eAAO,MAAM,OAAO,wBAAwB,YAAY,CAAC,CAA0C,CAAA"}
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import * as facelessUIImport from '@faceless-ui/modal';
3
- import { stayLoggedInModalSlug } from '@payloadcms/ui/elements/StayLoggedIn';
4
3
  import { usePathname, useRouter } from 'next/navigation.js';
5
4
  import qs from 'qs';
6
5
  import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
7
6
  import { toast } from 'react-toastify';
7
+ import { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js';
8
8
  import { useDebounce } from '../../hooks/useDebounce.js';
9
9
  import { useTranslation } from '../../providers/Translation/index.js';
10
10
  import { requests } from '../../utilities/api.js';
@@ -24,7 +24,7 @@ export const AuthProvider = ({ children })=>{
24
24
  const code = 'en' // TODO: re-enable i18n asap
25
25
  ;
26
26
  const config = useConfig();
27
- const { admin: { autoLogin, inactivityRoute: logoutInactivityRoute, user: userSlug }, routes: { admin, api }, serverURL } = config;
27
+ const { admin: { autoLogin, routes: { inactivity: logoutInactivityRoute }, routes: { login: loginRoute }, user: userSlug }, routes: { admin, api }, serverURL } = config;
28
28
  const [permissions, setPermissions] = useState();
29
29
  const { i18n } = useTranslation();
30
30
  const { closeAllModals, openModal } = useModal();
@@ -179,7 +179,7 @@ export const AuthProvider = ({ children })=>{
179
179
  } else if (autoLogin && autoLogin.prefillOnly !== true) {
180
180
  // auto log-in with the provided autoLogin credentials. This is used in dev mode
181
181
  // so you don't have to log in over and over again
182
- const autoLoginResult = await requests.post(`${serverURL}${api}/${userSlug}/login`, {
182
+ const autoLoginResult = await requests.post(`${serverURL}${api}/${userSlug}${loginRoute}`, {
183
183
  body: JSON.stringify({
184
184
  email: autoLogin.email,
185
185
  password: autoLogin.password
@@ -218,7 +218,8 @@ export const AuthProvider = ({ children })=>{
218
218
  router,
219
219
  searchParams,
220
220
  admin,
221
- revokeTokenAndExpire
221
+ revokeTokenAndExpire,
222
+ loginRoute
222
223
  ]);
223
224
  // On mount, get user and set
224
225
  useEffect(()=>{