@payloadcms/ui 3.0.0-canary.a7293f6 → 3.0.0-canary.ab70b75

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 (236) hide show
  1. package/dist/elements/AddNewRelation/index.scss +36 -34
  2. package/dist/elements/AppHeader/index.scss +151 -150
  3. package/dist/elements/ArrayAction/index.scss +23 -21
  4. package/dist/elements/Autosave/index.scss +4 -2
  5. package/dist/elements/Banner/index.scss +51 -49
  6. package/dist/elements/BulkUpload/ActionsBar/index.scss +45 -43
  7. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -1
  8. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/AddFilesView/index.js +2 -0
  10. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/AddFilesView/index.scss +23 -21
  12. package/dist/elements/BulkUpload/AddingFilesView/index.scss +16 -14
  13. package/dist/elements/BulkUpload/DrawerCloseButton/index.scss +23 -21
  14. package/dist/elements/BulkUpload/EditForm/index.scss +6 -4
  15. package/dist/elements/BulkUpload/FileSidebar/index.scss +214 -212
  16. package/dist/elements/BulkUpload/Header/index.scss +11 -9
  17. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  18. package/dist/elements/BulkUpload/index.js +22 -42
  19. package/dist/elements/BulkUpload/index.js.map +1 -1
  20. package/dist/elements/Button/index.scss +202 -200
  21. package/dist/elements/Card/index.scss +58 -56
  22. package/dist/elements/CodeEditor/index.scss +16 -14
  23. package/dist/elements/Collapsible/index.scss +125 -123
  24. package/dist/elements/ColumnSelector/index.scss +36 -34
  25. package/dist/elements/CopyToClipboard/index.scss +21 -19
  26. package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
  27. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  28. package/dist/elements/DatePicker/DatePicker.js +1 -1
  29. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  30. package/dist/elements/DatePicker/index.scss +309 -307
  31. package/dist/elements/DatePicker/library.scss +859 -0
  32. package/dist/elements/DeleteDocument/index.scss +32 -30
  33. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  34. package/dist/elements/DeleteMany/index.js +16 -5
  35. package/dist/elements/DeleteMany/index.js.map +1 -1
  36. package/dist/elements/DeleteMany/index.scss +29 -27
  37. package/dist/elements/DocumentControls/index.js +1 -1
  38. package/dist/elements/DocumentControls/index.js.map +1 -1
  39. package/dist/elements/DocumentControls/index.scss +190 -188
  40. package/dist/elements/DocumentDrawer/index.scss +55 -53
  41. package/dist/elements/DocumentFields/index.scss +144 -142
  42. package/dist/elements/Drawer/index.scss +111 -109
  43. package/dist/elements/Dropzone/index.scss +32 -30
  44. package/dist/elements/DuplicateDocument/index.scss +31 -29
  45. package/dist/elements/EditMany/index.scss +162 -160
  46. package/dist/elements/EditUpload/index.scss +180 -178
  47. package/dist/elements/ErrorPill/index.scss +27 -25
  48. package/dist/elements/FieldSelect/index.scss +4 -2
  49. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +25 -23
  50. package/dist/elements/FileDetails/FileMeta/index.scss +21 -19
  51. package/dist/elements/FileDetails/StaticFileDetails/index.scss +104 -102
  52. package/dist/elements/GenerateConfirmation/index.scss +29 -27
  53. package/dist/elements/Gutter/index.scss +14 -12
  54. package/dist/elements/Hamburger/index.scss +38 -36
  55. package/dist/elements/IDLabel/index.scss +11 -9
  56. package/dist/elements/ListControls/index.scss +71 -69
  57. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  58. package/dist/elements/ListDrawer/DrawerContent.js +61 -57
  59. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  60. package/dist/elements/ListDrawer/index.scss +93 -91
  61. package/dist/elements/ListHeader/index.scss +9 -7
  62. package/dist/elements/ListSelection/index.scss +14 -12
  63. package/dist/elements/Loading/index.scss +108 -106
  64. package/dist/elements/Localizer/LocalizerLabel/index.scss +44 -42
  65. package/dist/elements/Localizer/index.scss +7 -5
  66. package/dist/elements/Locked/index.scss +11 -9
  67. package/dist/elements/Nav/NavToggler/index.scss +9 -7
  68. package/dist/elements/NavGroup/index.scss +43 -41
  69. package/dist/elements/Pagination/ClickableArrow/index.scss +34 -32
  70. package/dist/elements/Pagination/index.scss +40 -38
  71. package/dist/elements/PerPage/index.scss +37 -35
  72. package/dist/elements/Pill/index.scss +103 -101
  73. package/dist/elements/Popup/PopupButtonList/index.scss +45 -43
  74. package/dist/elements/Popup/PopupTrigger/index.scss +23 -21
  75. package/dist/elements/Popup/index.scss +185 -183
  76. package/dist/elements/PreviewSizes/index.scss +115 -113
  77. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  78. package/dist/elements/PublishMany/index.js +16 -5
  79. package/dist/elements/PublishMany/index.js.map +1 -1
  80. package/dist/elements/PublishMany/index.scss +28 -26
  81. package/dist/elements/ReactSelect/ClearIndicator/index.scss +6 -4
  82. package/dist/elements/ReactSelect/DropdownIndicator/index.scss +11 -9
  83. package/dist/elements/ReactSelect/MultiValue/index.scss +26 -24
  84. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +16 -14
  85. package/dist/elements/ReactSelect/MultiValueRemove/index.scss +20 -18
  86. package/dist/elements/ReactSelect/ValueContainer/index.scss +22 -20
  87. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  88. package/dist/elements/ReactSelect/index.js +2 -0
  89. package/dist/elements/ReactSelect/index.js.map +1 -1
  90. package/dist/elements/ReactSelect/index.scss +66 -59
  91. package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +5 -3
  92. package/dist/elements/RelationshipTable/index.scss +21 -19
  93. package/dist/elements/RenderTitle/index.scss +7 -5
  94. package/dist/elements/SearchFilter/index.scss +31 -28
  95. package/dist/elements/SelectAll/index.scss +5 -3
  96. package/dist/elements/SelectRow/index.scss +6 -4
  97. package/dist/elements/ShimmerEffect/index.scss +26 -24
  98. package/dist/elements/SortColumn/index.scss +51 -49
  99. package/dist/elements/SortComplex/index.scss +27 -25
  100. package/dist/elements/Status/index.scss +45 -43
  101. package/dist/elements/StayLoggedIn/index.scss +28 -26
  102. package/dist/elements/StepNav/index.scss +62 -61
  103. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.scss +20 -18
  104. package/dist/elements/Table/DefaultCell/fields/Code/index.scss +22 -20
  105. package/dist/elements/Table/DefaultCell/fields/File/index.scss +18 -16
  106. package/dist/elements/Table/DefaultCell/fields/JSON/index.scss +20 -18
  107. package/dist/elements/Table/DefaultCell/index.js +2 -2
  108. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  109. package/dist/elements/Table/index.scss +74 -72
  110. package/dist/elements/TableColumns/buildColumnState.js +1 -0
  111. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  112. package/dist/elements/Thumbnail/index.scss +37 -35
  113. package/dist/elements/ThumbnailCard/index.scss +31 -29
  114. package/dist/elements/Tooltip/index.scss +77 -75
  115. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  116. package/dist/elements/UnpublishMany/index.js +16 -5
  117. package/dist/elements/UnpublishMany/index.js.map +1 -1
  118. package/dist/elements/UnpublishMany/index.scss +28 -26
  119. package/dist/elements/Upload/index.d.ts.map +1 -1
  120. package/dist/elements/Upload/index.js +2 -0
  121. package/dist/elements/Upload/index.js.map +1 -1
  122. package/dist/elements/Upload/index.scss +117 -121
  123. package/dist/elements/WhereBuilder/Condition/Number/index.scss +4 -2
  124. package/dist/elements/WhereBuilder/Condition/Relationship/index.scss +9 -7
  125. package/dist/elements/WhereBuilder/Condition/Text/index.scss +4 -2
  126. package/dist/elements/WhereBuilder/Condition/index.scss +43 -41
  127. package/dist/elements/WhereBuilder/index.scss +28 -26
  128. package/dist/exports/client/{CodeEditor-4A6256PR.js → CodeEditor-VPUKDCXS.js} +1 -1
  129. package/dist/exports/client/{CodeEditor-4A6256PR.js.map → CodeEditor-VPUKDCXS.js.map} +1 -1
  130. package/dist/exports/client/{DatePicker-HNJMUG32.js → DatePicker-FUJV23KL.js} +2 -2
  131. package/dist/exports/client/{chunk-IHJK2MAT.js → chunk-UMJJTMDP.js} +2 -2
  132. package/dist/exports/client/{chunk-IHJK2MAT.js.map → chunk-UMJJTMDP.js.map} +4 -4
  133. package/dist/exports/client/index.d.ts +2 -1
  134. package/dist/exports/client/index.d.ts.map +1 -1
  135. package/dist/exports/client/index.js +22 -19
  136. package/dist/exports/client/index.js.map +4 -4
  137. package/dist/fields/Array/index.scss +74 -72
  138. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.scss +25 -23
  139. package/dist/fields/Blocks/BlocksDrawer/index.scss +36 -34
  140. package/dist/fields/Blocks/SectionTitle/index.scss +51 -49
  141. package/dist/fields/Blocks/index.scss +89 -87
  142. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  143. package/dist/fields/Checkbox/index.js +1 -0
  144. package/dist/fields/Checkbox/index.js.map +1 -1
  145. package/dist/fields/Checkbox/index.scss +107 -105
  146. package/dist/fields/Code/index.scss +18 -16
  147. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  148. package/dist/fields/Collapsible/index.scss +8 -6
  149. package/dist/fields/ConfirmPassword/index.scss +18 -16
  150. package/dist/fields/DateTime/index.scss +13 -11
  151. package/dist/fields/Email/index.scss +21 -19
  152. package/dist/fields/FieldDescription/index.scss +9 -7
  153. package/dist/fields/FieldError/index.scss +13 -11
  154. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  155. package/dist/fields/FieldLabel/index.js +58 -30
  156. package/dist/fields/FieldLabel/index.js.map +1 -1
  157. package/dist/fields/FieldLabel/index.scss +34 -10
  158. package/dist/fields/Group/index.scss +107 -105
  159. package/dist/fields/JSON/index.scss +11 -9
  160. package/dist/fields/Number/index.scss +19 -17
  161. package/dist/fields/Password/index.scss +18 -16
  162. package/dist/fields/Point/index.scss +33 -31
  163. package/dist/fields/RadioGroup/Radio/index.scss +58 -56
  164. package/dist/fields/RadioGroup/index.d.ts +1 -0
  165. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  166. package/dist/fields/RadioGroup/index.js +33 -30
  167. package/dist/fields/RadioGroup/index.js.map +1 -1
  168. package/dist/fields/RadioGroup/index.scss +57 -55
  169. package/dist/fields/Relationship/index.scss +44 -42
  170. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +40 -38
  171. package/dist/fields/Relationship/select-components/SingleValue/index.scss +43 -41
  172. package/dist/fields/Row/index.scss +31 -29
  173. package/dist/fields/Select/index.scss +16 -14
  174. package/dist/fields/Tabs/Tab/index.scss +58 -56
  175. package/dist/fields/Tabs/index.d.ts.map +1 -1
  176. package/dist/fields/Tabs/index.js +69 -53
  177. package/dist/fields/Tabs/index.js.map +1 -1
  178. package/dist/fields/Tabs/index.scss +46 -44
  179. package/dist/fields/Text/index.scss +23 -21
  180. package/dist/fields/Textarea/index.scss +89 -87
  181. package/dist/fields/Upload/HasMany/index.scss +20 -18
  182. package/dist/fields/Upload/HasOne/index.scss +5 -3
  183. package/dist/fields/Upload/Input.d.ts.map +1 -1
  184. package/dist/fields/Upload/Input.js +39 -36
  185. package/dist/fields/Upload/Input.js.map +1 -1
  186. package/dist/fields/Upload/RelationshipContent/index.scss +44 -42
  187. package/dist/fields/Upload/UploadCard/index.scss +21 -19
  188. package/dist/fields/Upload/index.scss +49 -47
  189. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  190. package/dist/forms/Form/fieldReducer.js +7 -0
  191. package/dist/forms/Form/fieldReducer.js.map +1 -1
  192. package/dist/forms/Form/index.scss +5 -3
  193. package/dist/forms/RenderFields/index.scss +47 -45
  194. package/dist/forms/Submit/index.scss +5 -3
  195. package/dist/forms/useField/index.d.ts.map +1 -1
  196. package/dist/forms/useField/index.js +1 -1
  197. package/dist/forms/useField/index.js.map +1 -1
  198. package/dist/graphics/Account/Default/index.scss +43 -41
  199. package/dist/icons/Calendar/index.scss +8 -6
  200. package/dist/icons/Check/index.scss +9 -7
  201. package/dist/icons/Chevron/index.scss +18 -16
  202. package/dist/icons/CloseMenu/index.scss +7 -5
  203. package/dist/icons/Copy/index.scss +9 -7
  204. package/dist/icons/DragHandle/index.scss +9 -7
  205. package/dist/icons/Edit/index.scss +9 -7
  206. package/dist/icons/Line/index.scss +8 -6
  207. package/dist/icons/Link/index.scss +8 -6
  208. package/dist/icons/Lock/index.scss +6 -4
  209. package/dist/icons/LogOut/index.scss +8 -6
  210. package/dist/icons/Menu/index.scss +6 -4
  211. package/dist/icons/More/index.scss +8 -6
  212. package/dist/icons/Plus/index.scss +6 -4
  213. package/dist/icons/Search/index.scss +8 -6
  214. package/dist/icons/Swap/index.scss +9 -7
  215. package/dist/icons/X/index.scss +6 -4
  216. package/dist/providers/Auth/index.d.ts +9 -4
  217. package/dist/providers/Auth/index.d.ts.map +1 -1
  218. package/dist/providers/Auth/index.js +51 -56
  219. package/dist/providers/Auth/index.js.map +1 -1
  220. package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
  221. package/dist/providers/Config/createClientConfig/fields.js +21 -3
  222. package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
  223. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  224. package/dist/providers/DocumentInfo/index.js +4 -0
  225. package/dist/providers/DocumentInfo/index.js.map +1 -1
  226. package/dist/providers/Selection/index.js +3 -3
  227. package/dist/providers/Selection/index.js.map +1 -1
  228. package/dist/scss/app.scss +166 -162
  229. package/dist/scss/colors.scss +256 -254
  230. package/dist/scss/resets.scss +9 -7
  231. package/dist/scss/toastify.scss +42 -40
  232. package/dist/scss/toasts.scss +105 -103
  233. package/dist/scss/type.scss +81 -79
  234. package/dist/styles.css +1 -1
  235. package/package.json +8 -8
  236. /package/dist/exports/client/{DatePicker-HNJMUG32.js.map → DatePicker-FUJV23KL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["notFound","reduceFieldsToValues","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","requests","formatDocTitle","getFormState","hasSavePermission","getHasSavePermission","isEditing","getIsEditing","useAuth","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","docPermissions","docPermissionsFromProps","globalSlug","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermissionFromProps","initialData","initialDataFromProps","initialState","initialStateFromProps","onLoadError","onSave","onSaveFromProps","config","admin","dateFormat","collections","globals","routes","api","serverURL","collectionConfig","find","c","slug","globalConfig","g","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","isLoading","setIsLoading","isError","setIsError","setData","setInitialState","publishedDoc","setPublishedDoc","versions","setVersions","setDocPermissions","setHasSavePermission","setHasPublishPermission","documentIsLocked","setDocumentIsLocked","currentEditor","setCurrentEditor","isInitializing","unpublishedVersions","setUnpublishedVersions","getPreference","setPreference","permissions","code","locale","prevLocale","hasInitializedDocPermissions","versionsConfig","baseURL","pluralType","preferencesKey","operation","shouldFetchVersions","Boolean","readVersions","permission","unlockDocument","docId","isGlobal","query","request","get","docs","json","length","lockId","delete","headers","error","console","updateDocumentEditor","user","patch","body","JSON","stringify","relationTo","collection","value","fetchDocumentLockState","newEditor","getVersions","versionFetchURL","publishedFetchURL","unpublishedVersionJSON","versionJSON","shouldFetch","versionParams","depth","limit","where","and","publishedVersionParams","or","_status","equals","exists","push","parent","publishedJSON","drafts","fetch","credentials","language","then","res","updatedAt","newerVersionParams","greater_than","newerVersionRes","status","getDocPermissions","params","idToUse","newIsEditing","docAccessURL","method","publishedAccessJSON","update","newDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","docPreferences","newData","doc","result","state","newState","apiRoute","schemaPath","abortController","AbortController","localeChanged","current","getInitialState","onError","signal","err","aborted","abort","action","useMemo","docURL","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n DocumentPermissions,\n DocumentPreferences,\n FormState,\n PaginatedDocs,\n TypeWithID,\n TypeWithTimestamps,\n TypeWithVersion,\n Where,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../utilities/hasSavePermission.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: initialDataFromProps,\n initialState: initialStateFromProps,\n onLoadError,\n onSave: onSaveFromProps,\n } = props\n\n const {\n config: {\n admin: { dateFormat },\n collections,\n globals,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n const globalConfig = globals.find((g) => g.slug === globalSlug)\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() => {\n if (!initialDataFromProps) {\n return ''\n }\n\n return formatDocTitle({\n collectionConfig,\n data: { ...initialDataFromProps, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n })\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<Data>(initialDataFromProps)\n const [initialState, setInitialState] = useState<FormState>(initialStateFromProps)\n const [publishedDoc, setPublishedDoc] = useState<TypeWithID & TypeWithTimestamps>(null)\n const [versions, setVersions] = useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(docPermissionsFromProps)\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(false)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(null)\n\n const isInitializing = initialState === undefined || data === undefined\n const [unpublishedVersions, setUnpublishedVersions] =\n useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n\n const { getPreference, setPreference } = usePreferences()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n const hasInitializedDocPermissions = useRef(false)\n\n const versionsConfig = docConfig?.versions\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n const operation = isEditing ? 'update' : 'create'\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions?.permission)\n\n const unlockDocument = useCallback(\n async (docId: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docId: number | string, slug: string, user: ClientUser) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n body: JSON.stringify({\n user: { relationTo: user?.collection, value: user?.id },\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n useEffect(() => {\n if (!isLockingEnabled || (!id && !globalSlug)) {\n return\n }\n\n const fetchDocumentLockState = async () => {\n if (id || globalSlug) {\n try {\n const slug = collectionSlug ?? globalSlug\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${id}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const newEditor = docs[0].user?.value\n if (newEditor && newEditor.id !== currentEditor?.id) {\n setCurrentEditor(newEditor)\n setDocumentIsLocked(true)\n }\n } else {\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // swallow error\n }\n }\n }\n void fetchDocumentLockState()\n }, [id, serverURL, api, collectionSlug, globalSlug, currentEditor, isLockingEnabled])\n\n const getVersions = useCallback(async () => {\n let versionFetchURL\n let publishedFetchURL\n let unpublishedVersionJSON = null\n let versionJSON = null\n let shouldFetch = true\n\n const versionParams = {\n depth: 0,\n limit: 0,\n where: {\n and: [],\n },\n }\n\n const publishedVersionParams: { depth: number; locale: string; where: Where } = {\n depth: 0,\n locale: locale || undefined,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n ],\n },\n }\n\n if (globalSlug) {\n versionFetchURL = `${baseURL}/globals/${globalSlug}/versions`\n publishedFetchURL = `${baseURL}/globals/${globalSlug}?${qs.stringify(publishedVersionParams)}`\n }\n\n if (collectionSlug) {\n versionFetchURL = `${baseURL}/${collectionSlug}/versions`\n\n publishedVersionParams.where.and.push({\n id: {\n equals: id,\n },\n })\n\n publishedFetchURL = `${baseURL}/${collectionSlug}?${qs.stringify(publishedVersionParams)}`\n\n if (!id) {\n shouldFetch = false\n }\n\n versionParams.where.and.push({\n parent: {\n equals: id,\n },\n })\n }\n\n if (shouldFetch) {\n let publishedJSON\n\n if (versionsConfig?.drafts) {\n publishedJSON = await fetch(publishedFetchURL, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (collectionSlug) {\n publishedJSON = publishedJSON?.docs?.[0]\n }\n }\n\n if (shouldFetchVersions) {\n versionJSON = await fetch(`${versionFetchURL}?${qs.stringify(versionParams)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (publishedJSON?.updatedAt) {\n const newerVersionParams = {\n ...versionParams,\n where: {\n ...versionParams.where,\n and: [\n ...versionParams.where.and,\n {\n updatedAt: {\n greater_than: publishedJSON.updatedAt,\n },\n },\n ],\n },\n }\n\n // Get any newer versions available\n const newerVersionRes = await fetch(\n `${versionFetchURL}?${qs.stringify(newerVersionParams)}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (newerVersionRes.status === 200) {\n unpublishedVersionJSON = await newerVersionRes.json()\n }\n }\n }\n\n setPublishedDoc(publishedJSON)\n setVersions(versionJSON)\n setUnpublishedVersions(unpublishedVersionJSON)\n }\n }, [i18n, globalSlug, collectionSlug, id, baseURL, locale, versionsConfig, shouldFetchVersions])\n\n const getDocPermissions = React.useCallback(\n async (data: Data) => {\n const params = {\n locale: locale || undefined,\n }\n\n const idToUse = data?.id || id\n const newIsEditing = getIsEditing({ id: idToUse, collectionSlug, globalSlug })\n\n if (newIsEditing) {\n const docAccessURL = collectionSlug\n ? `/${collectionSlug}/access/${idToUse}`\n : globalSlug\n ? `/globals/${globalSlug}/access`\n : null\n\n if (docAccessURL) {\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'draft',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }\n } else {\n // when creating new documents, there is no permissions saved for this document yet\n // use the generic entity permissions instead\n const newDocPermissions = collectionSlug\n ? permissions?.collections?.[collectionSlug]\n : permissions?.globals?.[globalSlug]\n\n setDocPermissions(newDocPermissions)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: newDocPermissions,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n }\n },\n [serverURL, api, id, permissions, i18n.language, locale, collectionSlug, globalSlug],\n )\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const onSave = React.useCallback<DocumentInfoContext['onSave']>(\n async (json) => {\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps(json)\n }\n\n const docPreferences = await getDocPreferences()\n\n const newData = collectionSlug ? json.doc : json.result\n\n const { state: newState } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n data: newData,\n docPreferences,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n setInitialState(newState)\n setData(newData)\n\n await getDocPermissions(newData)\n },\n [\n api,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n id,\n operation,\n locale,\n onSaveFromProps,\n serverURL,\n getDocPermissions,\n ],\n )\n\n useEffect(() => {\n const abortController = new AbortController()\n const localeChanged = locale !== prevLocale.current\n\n if (\n initialStateFromProps === undefined ||\n initialDataFromProps === undefined ||\n localeChanged\n ) {\n if (localeChanged) {\n prevLocale.current = locale\n }\n\n const getInitialState = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const { state: result } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n onError: onLoadError,\n serverURL,\n signal: abortController.signal,\n })\n const data = reduceFieldsToValues(result, true)\n setData(data)\n\n if (localeChanged) {\n void getDocPermissions(data)\n }\n\n setInitialState(result)\n } catch (err) {\n if (!abortController.signal.aborted) {\n if (typeof onLoadError === 'function') {\n void onLoadError()\n }\n setIsError(true)\n setIsLoading(false)\n }\n }\n setIsLoading(false)\n }\n\n void getInitialState()\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [\n api,\n operation,\n collectionSlug,\n serverURL,\n id,\n globalSlug,\n locale,\n onLoadError,\n initialDataFromProps,\n initialStateFromProps,\n getDocPermissions,\n ])\n\n useEffect(() => {\n void getVersions()\n }, [getVersions])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, data, dateFormat, i18n, id, globalConfig])\n\n useEffect(() => {\n if (data && (collectionSlug || globalSlug)) {\n if (\n hasInitializedDocPermissions.current === false &&\n (!docPermissions ||\n hasSavePermission === undefined ||\n hasSavePermission === null ||\n hasPublishPermission === undefined ||\n hasPublishPermission === null)\n ) {\n hasInitializedDocPermissions.current = true\n void getDocPermissions(data)\n }\n }\n }, [\n getDocPermissions,\n docPermissionsFromProps,\n hasSavePermissionFromProps,\n hasPublishPermissionFromProps,\n setDocPermissions,\n collectionSlug,\n globalSlug,\n data,\n docPermissions,\n hasSavePermission,\n hasPublishPermission,\n ])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n if (isError) {\n notFound()\n }\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isInitializing,\n isLoading,\n onSave,\n preferencesKey,\n publishedDoc,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n title: documentTitle,\n unlockDocument,\n unpublishedVersions,\n updateDocumentEditor,\n versions,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["notFound","reduceFieldsToValues","qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","requests","formatDocTitle","getFormState","hasSavePermission","getHasSavePermission","isEditing","getIsEditing","useAuth","useConfig","useLocale","usePreferences","useTranslation","UploadEditsProvider","useUploadEdits","Context","useDocumentInfo","DocumentInfo","children","props","id","collectionSlug","docPermissions","docPermissionsFromProps","globalSlug","hasPublishPermission","hasPublishPermissionFromProps","hasSavePermissionFromProps","initialData","initialDataFromProps","initialState","initialStateFromProps","onLoadError","onSave","onSaveFromProps","config","admin","dateFormat","collections","globals","routes","api","serverURL","collectionConfig","find","c","slug","globalConfig","g","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","i18n","uploadEdits","documentTitle","setDocumentTitle","data","fallback","toString","isLoading","setIsLoading","isError","setIsError","setData","setInitialState","publishedDoc","setPublishedDoc","versions","setVersions","setDocPermissions","setHasSavePermission","setHasPublishPermission","documentIsLocked","setDocumentIsLocked","currentEditor","setCurrentEditor","isInitializing","unpublishedVersions","setUnpublishedVersions","getPreference","setPreference","permissions","code","locale","prevLocale","hasInitializedDocPermissions","versionsConfig","baseURL","pluralType","preferencesKey","operation","shouldFetchVersions","Boolean","readVersions","permission","unlockDocument","docId","isGlobal","query","request","get","docs","json","length","lockId","delete","headers","error","console","updateDocumentEditor","user","patch","body","JSON","stringify","relationTo","collection","value","fetchDocumentLockState","newEditor","getVersions","versionFetchURL","publishedFetchURL","unpublishedVersionJSON","versionJSON","shouldFetch","versionParams","depth","limit","where","and","publishedVersionParams","or","_status","equals","exists","push","parent","publishedJSON","drafts","fetch","credentials","language","then","res","updatedAt","newerVersionParams","greater_than","newerVersionRes","status","getDocPermissions","params","idToUse","newIsEditing","docAccessURL","method","publishedAccessJSON","update","newDocPermissions","getDocPreferences","setDocFieldPreferences","path","fieldPreferences","allPreferences","fields","e","docPreferences","newData","doc","result","state","newState","apiRoute","schemaPath","abortController","AbortController","localeChanged","current","getInitialState","onError","signal","err","aborted","abort","action","useMemo","docURL","addQueryPrefix","title","_jsx","Provider","DocumentInfoProvider"],"sources":["../../../src/providers/DocumentInfo/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n DocumentPermissions,\n DocumentPreferences,\n FormState,\n PaginatedDocs,\n TypeWithID,\n TypeWithTimestamps,\n TypeWithVersion,\n Where,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentInfoContext, DocumentInfoProps } from './types.js'\n\nimport { requests } from '../../utilities/api.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { hasSavePermission as getHasSavePermission } from '../../utilities/hasSavePermission.js'\nimport { isEditing as getIsEditing } from '../../utilities/isEditing.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { usePreferences } from '../Preferences/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { UploadEditsProvider, useUploadEdits } from '../UploadEdits/index.js'\n\nconst Context = createContext({} as DocumentInfoContext)\n\nexport type * from './types.js'\n\nexport const useDocumentInfo = (): DocumentInfoContext => useContext(Context)\n\nconst DocumentInfo: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = ({ children, ...props }) => {\n const {\n id,\n collectionSlug,\n docPermissions: docPermissionsFromProps,\n globalSlug,\n hasPublishPermission: hasPublishPermissionFromProps,\n hasSavePermission: hasSavePermissionFromProps,\n initialData: initialDataFromProps,\n initialState: initialStateFromProps,\n onLoadError,\n onSave: onSaveFromProps,\n } = props\n\n const {\n config: {\n admin: { dateFormat },\n collections,\n globals,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const collectionConfig = collections.find((c) => c.slug === collectionSlug)\n const globalConfig = globals.find((g) => g.slug === globalSlug)\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n const { i18n } = useTranslation()\n\n const { uploadEdits } = useUploadEdits()\n\n const [documentTitle, setDocumentTitle] = useState(() => {\n if (!initialDataFromProps) {\n return ''\n }\n\n return formatDocTitle({\n collectionConfig,\n data: { ...initialDataFromProps, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n })\n })\n\n const [isLoading, setIsLoading] = useState(false)\n const [isError, setIsError] = useState(false)\n const [data, setData] = useState<Data>(initialDataFromProps)\n const [initialState, setInitialState] = useState<FormState>(initialStateFromProps)\n const [publishedDoc, setPublishedDoc] = useState<TypeWithID & TypeWithTimestamps>(null)\n const [versions, setVersions] = useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n const [docPermissions, setDocPermissions] = useState<DocumentPermissions>(docPermissionsFromProps)\n const [hasSavePermission, setHasSavePermission] = useState<boolean>(hasSavePermissionFromProps)\n const [hasPublishPermission, setHasPublishPermission] = useState<boolean>(\n hasPublishPermissionFromProps,\n )\n\n const [documentIsLocked, setDocumentIsLocked] = useState<boolean | undefined>(false)\n const [currentEditor, setCurrentEditor] = useState<ClientUser | null>(null)\n\n const isInitializing = initialState === undefined || data === undefined\n const [unpublishedVersions, setUnpublishedVersions] =\n useState<PaginatedDocs<TypeWithVersion<any>>>(null)\n\n const { getPreference, setPreference } = usePreferences()\n const { permissions } = useAuth()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n const hasInitializedDocPermissions = useRef(false)\n\n const versionsConfig = docConfig?.versions\n\n const baseURL = `${serverURL}${api}`\n let slug: string\n let pluralType: 'collections' | 'globals'\n let preferencesKey: string\n\n if (globalSlug) {\n slug = globalSlug\n pluralType = 'globals'\n preferencesKey = `global-${slug}`\n }\n\n if (collectionSlug) {\n slug = collectionSlug\n pluralType = 'collections'\n\n if (id) {\n preferencesKey = `collection-${slug}-${id}`\n }\n }\n\n const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n const operation = isEditing ? 'update' : 'create'\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions?.permission)\n\n const unlockDocument = useCallback(\n async (docId: number | string, slug: string) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n await requests.delete(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to unlock the document', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n const updateDocumentEditor = useCallback(\n async (docId: number | string, slug: string, user: ClientUser) => {\n try {\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${docId}&where[document.relationTo][equals]=${slug}`\n\n // Check if the document is already locked\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const lockId = docs[0].id\n\n // Send a patch request to update the _lastEdited info\n await requests.patch(`${serverURL}${api}/payload-locked-documents/${lockId}`, {\n body: JSON.stringify({\n user: { relationTo: user?.collection, value: user?.id },\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Failed to update the document editor', error)\n }\n },\n [serverURL, api, globalSlug],\n )\n\n useEffect(() => {\n if (!isLockingEnabled || (!id && !globalSlug)) {\n return\n }\n\n const fetchDocumentLockState = async () => {\n if (id || globalSlug) {\n try {\n const slug = collectionSlug ?? globalSlug\n const isGlobal = slug === globalSlug\n\n const query = isGlobal\n ? `where[globalSlug][equals]=${slug}`\n : `where[document.value][equals]=${id}&where[document.relationTo][equals]=${slug}`\n\n const request = await requests.get(`${serverURL}${api}/payload-locked-documents?${query}`)\n const { docs } = await request.json()\n\n if (docs.length > 0) {\n const newEditor = docs[0].user?.value\n if (newEditor && newEditor.id !== currentEditor?.id) {\n setCurrentEditor(newEditor)\n setDocumentIsLocked(true)\n }\n } else {\n setDocumentIsLocked(false)\n }\n } catch (error) {\n // swallow error\n }\n }\n }\n void fetchDocumentLockState()\n }, [id, serverURL, api, collectionSlug, globalSlug, currentEditor, isLockingEnabled])\n\n const getVersions = useCallback(async () => {\n let versionFetchURL\n let publishedFetchURL\n let unpublishedVersionJSON = null\n let versionJSON = null\n let shouldFetch = true\n\n const versionParams = {\n depth: 0,\n limit: 0,\n where: {\n and: [],\n },\n }\n\n const publishedVersionParams: { depth: number; locale: string; where: Where } = {\n depth: 0,\n locale: locale || undefined,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n ],\n },\n }\n\n if (globalSlug) {\n versionFetchURL = `${baseURL}/globals/${globalSlug}/versions`\n publishedFetchURL = `${baseURL}/globals/${globalSlug}?${qs.stringify(publishedVersionParams)}`\n }\n\n if (collectionSlug) {\n versionFetchURL = `${baseURL}/${collectionSlug}/versions`\n\n publishedVersionParams.where.and.push({\n id: {\n equals: id,\n },\n })\n\n publishedFetchURL = `${baseURL}/${collectionSlug}?${qs.stringify(publishedVersionParams)}`\n\n if (!id) {\n shouldFetch = false\n }\n\n versionParams.where.and.push({\n parent: {\n equals: id,\n },\n })\n }\n\n if (shouldFetch) {\n let publishedJSON\n\n if (versionsConfig?.drafts) {\n publishedJSON = await fetch(publishedFetchURL, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (collectionSlug) {\n publishedJSON = publishedJSON?.docs?.[0]\n }\n }\n\n if (shouldFetchVersions) {\n versionJSON = await fetch(`${versionFetchURL}?${qs.stringify(versionParams)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n }).then((res) => res.json())\n\n if (publishedJSON?.updatedAt) {\n const newerVersionParams = {\n ...versionParams,\n where: {\n ...versionParams.where,\n and: [\n ...versionParams.where.and,\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedJSON.updatedAt,\n },\n },\n ],\n },\n }\n\n // Get any newer versions available\n const newerVersionRes = await fetch(\n `${versionFetchURL}?${qs.stringify(newerVersionParams)}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (newerVersionRes.status === 200) {\n unpublishedVersionJSON = await newerVersionRes.json()\n }\n }\n }\n\n setPublishedDoc(publishedJSON)\n setVersions(versionJSON)\n setUnpublishedVersions(unpublishedVersionJSON)\n }\n }, [i18n, globalSlug, collectionSlug, id, baseURL, locale, versionsConfig, shouldFetchVersions])\n\n const getDocPermissions = React.useCallback(\n async (data: Data) => {\n const params = {\n locale: locale || undefined,\n }\n\n const idToUse = data?.id || id\n const newIsEditing = getIsEditing({ id: idToUse, collectionSlug, globalSlug })\n\n if (newIsEditing) {\n const docAccessURL = collectionSlug\n ? `/${collectionSlug}/access/${idToUse}`\n : globalSlug\n ? `/globals/${globalSlug}/access`\n : null\n\n if (docAccessURL) {\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'draft',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: DocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n ...(data || {}),\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update?.permission)\n }\n } else {\n // when creating new documents, there is no permissions saved for this document yet\n // use the generic entity permissions instead\n const newDocPermissions = collectionSlug\n ? permissions?.collections?.[collectionSlug]\n : permissions?.globals?.[globalSlug]\n\n setDocPermissions(newDocPermissions)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: newDocPermissions,\n globalSlug,\n isEditing: newIsEditing,\n }),\n )\n }\n },\n [serverURL, api, id, permissions, i18n.language, locale, collectionSlug, globalSlug],\n )\n\n const getDocPreferences = useCallback(() => {\n return getPreference<DocumentPreferences>(preferencesKey)\n }, [getPreference, preferencesKey])\n\n const setDocFieldPreferences = useCallback<DocumentInfoContext['setDocFieldPreferences']>(\n async (path, fieldPreferences) => {\n const allPreferences = await getDocPreferences()\n\n if (preferencesKey) {\n try {\n await setPreference(preferencesKey, {\n ...allPreferences,\n fields: {\n ...(allPreferences?.fields || {}),\n [path]: {\n ...allPreferences?.fields?.[path],\n ...fieldPreferences,\n },\n },\n })\n } catch (e) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n },\n [setPreference, preferencesKey, getDocPreferences],\n )\n\n const onSave = React.useCallback<DocumentInfoContext['onSave']>(\n async (json) => {\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps(json)\n }\n\n const docPreferences = await getDocPreferences()\n\n const newData = collectionSlug ? json.doc : json.result\n\n const { state: newState } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n data: newData,\n docPreferences,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n serverURL,\n })\n\n setInitialState(newState)\n setData(newData)\n\n await getDocPermissions(newData)\n },\n [\n api,\n collectionSlug,\n getDocPreferences,\n globalSlug,\n id,\n operation,\n locale,\n onSaveFromProps,\n serverURL,\n getDocPermissions,\n ],\n )\n\n useEffect(() => {\n const abortController = new AbortController()\n const localeChanged = locale !== prevLocale.current\n\n if (\n initialStateFromProps === undefined ||\n initialDataFromProps === undefined ||\n localeChanged\n ) {\n if (localeChanged) {\n prevLocale.current = locale\n }\n\n const getInitialState = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const { state: result } = await getFormState({\n apiRoute: api,\n body: {\n id,\n collectionSlug,\n globalSlug,\n locale,\n operation,\n schemaPath: collectionSlug || globalSlug,\n },\n onError: onLoadError,\n serverURL,\n signal: abortController.signal,\n })\n const data = reduceFieldsToValues(result, true)\n setData(data)\n\n if (localeChanged) {\n void getDocPermissions(data)\n }\n\n setInitialState(result)\n } catch (err) {\n if (!abortController.signal.aborted) {\n if (typeof onLoadError === 'function') {\n void onLoadError()\n }\n setIsError(true)\n setIsLoading(false)\n }\n }\n setIsLoading(false)\n }\n\n void getInitialState()\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (error) {\n // swallow error\n }\n }\n }, [\n api,\n operation,\n collectionSlug,\n serverURL,\n id,\n globalSlug,\n locale,\n onLoadError,\n initialDataFromProps,\n initialStateFromProps,\n getDocPermissions,\n ])\n\n useEffect(() => {\n void getVersions()\n }, [getVersions])\n\n useEffect(() => {\n setDocumentTitle(\n formatDocTitle({\n collectionConfig,\n data: { ...data, id },\n dateFormat,\n fallback: id?.toString(),\n globalConfig,\n i18n,\n }),\n )\n }, [collectionConfig, data, dateFormat, i18n, id, globalConfig])\n\n useEffect(() => {\n if (data && (collectionSlug || globalSlug)) {\n if (\n hasInitializedDocPermissions.current === false &&\n (!docPermissions ||\n hasSavePermission === undefined ||\n hasSavePermission === null ||\n hasPublishPermission === undefined ||\n hasPublishPermission === null)\n ) {\n hasInitializedDocPermissions.current = true\n void getDocPermissions(data)\n }\n }\n }, [\n getDocPermissions,\n docPermissionsFromProps,\n hasSavePermissionFromProps,\n hasPublishPermissionFromProps,\n setDocPermissions,\n collectionSlug,\n globalSlug,\n data,\n docPermissions,\n hasSavePermission,\n hasPublishPermission,\n ])\n\n const action: string = React.useMemo(() => {\n const docURL = `${baseURL}${pluralType === 'globals' ? `/globals` : ''}/${slug}${id ? `/${id}` : ''}`\n const params = {\n depth: 0,\n 'fallback-locale': 'null',\n locale,\n uploadEdits: uploadEdits || undefined,\n }\n\n return `${docURL}${qs.stringify(params, {\n addQueryPrefix: true,\n })}`\n }, [baseURL, locale, pluralType, id, slug, uploadEdits])\n\n if (isError) {\n notFound()\n }\n\n const value: DocumentInfoContext = {\n ...props,\n action,\n currentEditor,\n docConfig,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n getVersions,\n hasPublishPermission,\n hasSavePermission,\n initialData: data,\n initialState,\n isInitializing,\n isLoading,\n onSave,\n preferencesKey,\n publishedDoc,\n setCurrentEditor,\n setDocFieldPreferences,\n setDocumentIsLocked,\n setDocumentTitle,\n title: documentTitle,\n unlockDocument,\n unpublishedVersions,\n updateDocumentEditor,\n versions,\n }\n\n return <Context.Provider value={value}>{children}</Context.Provider>\n}\n\nexport const DocumentInfoProvider: React.FC<\n {\n readonly children: React.ReactNode\n } & DocumentInfoProps\n> = (props) => {\n return (\n <UploadEditsProvider>\n <DocumentInfo {...props} />\n </UploadEditsProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -80,7 +80,7 @@ export const SelectionProvider = ({
80
80
  }
81
81
  setSelected(newMap);
82
82
  }, [selected, docs, user?.id]);
83
- const getQueryParams = useCallback(additionalParams => {
83
+ const getQueryParams = useCallback(additionalWhereParams => {
84
84
  let where;
85
85
  if (selectAll === "allAvailable") {
86
86
  const params = searchParams?.where;
@@ -102,10 +102,10 @@ export const SelectionProvider = ({
102
102
  }
103
103
  };
104
104
  }
105
- if (additionalParams) {
105
+ if (additionalWhereParams) {
106
106
  where = {
107
107
  and: [{
108
- ...additionalParams
108
+ ...additionalWhereParams
109
109
  }, where]
110
110
  };
111
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalParams?: Where): string => {\n let where: Where\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n if (additionalParams) {\n where = {\n and: [{ ...additionalParams }, where],\n }\n }\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.Some)\n } else {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"AAAA;;;AAGA,YAAYA,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAE3F,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;;WAEpBC,eAAA;;;;;GAAAA,eAAA,KAAAA,eAAA;AAmBZ,MAAMC,OAAA,gBAAUT,aAAA,CAAc,CAAC;AAU/B,OAAO,MAAMU,iBAAA,GAAqCA,CAAC;EAAEC,QAAQ;EAAEC,IAAA,GAAO,EAAE;EAAEC,SAAS;EAAEC;AAAI,CAAE;EACzF,MAAMC,UAAA,GAAaX,MAAA,CAAO,CAAC;EAE3B,MAAM;IAAEY,IAAA,EAAMC;EAAM,CAAE,GAAGX,SAAA;EACzB,MAAM,CAACY,QAAA,EAAUC,WAAA,CAAY,GAAGd,QAAA,CAAuC;IACrE,MAAMe,IAAA,GAAO,IAAIC,GAAA;IACjBT,IAAA,CAAKU,OAAO,CAAC,CAAC;MAAEC;IAAE,CAAE;MAClBH,IAAA,CAAKI,GAAG,CAACD,EAAA,EAAI;IACf;IACA,OAAOH,IAAA;EACT;EAEA,MAAM,CAACK,SAAA,EAAWC,YAAA,CAAa,GAAGrB,QAAA;EAClC,MAAM,CAACsB,KAAA,EAAOC,QAAA,CAAS,GAAGvB,QAAA,CAAS;EACnC,MAAM;IAAEwB;EAAY,CAAE,GAAGtB,eAAA;EAEzB,MAAMuB,SAAA,GAAY7B,WAAA,CAChB,CAAC8B,YAAA,GAAe,KAAK;IACnB,MAAMX,MAAA,GAAO,IAAIC,GAAA;IACjB,IAAIU,YAAA,EAAc;MAChBL,YAAA;MACAd,IAAA,CAAKU,OAAO,CAAC,CAAC;QAAEC,EAAE,EAAFA,IAAE;QAAES,SAAS;QAAEC;MAAY,CAAE;QAC3C,IAAI,CAACD,SAAA,IAAaC,YAAA,EAAcV,EAAA,KAAOT,IAAA,EAAMS,EAAA,EAAI;UAC/CH,MAAA,CAAKI,GAAG,CAACD,IAAA,EAAI;QACf;MACF;IACF,OAAO,IACLE,SAAA,uBACAA,SAAA,kBACA;MACAC,YAAA;IACF,OAAO;MACLd,IAAA,CAAKU,OAAO,CAAC,CAAC;QAAEC,EAAE,EAAFA,IAAE;QAAES,SAAS,EAATA,WAAS;QAAEC,YAAY,EAAZA;MAAY,CAAE;QAC3C,IAAI,CAACD,WAAA,IAAaC,cAAA,EAAcV,EAAA,KAAOT,IAAA,EAAMS,EAAA,EAAI;UAC/CH,MAAA,CAAKI,GAAG,CAACD,IAAA,EAAIE,SAAA;QACf;MACF;IACF;IACAN,WAAA,CAAYC,MAAA;EACd,GACA,CAACR,IAAA,EAAMa,SAAA,EAAWX,IAAA,EAAMS,EAAA,CAAG;EAG7B,MAAMW,YAAA,GAAejC,WAAA,CAClBsB,IAAA;IACC,MAAMY,KAAA,GAAMvB,IAAA,CAAKwB,IAAI,CAAED,GAAA,IAAQA,GAAA,CAAIZ,EAAE,KAAKA,IAAA;IAE1C,IAAIY,KAAA,EAAKH,SAAA,IAAalB,IAAA,EAAMS,EAAA,KAAOY,KAAA,EAAKF,YAAA,CAAaV,EAAA,EAAI;MACvD,QAAO;IACT;IAEA,MAAMc,aAAA,GAAgBnB,QAAA,CAASoB,GAAG,CAACf,IAAA;IACnC,MAAMgB,UAAA,GAAa,OAAOF,aAAA,KAAkB,YAAY,CAACA,aAAA,GAAgB;IAEzE,IAAIG,MAAA,GAAS,IAAInB,GAAA;IAEjB,IAAIkB,UAAA,EAAY;MACdC,MAAA,GAAS,IAAInB,GAAA,CAAIH,QAAA,CAASM,GAAG,CAACD,IAAA,EAAIgB,UAAA;IACpC,OAAO;MACLC,MAAA,GAAS,IAAInB,GAAA,CAAIH,QAAA,CAASM,GAAG,CAACD,IAAA,EAAI;IACpC;IAEAJ,WAAA,CAAYqB,MAAA;EACd,GACA,CAACtB,QAAA,EAAUN,IAAA,EAAME,IAAA,EAAMS,EAAA,CAAG;EAG5B,MAAMkB,cAAA,GAAiBxC,WAAA,CACpByC,gBAAA;IACC,IAAIC,KAAA;IACJ,IAAIlB,SAAA,qBAA4C;MAC9C,MAAMmB,MAAA,GAASf,YAAA,EAAcc,KAAA;MAC7BA,KAAA,GAAQC,MAAA,IAAU;QAChBrB,EAAA,EAAI;UAAEsB,UAAA,EAAY;QAAG;MACvB;IACF,OAAO;MACL,MAAMC,GAAA,GAAM,EAAE;MAEd,KAAK,MAAM,CAACC,GAAA,EAAKC,KAAA,CAAM,IAAI9B,QAAA,EAAU;QACnC,IAAI8B,KAAA,EAAO;UACTF,GAAA,CAAIG,IAAI,CAACF,GAAA;QACX;MACF;MAEAJ,KAAA,GAAQ;QACNpB,EAAA,EAAI;UACF2B,EAAA,EAAIJ;QACN;MACF;IACF;IACA,IAAIJ,gBAAA,EAAkB;MACpBC,KAAA,GAAQ;QACNQ,GAAA,EAAK,CAAC;UAAE,GAAGT;QAAiB,GAAGC,KAAA;MACjC;IACF;IACA,OAAO7C,EAAA,CAAGsD,SAAS,CACjB;MACEnC,MAAA;MACA0B;IACF,GACA;MAAEU,cAAA,EAAgB;IAAK;EAE3B,GACA,CAAC5B,SAAA,EAAWP,QAAA,EAAUD,MAAA,EAAQY,YAAA,CAAa;EAG7C1B,SAAA,CAAU;IACR,IAAIsB,SAAA,qBAA4C;MAC9C;IACF;IACA,IAAI6B,IAAA,GAAO;IACX,IAAIC,GAAA,GAAM;IAEV,IAAI,CAACrC,QAAA,CAASsC,IAAI,EAAE;MAClBD,GAAA,GAAM;MACND,IAAA,GAAO;IACT,OAAO;MACL,KAAK,MAAM,CAACG,CAAA,EAAGT,OAAA,CAAM,IAAI9B,QAAA,EAAU;QACjCqC,GAAA,GAAMA,GAAA,IAAOP,OAAA;QACbM,IAAA,GAAOA,IAAA,IAAQN,OAAA;MACjB;IACF;IAEA,IAAIO,GAAA,IAAOrC,QAAA,CAASsC,IAAI,KAAK5C,IAAA,CAAK8C,MAAM,EAAE;MACxC;MACAhC,YAAA;IACF,OAAO,IAAI4B,IAAA,EAAM;MACf;MACA5B,YAAA;IACF,OAAO;MACL;MACAA,YAAA;IACF;EACF,GAAG,CAACD,SAAA,EAAWP,QAAA,EAAUL,SAAA,EAAWD,IAAA,CAAK;EAEzCT,SAAA,CAAU;IACR,IAAIwD,QAAA,GAAW;IAEf,IAAIlC,SAAA,qBAA4C;MAC9CkC,QAAA,GAAW9C,SAAA;IACb,OAAO;MACL,KAAK,MAAM,CAAC4C,GAAA,EAAGT,OAAA,CAAM,IAAI9B,QAAA,EAAU;QACjC,IAAI8B,OAAA,EAAO;UACTW,QAAA;QACF;MACF;IACF;IAEA;IACA/B,QAAA,CAAS+B,QAAA;EACX,GAAG,CAAClC,SAAA,EAAWP,QAAA,EAAUL,SAAA,CAAU;EAEnCE,UAAA,CAAW6C,OAAO,GAAG;IACnBjC,KAAA;IACAc,cAAA;IACAhB,SAAA;IACAP,QAAA;IACAgB,YAAA;IACAJ,SAAA;IACAjB;EACF;EAEA,oBAAOgD,IAAA,CAACpD,OAAA,CAAQqD,QAAQ;IAACd,KAAA,EAAOjC,UAAA,CAAW6C,OAAO;cAAGjD;;AACvD;AAEA,OAAO,MAAMoD,YAAA,GAAeA,CAAA;EAAA,OAAwB7D,UAAA,CAAAO,OAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["qs","React","createContext","useCallback","useContext","useEffect","useRef","useState","useLocale","useSearchParams","SelectAllStatus","Context","SelectionProvider","children","docs","totalDocs","user","contextRef","code","locale","selected","setSelected","rows","Map","forEach","id","set","selectAll","setSelectAll","count","setCount","searchParams","toggleAll","allAvailable","_isLocked","_userEditing","setSelection","doc","find","existingValue","get","isSelected","newMap","getQueryParams","additionalWhereParams","where","params","not_equals","ids","key","value","push","in","and","stringify","addQueryPrefix","some","all","size","_","length","newCount","current","_jsx","Provider","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n setSelection: (id: number | string) => void\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({} as SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n user: ClientUser\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs, user }) => {\n const contextRef = useRef({} as SelectionContext)\n\n const { code: locale } = useLocale()\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const { searchParams } = useSearchParams()\n\n const toggleAll = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, selectAll !== SelectAllStatus.Some)\n }\n })\n }\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n let newMap = new Map()\n\n if (isSelected) {\n newMap = new Map(selected.set(id, isSelected))\n } else {\n newMap = new Map(selected.set(id, false))\n }\n\n setSelected(newMap)\n },\n [selected, docs, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = searchParams?.where as Where\n where = params || {\n id: { not_equals: '' },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.Some)\n } else {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n contextRef.current = {\n count,\n getQueryParams,\n selectAll,\n selected,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context.Provider value={contextRef.current}>{children}</Context.Provider>\n}\n\nexport const useSelection = (): SelectionContext => useContext(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -1,203 +1,207 @@
1
+ @layer payload-default, payload;
2
+
1
3
  @import 'styles';
2
4
  @import './toasts.scss';
3
5
  @import './colors.scss';
4
6
 
5
- :root {
6
- --base-px: 20;
7
- --base-body-size: 13;
8
- --base: calc((var(--base-px) / var(--base-body-size)) * 1rem);
9
-
10
- --breakpoint-xs-width: #{$breakpoint-xs-width};
11
- --breakpoint-s-width: #{$breakpoint-s-width};
12
- --breakpoint-m-width: #{$breakpoint-m-width};
13
- --breakpoint-l-width: #{$breakpoint-l-width};
14
- --scrollbar-width: 17px;
15
-
16
- --theme-bg: var(--theme-elevation-0);
17
- --theme-input-bg: var(--theme-elevation-0);
18
- --theme-text: var(--theme-elevation-800);
19
- --theme-overlay: rgba(5, 5, 5, 0.5);
20
- --theme-baseline: #{$baseline-px};
21
- --theme-baseline-body-size: #{$baseline-body-size};
22
- --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
23
- sans-serif;
24
- --font-serif: 'Georgia', 'Bitstream Charter', 'Charis SIL', Utopia, 'URW Bookman L', serif;
25
- --font-mono: 'SF Mono', Menlo, Consolas, Monaco, monospace;
26
-
27
- --style-radius-s: #{$style-radius-s};
28
- --style-radius-m: #{$style-radius-m};
29
- --style-radius-l: #{$style-radius-l};
30
-
31
- --z-popup: 10;
32
- --z-nav: 20;
33
- --z-modal: 30;
34
- --z-status: 40;
35
-
36
- --accessibility-outline: 2px solid var(--theme-text);
37
- --accessibility-outline-offset: 2px;
38
-
39
- --gutter-h: #{base(3)};
40
- --spacing-view-bottom: var(--gutter-h);
41
- --doc-controls-height: calc(var(--base) * 2.8);
42
- --app-header-height: calc(var(--base) * 2.8);
43
- --nav-width: 275px;
44
- --nav-trans-time: 150ms;
45
-
46
- @include mid-break {
47
- --gutter-h: #{base(2)};
48
- --app-header-height: calc(var(--base) * 2.4);
49
- --doc-controls-height: calc(var(--base) * 2.4);
50
- }
51
-
52
- @include small-break {
53
- --gutter-h: #{base(0.8)};
54
- --spacing-view-bottom: calc(var(--base) * 2);
55
- --nav-width: 100vw;
56
- }
57
- }
7
+ @layer payload-default {
8
+ :root {
9
+ --base-px: 20;
10
+ --base-body-size: 13;
11
+ --base: calc((var(--base-px) / var(--base-body-size)) * 1rem);
58
12
 
59
- /////////////////////////////
60
- // GLOBAL STYLES
61
- /////////////////////////////
13
+ --breakpoint-xs-width: #{$breakpoint-xs-width};
14
+ --breakpoint-s-width: #{$breakpoint-s-width};
15
+ --breakpoint-m-width: #{$breakpoint-m-width};
16
+ --breakpoint-l-width: #{$breakpoint-l-width};
17
+ --scrollbar-width: 17px;
62
18
 
63
- * {
64
- box-sizing: border-box;
65
- }
19
+ --theme-bg: var(--theme-elevation-0);
20
+ --theme-input-bg: var(--theme-elevation-0);
21
+ --theme-text: var(--theme-elevation-800);
22
+ --theme-overlay: rgba(5, 5, 5, 0.5);
23
+ --theme-baseline: #{$baseline-px};
24
+ --theme-baseline-body-size: #{$baseline-body-size};
25
+ --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
26
+ sans-serif;
27
+ --font-serif: 'Georgia', 'Bitstream Charter', 'Charis SIL', Utopia, 'URW Bookman L', serif;
28
+ --font-mono: 'SF Mono', Menlo, Consolas, Monaco, monospace;
29
+
30
+ --style-radius-s: #{$style-radius-s};
31
+ --style-radius-m: #{$style-radius-m};
32
+ --style-radius-l: #{$style-radius-l};
33
+
34
+ --z-popup: 10;
35
+ --z-nav: 20;
36
+ --z-modal: 30;
37
+ --z-status: 40;
38
+
39
+ --accessibility-outline: 2px solid var(--theme-text);
40
+ --accessibility-outline-offset: 2px;
41
+
42
+ --gutter-h: #{base(3)};
43
+ --spacing-view-bottom: var(--gutter-h);
44
+ --doc-controls-height: calc(var(--base) * 2.8);
45
+ --app-header-height: calc(var(--base) * 2.8);
46
+ --nav-width: 275px;
47
+ --nav-trans-time: 150ms;
48
+
49
+ @include mid-break {
50
+ --gutter-h: #{base(2)};
51
+ --app-header-height: calc(var(--base) * 2.4);
52
+ --doc-controls-height: calc(var(--base) * 2.4);
53
+ }
66
54
 
67
- html {
68
- @extend %body;
69
- background: var(--theme-bg);
70
- -webkit-font-smoothing: antialiased;
55
+ @include small-break {
56
+ --gutter-h: #{base(0.8)};
57
+ --spacing-view-bottom: calc(var(--base) * 2);
58
+ --nav-width: 100vw;
59
+ }
60
+ }
71
61
 
72
- &[data-theme='dark'] {
73
- --theme-bg: var(--theme-elevation-0);
74
- --theme-text: var(--theme-elevation-1000);
75
- --theme-input-bg: var(--theme-elevation-50);
76
- --theme-overlay: rgba(5, 5, 5, 0.75);
77
- color-scheme: dark;
62
+ /////////////////////////////
63
+ // GLOBAL STYLES
64
+ /////////////////////////////
65
+
66
+ * {
67
+ box-sizing: border-box;
68
+ }
78
69
 
79
- ::selection {
80
- color: var(--color-base-1000);
70
+ html {
71
+ @extend %body;
72
+ background: var(--theme-bg);
73
+ -webkit-font-smoothing: antialiased;
74
+
75
+ &[data-theme='dark'] {
76
+ --theme-bg: var(--theme-elevation-0);
77
+ --theme-text: var(--theme-elevation-1000);
78
+ --theme-input-bg: var(--theme-elevation-50);
79
+ --theme-overlay: rgba(5, 5, 5, 0.75);
80
+ color-scheme: dark;
81
+
82
+ ::selection {
83
+ color: var(--color-base-1000);
84
+ }
85
+
86
+ ::-moz-selection {
87
+ color: var(--color-base-1000);
88
+ }
81
89
  }
82
90
 
83
- ::-moz-selection {
84
- color: var(--color-base-1000);
91
+ @include mid-break {
92
+ font-size: 12px;
85
93
  }
86
94
  }
87
95
 
88
- @include mid-break {
89
- font-size: 12px;
96
+ html,
97
+ body,
98
+ #app {
99
+ height: 100%;
90
100
  }
91
- }
92
101
 
93
- html,
94
- body,
95
- #app {
96
- height: 100%;
97
- }
102
+ body {
103
+ font-family: var(--font-body);
104
+ font-weight: 400;
105
+ color: var(--theme-text);
106
+ margin: 0;
107
+ // this is for the nav to be able to push the document over
108
+ overflow-x: hidden;
109
+ }
98
110
 
99
- body {
100
- font-family: var(--font-body);
101
- font-weight: 400;
102
- color: var(--theme-text);
103
- margin: 0;
104
- // this is for the nav to be able to push the document over
105
- overflow-x: hidden;
106
- }
111
+ ::selection {
112
+ background: var(--color-success-250);
113
+ color: var(--theme-base-800);
114
+ }
107
115
 
108
- ::selection {
109
- background: var(--color-success-250);
110
- color: var(--theme-base-800);
111
- }
116
+ ::-moz-selection {
117
+ background: var(--color-success-250);
118
+ color: var(--theme-base-800);
119
+ }
112
120
 
113
- ::-moz-selection {
114
- background: var(--color-success-250);
115
- color: var(--theme-base-800);
116
- }
121
+ img {
122
+ max-width: 100%;
123
+ height: auto;
124
+ display: block;
125
+ }
117
126
 
118
- img {
119
- max-width: 100%;
120
- height: auto;
121
- display: block;
122
- }
127
+ h1 {
128
+ @extend %h1;
129
+ }
123
130
 
124
- h1 {
125
- @extend %h1;
126
- }
131
+ h2 {
132
+ @extend %h2;
133
+ }
127
134
 
128
- h2 {
129
- @extend %h2;
130
- }
135
+ h3 {
136
+ @extend %h3;
137
+ }
131
138
 
132
- h3 {
133
- @extend %h3;
134
- }
139
+ h4 {
140
+ @extend %h4;
141
+ }
135
142
 
136
- h4 {
137
- @extend %h4;
138
- }
143
+ h5 {
144
+ @extend %h5;
145
+ }
139
146
 
140
- h5 {
141
- @extend %h5;
142
- }
147
+ h6 {
148
+ @extend %h6;
149
+ }
143
150
 
144
- h6 {
145
- @extend %h6;
146
- }
151
+ p {
152
+ margin: 0;
153
+ }
147
154
 
148
- p {
149
- margin: 0;
150
- }
155
+ ul,
156
+ ol {
157
+ padding-left: $baseline;
158
+ margin: 0;
159
+ }
151
160
 
152
- ul,
153
- ol {
154
- padding-left: $baseline;
155
- margin: 0;
156
- }
161
+ :focus-visible {
162
+ outline: var(--accessibility-outline);
163
+ }
157
164
 
158
- :focus-visible {
159
- outline: var(--accessibility-outline);
160
- }
165
+ a {
166
+ color: currentColor;
161
167
 
162
- a {
163
- color: currentColor;
168
+ &:focus {
169
+ &:not(:focus-visible) {
170
+ opacity: 0.8;
171
+ }
172
+ outline: none;
173
+ }
164
174
 
165
- &:focus {
166
- &:not(:focus-visible) {
167
- opacity: 0.8;
175
+ &:active {
176
+ opacity: 0.7;
177
+ outline: none;
168
178
  }
169
- outline: none;
170
179
  }
171
180
 
172
- &:active {
173
- opacity: 0.7;
174
- outline: none;
181
+ svg {
182
+ vertical-align: middle;
175
183
  }
176
- }
177
184
 
178
- svg {
179
- vertical-align: middle;
180
- }
185
+ dialog {
186
+ width: 100%;
187
+ border: 0;
188
+ padding: 0;
189
+ color: currentColor;
190
+ }
181
191
 
182
- dialog {
183
- width: 100%;
184
- border: 0;
185
- padding: 0;
186
- color: currentColor;
187
- }
192
+ .payload__modal-item {
193
+ min-height: 100%;
194
+ background: transparent;
195
+ }
188
196
 
189
- .payload__modal-item {
190
- min-height: 100%;
191
- background: transparent;
192
- }
197
+ .payload__modal-container--enterDone {
198
+ overflow: auto;
199
+ }
193
200
 
194
- .payload__modal-container--enterDone {
195
- overflow: auto;
196
- }
201
+ .payload__modal-item--enter,
202
+ .payload__modal-item--enterDone {
203
+ z-index: var(--z-modal);
204
+ }
197
205
 
198
- .payload__modal-item--enter,
199
- .payload__modal-item--enterDone {
200
- z-index: var(--z-modal);
206
+ // @import '~payload-user-css'; TODO: re-enable this
201
207
  }
202
-
203
- // @import '~payload-user-css'; TODO: re-enable this