@payloadcms/ui 4.0.0-internal.f15737c → 4.0.0-internal.f2a04f7

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 (330) hide show
  1. package/dist/css/preflight.css +21 -2
  2. package/dist/elements/AppHeader/index.css +1 -1
  3. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  4. package/dist/elements/AppHeader/index.js +5 -1
  5. package/dist/elements/AppHeader/index.js.map +1 -1
  6. package/dist/elements/Autosave/index.d.ts.map +1 -1
  7. package/dist/elements/Autosave/index.js +10 -3
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.css +24 -0
  10. package/dist/elements/Button/types.d.ts +1 -1
  11. package/dist/elements/Button/types.d.ts.map +1 -1
  12. package/dist/elements/Button/types.js.map +1 -1
  13. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  14. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  15. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  16. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  17. package/dist/elements/CodeEditor/CodeEditor.js +5 -0
  18. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  19. package/dist/elements/DatePicker/DatePicker.js +6 -2
  20. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  21. package/dist/elements/DatePicker/index.css +35 -25
  22. package/dist/elements/DocumentControls/index.css +13 -10
  23. package/dist/elements/DocumentControls/index.d.ts +4 -2
  24. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentControls/index.js.map +1 -1
  26. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  27. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  29. package/dist/elements/DocumentFields/index.css +7 -7
  30. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentFields/index.js +1 -2
  32. package/dist/elements/DocumentFields/index.js.map +1 -1
  33. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  34. package/dist/elements/Drawer/types.d.ts +2 -2
  35. package/dist/elements/Drawer/types.d.ts.map +1 -1
  36. package/dist/elements/Drawer/types.js.map +1 -1
  37. package/dist/elements/EditUpload/library.css +6 -13
  38. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  39. package/dist/elements/FileManager/index.d.ts.map +1 -1
  40. package/dist/elements/FileManager/index.js +6 -1
  41. package/dist/elements/FileManager/index.js.map +1 -1
  42. package/dist/elements/Hierarchy/ActionsMenu/index.css +18 -0
  43. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts +35 -0
  44. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts.map +1 -0
  45. package/dist/elements/Hierarchy/ActionsMenu/index.js +99 -0
  46. package/dist/elements/Hierarchy/ActionsMenu/index.js.map +1 -0
  47. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +18 -16
  48. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  49. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +2 -0
  50. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  51. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  52. package/dist/elements/Hierarchy/DocHeaderButton/index.css +12 -0
  53. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  54. package/dist/elements/Hierarchy/DocHeaderButton/index.js +61 -14
  55. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  56. package/dist/elements/Hierarchy/Modal/Footer/index.css +33 -0
  57. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +21 -0
  58. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
  59. package/dist/elements/Hierarchy/Modal/Footer/index.js +122 -0
  60. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
  61. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +8 -3
  62. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  63. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +38 -12
  64. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  65. package/dist/elements/Hierarchy/Modal/index.css +0 -56
  66. package/dist/elements/Hierarchy/Modal/index.d.ts +5 -3
  67. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  68. package/dist/elements/Hierarchy/Modal/index.js +64 -65
  69. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  70. package/dist/elements/Hierarchy/Modal/types.d.ts +2 -0
  71. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  72. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  73. package/dist/elements/Hierarchy/MoveMany/index.d.ts +1 -3
  74. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  75. package/dist/elements/Hierarchy/MoveMany/index.js +62 -84
  76. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  77. package/dist/elements/ListControls/types.d.ts +0 -10
  78. package/dist/elements/ListControls/types.d.ts.map +1 -1
  79. package/dist/elements/ListControls/types.js.map +1 -1
  80. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  81. package/dist/elements/ListDrawer/DrawerContent.js +1 -2
  82. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  83. package/dist/elements/ListDrawer/Provider.d.ts +0 -6
  84. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  85. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  86. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  87. package/dist/elements/ListDrawer/index.js +1 -1
  88. package/dist/elements/ListDrawer/index.js.map +1 -1
  89. package/dist/elements/ListDrawer/types.d.ts +1 -0
  90. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  91. package/dist/elements/ListDrawer/types.js.map +1 -1
  92. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  93. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +24 -20
  94. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  95. package/dist/elements/LivePreview/Window/index.css +7 -1
  96. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  97. package/dist/elements/Nav/NavWrapper/index.js +19 -14
  98. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  99. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  100. package/dist/elements/PublishButton/index.js +71 -8
  101. package/dist/elements/PublishButton/index.js.map +1 -1
  102. package/dist/elements/PublishButton/validateAllLocales.d.ts +11 -0
  103. package/dist/elements/PublishButton/validateAllLocales.d.ts.map +1 -0
  104. package/dist/elements/PublishButton/validateAllLocales.js +263 -0
  105. package/dist/elements/PublishButton/validateAllLocales.js.map +1 -0
  106. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  107. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  108. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  109. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  110. package/dist/elements/SaveDraftButton/index.js +15 -2
  111. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  112. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  113. package/dist/elements/SegmentedControl/index.css +50 -7
  114. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  116. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +0 -9
  117. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +63 -40
  119. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/index.js +6 -1
  122. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  123. package/dist/elements/Table/index.js.map +1 -1
  124. package/dist/elements/Tabs/index.css +4 -3
  125. package/dist/elements/Upload/getEditorFileSrc.d.ts +11 -0
  126. package/dist/elements/Upload/getEditorFileSrc.d.ts.map +1 -0
  127. package/dist/elements/Upload/getEditorFileSrc.js +6 -0
  128. package/dist/elements/Upload/getEditorFileSrc.js.map +1 -0
  129. package/dist/elements/Upload/index.d.ts.map +1 -1
  130. package/dist/elements/Upload/index.js +6 -1
  131. package/dist/elements/Upload/index.js.map +1 -1
  132. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-I6PL55BF.js} +2 -2
  133. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-XAKGIULG.js} +2 -2
  134. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-36JJSMEB.js} +2 -2
  135. package/dist/exports/client/chunk-36JJSMEB.js.map +7 -0
  136. package/dist/exports/client/chunk-R7M6BG75.js +27 -0
  137. package/dist/exports/client/chunk-R7M6BG75.js.map +7 -0
  138. package/dist/exports/client/index.d.ts +3 -0
  139. package/dist/exports/client/index.d.ts.map +1 -1
  140. package/dist/exports/client/index.js +27 -27
  141. package/dist/exports/client/index.js.map +4 -4
  142. package/dist/exports/shared/index.js +2 -2
  143. package/dist/exports/shared/index.js.map +3 -3
  144. package/dist/fields/Group/index.css +3 -5
  145. package/dist/fields/Tabs/index.css +14 -14
  146. package/dist/fields/Upload/Input.d.ts.map +1 -1
  147. package/dist/fields/Upload/Input.js +3 -1
  148. package/dist/fields/Upload/Input.js.map +1 -1
  149. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  150. package/dist/forms/Form/fieldReducer.js +6 -9
  151. package/dist/forms/Form/fieldReducer.js.map +1 -1
  152. package/dist/forms/Form/index.d.ts.map +1 -1
  153. package/dist/forms/Form/index.js +0 -1
  154. package/dist/forms/Form/index.js.map +1 -1
  155. package/dist/forms/Form/types.d.ts +0 -5
  156. package/dist/forms/Form/types.d.ts.map +1 -1
  157. package/dist/forms/Form/types.js.map +1 -1
  158. package/dist/forms/RenderFields/index.css +2 -2
  159. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -2
  160. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  161. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  162. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -2
  163. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  164. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  165. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -2
  166. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  167. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  168. package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -2
  169. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  170. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  171. package/dist/forms/useField/types.d.ts +0 -4
  172. package/dist/forms/useField/types.d.ts.map +1 -1
  173. package/dist/forms/useField/types.js.map +1 -1
  174. package/dist/icons/Arrow/index.d.ts +1 -1
  175. package/dist/icons/Arrow/index.d.ts.map +1 -1
  176. package/dist/icons/Arrow/index.js +7 -1
  177. package/dist/icons/Arrow/index.js.map +1 -1
  178. package/dist/icons/Clock/index.d.ts +6 -0
  179. package/dist/icons/Clock/index.d.ts.map +1 -0
  180. package/dist/icons/Clock/index.js +18 -0
  181. package/dist/icons/Clock/index.js.map +1 -0
  182. package/dist/icons/Pin/index.d.ts +7 -0
  183. package/dist/icons/Pin/index.d.ts.map +1 -0
  184. package/dist/icons/Pin/index.js +23 -0
  185. package/dist/icons/Pin/index.js.map +1 -0
  186. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  187. package/dist/icons/Sidebar/index.js +2 -0
  188. package/dist/icons/Sidebar/index.js.map +1 -1
  189. package/dist/icons/Table/index.css +5 -1
  190. package/dist/layouts/Root/getRootLayoutData.d.ts +2 -2
  191. package/dist/layouts/Root/getRootLayoutData.d.ts.map +1 -1
  192. package/dist/layouts/Root/getRootLayoutData.js +8 -4
  193. package/dist/layouts/Root/getRootLayoutData.js.map +1 -1
  194. package/dist/layouts/Root/index.d.ts +1 -1
  195. package/dist/layouts/Root/index.d.ts.map +1 -1
  196. package/dist/layouts/Root/index.js +5 -20
  197. package/dist/layouts/Root/index.js.map +1 -1
  198. package/dist/providers/ListQuery/types.d.ts +0 -4
  199. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  200. package/dist/providers/ListQuery/types.js.map +1 -1
  201. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  202. package/dist/providers/RouteCache/index.js +37 -25
  203. package/dist/providers/RouteCache/index.js.map +1 -1
  204. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  205. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  206. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  207. package/dist/providers/TableColumns/types.d.ts +1 -34
  208. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  209. package/dist/providers/TableColumns/types.js.map +1 -1
  210. package/dist/styles.css +22 -3
  211. package/dist/templates/Default/index.css +0 -1
  212. package/dist/utilities/appendCacheTag.d.ts +1 -0
  213. package/dist/utilities/appendCacheTag.d.ts.map +1 -1
  214. package/dist/utilities/appendCacheTag.js +2 -1
  215. package/dist/utilities/appendCacheTag.js.map +1 -1
  216. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  217. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  218. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  219. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  220. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  221. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  222. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  223. package/dist/utilities/getDocumentThumbnail.d.ts +6 -0
  224. package/dist/utilities/getDocumentThumbnail.d.ts.map +1 -0
  225. package/dist/utilities/getDocumentThumbnail.js +27 -0
  226. package/dist/utilities/getDocumentThumbnail.js.map +1 -0
  227. package/dist/utilities/getDocumentThumbnailPopulate.d.ts +7 -0
  228. package/dist/utilities/getDocumentThumbnailPopulate.d.ts.map +1 -0
  229. package/dist/utilities/getDocumentThumbnailPopulate.js +23 -0
  230. package/dist/utilities/getDocumentThumbnailPopulate.js.map +1 -0
  231. package/dist/utilities/getDocumentThumbnailSelect.d.ts +7 -0
  232. package/dist/utilities/getDocumentThumbnailSelect.d.ts.map +1 -0
  233. package/dist/utilities/getDocumentThumbnailSelect.js +24 -0
  234. package/dist/utilities/getDocumentThumbnailSelect.js.map +1 -0
  235. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  236. package/dist/utilities/handleLivePreview.js.map +1 -1
  237. package/dist/utilities/hasSavePermission.js.map +1 -1
  238. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  239. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  240. package/dist/utilities/serverFunctionRegistry.js +2 -0
  241. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  242. package/dist/utilities/traverseForLocalizedFields.d.ts +7 -2
  243. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  244. package/dist/utilities/traverseForLocalizedFields.js +22 -8
  245. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  246. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  247. package/dist/views/CreateFirstUser/index.js +4 -2
  248. package/dist/views/CreateFirstUser/index.js.map +1 -1
  249. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  250. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  251. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  252. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  253. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  254. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +16 -4
  255. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  256. package/dist/views/Edit/index.css +26 -0
  257. package/dist/views/Edit/index.d.ts.map +1 -1
  258. package/dist/views/Edit/index.js +1 -1
  259. package/dist/views/Edit/index.js.map +1 -1
  260. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  261. package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -1
  262. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  263. package/dist/views/List/DocumentGrid/index.d.ts.map +1 -1
  264. package/dist/views/List/DocumentGrid/index.js +2 -37
  265. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  266. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  267. package/dist/views/List/enrichDocsWithVersionStatus.js +3 -1
  268. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  269. package/dist/views/List/index.d.ts.map +1 -1
  270. package/dist/views/List/index.js +11 -24
  271. package/dist/views/List/index.js.map +1 -1
  272. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -12
  273. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  274. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +2 -2
  275. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  276. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +2 -2
  277. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  278. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +2 -2
  279. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  280. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +2 -2
  281. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  282. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +2 -2
  283. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  284. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -2
  285. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  286. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  287. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +2 -2
  288. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  289. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -8
  290. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  291. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -2
  292. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  293. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  294. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +2 -2
  295. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  296. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  297. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +31 -5
  298. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  299. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +41 -0
  300. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +19 -0
  301. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +1 -0
  302. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +121 -0
  303. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +1 -0
  304. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +20 -0
  305. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +1 -0
  306. package/dist/widgets/RecentlyViewed/getDocuments.js +254 -0
  307. package/dist/widgets/RecentlyViewed/getDocuments.js.map +1 -0
  308. package/dist/widgets/RecentlyViewed/index.client.d.ts +41 -0
  309. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +1 -0
  310. package/dist/widgets/RecentlyViewed/index.client.js +409 -0
  311. package/dist/widgets/RecentlyViewed/index.client.js.map +1 -0
  312. package/dist/widgets/RecentlyViewed/index.css +352 -0
  313. package/dist/widgets/RecentlyViewed/index.d.ts +1 -1
  314. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  315. package/dist/widgets/RecentlyViewed/index.js +33 -134
  316. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  317. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts +18 -0
  318. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +1 -0
  319. package/dist/widgets/RecentlyViewed/pinnedPreferences.js +81 -0
  320. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +1 -0
  321. package/dist/widgets/RecentlyViewed/recents.d.ts +8 -0
  322. package/dist/widgets/RecentlyViewed/recents.d.ts.map +1 -0
  323. package/dist/widgets/RecentlyViewed/recents.js +19 -0
  324. package/dist/widgets/RecentlyViewed/recents.js.map +1 -0
  325. package/package.json +16 -16
  326. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  327. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  328. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  329. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-I6PL55BF.js.map} +0 -0
  330. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-XAKGIULG.js.map} +0 -0
@@ -0,0 +1,41 @@
1
+ @layer payload-default {
2
+ .recents-widget__add-pin {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ height: 100%;
7
+ min-block-size: var(--recents-row-height);
8
+ padding: var(--spacer-2);
9
+ border: var(--stroke-width-small) dashed var(--color-border);
10
+ border-radius: var(--radius-large);
11
+ background: var(--color-bg);
12
+ text-align: center;
13
+ }
14
+
15
+ .recents-widget__select-documents {
16
+ height: auto;
17
+ min-block-size: var(--spacer-4);
18
+ max-inline-size: 100%;
19
+ }
20
+
21
+ .recents-widget__select-documents .btn__label {
22
+ white-space: normal;
23
+ overflow-wrap: anywhere;
24
+ }
25
+
26
+ .recents-widget__select-documents[aria-disabled='true'] {
27
+ cursor: progress;
28
+ }
29
+
30
+ .recents-widget__pin-picker .sort-column__label,
31
+ .recents-widget__pin-picker .page-controls__page-info,
32
+ .recents-widget__pin-picker .per-page__label {
33
+ color: var(--recents-text-secondary);
34
+ }
35
+
36
+ .recents-widget__pin-picker .sort-column__button {
37
+ min-width: var(--spacer-4);
38
+ min-height: var(--spacer-4);
39
+ color: var(--color-icon-secondary);
40
+ }
41
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { PinnedItem } from '../recents.js';
3
+ import './index.css';
4
+ export declare function PinDocumentPicker({ collectionSlugs, isDisabled, isEmpty, labels, onError, onSelect, pinsURL, }: {
5
+ collectionSlugs: string[];
6
+ isDisabled: boolean;
7
+ isEmpty?: boolean;
8
+ labels: {
9
+ addPin: string;
10
+ pinnedEmpty: string;
11
+ pinnedEmptyDescription: string;
12
+ };
13
+ onError: () => void;
14
+ onSelect: (args: {
15
+ document: PinnedItem;
16
+ }) => void;
17
+ pinsURL: string;
18
+ }): React.JSX.Element;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/widgets/RecentlyViewed/PinDocumentPicker/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmC,MAAM,OAAO,CAAA;AAGvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAM/C,OAAO,aAAa,CAAA;AAEpB,wBAAgB,iBAAiB,CAAC,EAChC,eAAe,EACf,UAAU,EACV,OAAe,EACf,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,GACR,EAAE;IACD,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,sBAAsB,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/E,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,CAAA;IAClD,OAAO,EAAE,MAAM,CAAA;CAChB,qBAmGA"}
@@ -0,0 +1,121 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
+ import React, { useId, useMemo, useState } from 'react';
5
+ import { Button } from '../../../elements/Button/index.js';
6
+ import { useListDrawer } from '../../../elements/ListDrawer/index.js';
7
+ import { PinIcon } from '../../../icons/Pin/index.js';
8
+ import { readPinnedPreferences } from '../pinnedPreferences.js';
9
+ import './index.css';
10
+ export function PinDocumentPicker({
11
+ collectionSlugs,
12
+ isDisabled,
13
+ isEmpty = false,
14
+ labels,
15
+ onError,
16
+ onSelect,
17
+ pinsURL
18
+ }) {
19
+ const emptyStateID = useId();
20
+ const [filterOptions, setFilterOptions] = useState({});
21
+ const [isPreparing, setIsPreparing] = useState(false);
22
+ const drawerOptions = useMemo(() => ({
23
+ collectionSlugs,
24
+ filterOptions
25
+ }), [collectionSlugs, filterOptions]);
26
+ const [ListDrawer,, {
27
+ closeDrawer,
28
+ isDrawerOpen,
29
+ openDrawer
30
+ }] = useListDrawer(drawerOptions);
31
+ const handleSelect = ({
32
+ collectionSlug,
33
+ doc
34
+ }) => {
35
+ closeDrawer();
36
+ onSelect({
37
+ document: {
38
+ id: doc.id,
39
+ collectionSlug
40
+ }
41
+ });
42
+ };
43
+ const prepareDrawer = async () => {
44
+ if (isDisabled || isPreparing) {
45
+ return;
46
+ }
47
+ setIsPreparing(true);
48
+ try {
49
+ const pins = await readPinnedPreferences({
50
+ url: pinsURL
51
+ });
52
+ const idsByCollection = new Map();
53
+ for (const document of pins) {
54
+ const ids = idsByCollection.get(document.collectionSlug) ?? [];
55
+ ids.push(document.id);
56
+ idsByCollection.set(document.collectionSlug, ids);
57
+ }
58
+ setFilterOptions(Object.fromEntries(collectionSlugs.map(slug => {
59
+ const ids_0 = idsByCollection.get(slug);
60
+ return [slug, ids_0?.length ? {
61
+ id: {
62
+ not_in: ids_0
63
+ }
64
+ } : true];
65
+ })));
66
+ openDrawer();
67
+ } catch {
68
+ onError();
69
+ } finally {
70
+ setIsPreparing(false);
71
+ }
72
+ };
73
+ const addPinButton = /*#__PURE__*/_jsx(Button, {
74
+ "aria-expanded": isDrawerOpen,
75
+ "aria-haspopup": "dialog",
76
+ "aria-label": labels.addPin,
77
+ buttonStyle: "secondary",
78
+ className: "recents-widget__select-documents",
79
+ extraButtonProps: {
80
+ 'aria-busy': isPreparing,
81
+ 'aria-describedby': isEmpty ? emptyStateID : undefined,
82
+ 'aria-disabled': isDisabled || isPreparing
83
+ },
84
+ margin: false,
85
+ onClick: () => void prepareDrawer(),
86
+ size: "medium",
87
+ type: "button",
88
+ children: labels.addPin
89
+ });
90
+ return /*#__PURE__*/_jsxs(_Fragment, {
91
+ children: [isEmpty ? /*#__PURE__*/_jsxs("div", {
92
+ className: "recents-widget__empty",
93
+ children: [/*#__PURE__*/_jsx("span", {
94
+ "aria-hidden": "true",
95
+ className: "recents-widget__empty-icon recents-widget__empty-icon--pinned",
96
+ children: /*#__PURE__*/_jsx(PinIcon, {})
97
+ }), /*#__PURE__*/_jsxs("span", {
98
+ className: "recents-widget__empty-text",
99
+ id: emptyStateID,
100
+ children: [/*#__PURE__*/_jsx("span", {
101
+ className: "recents-widget__empty-title",
102
+ children: labels.pinnedEmpty
103
+ }), /*#__PURE__*/_jsx("span", {
104
+ className: "recents-widget__empty-description",
105
+ children: labels.pinnedEmptyDescription
106
+ })]
107
+ }), addPinButton]
108
+ }) : /*#__PURE__*/_jsx("div", {
109
+ className: "recents-widget__add-pin",
110
+ children: addPinButton
111
+ }), /*#__PURE__*/_jsx(ListDrawer, {
112
+ allowCreate: false,
113
+ className: "recents-widget__pin-picker",
114
+ disableQueryPresets: true,
115
+ enableRowSelections: false,
116
+ onSelect: handleSelect,
117
+ overrideEntityVisibility: false
118
+ })]
119
+ });
120
+ }
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","useId","useMemo","useState","Button","useListDrawer","PinIcon","readPinnedPreferences","PinDocumentPicker","collectionSlugs","isDisabled","isEmpty","labels","onError","onSelect","pinsURL","emptyStateID","filterOptions","setFilterOptions","isPreparing","setIsPreparing","drawerOptions","ListDrawer","closeDrawer","isDrawerOpen","openDrawer","handleSelect","collectionSlug","doc","document","id","prepareDrawer","pins","url","idsByCollection","Map","ids","get","push","set","Object","fromEntries","map","slug","length","not_in","addPinButton","_jsx","addPin","buttonStyle","className","extraButtonProps","undefined","margin","onClick","size","type","_jsxs","_Fragment","pinnedEmpty","pinnedEmptyDescription","allowCreate","disableQueryPresets","enableRowSelections","overrideEntityVisibility"],"sources":["../../../../src/widgets/RecentlyViewed/PinDocumentPicker/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FilterOptionsResult } from 'payload'\n\nimport React, { useId, useMemo, useState } from 'react'\n\nimport type { ListDrawerProps } from '../../../elements/ListDrawer/types.js'\nimport type { PinnedItem } from '../recents.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useListDrawer } from '../../../elements/ListDrawer/index.js'\nimport { PinIcon } from '../../../icons/Pin/index.js'\nimport { readPinnedPreferences } from '../pinnedPreferences.js'\nimport './index.css'\n\nexport function PinDocumentPicker({\n collectionSlugs,\n isDisabled,\n isEmpty = false,\n labels,\n onError,\n onSelect,\n pinsURL,\n}: {\n collectionSlugs: string[]\n isDisabled: boolean\n isEmpty?: boolean\n labels: { addPin: string; pinnedEmpty: string; pinnedEmptyDescription: string }\n onError: () => void\n onSelect: (args: { document: PinnedItem }) => void\n pinsURL: string\n}) {\n const emptyStateID = useId()\n const [filterOptions, setFilterOptions] = useState<FilterOptionsResult>({})\n const [isPreparing, setIsPreparing] = useState(false)\n const drawerOptions = useMemo(\n () => ({ collectionSlugs, filterOptions }),\n [collectionSlugs, filterOptions],\n )\n const [ListDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useListDrawer(drawerOptions)\n const handleSelect: ListDrawerProps['onSelect'] = ({ collectionSlug, doc }) => {\n closeDrawer()\n onSelect({ document: { id: doc.id, collectionSlug } })\n }\n\n const prepareDrawer = async () => {\n if (isDisabled || isPreparing) {\n return\n }\n setIsPreparing(true)\n\n try {\n const pins = await readPinnedPreferences({ url: pinsURL })\n const idsByCollection = new Map<string, (number | string)[]>()\n\n for (const document of pins) {\n const ids = idsByCollection.get(document.collectionSlug) ?? []\n\n ids.push(document.id)\n idsByCollection.set(document.collectionSlug, ids)\n }\n setFilterOptions(\n Object.fromEntries(\n collectionSlugs.map((slug) => {\n const ids = idsByCollection.get(slug)\n\n return [slug, ids?.length ? { id: { not_in: ids } } : true]\n }),\n ),\n )\n openDrawer()\n } catch {\n onError()\n } finally {\n setIsPreparing(false)\n }\n }\n\n const addPinButton = (\n <Button\n aria-expanded={isDrawerOpen}\n aria-haspopup=\"dialog\"\n aria-label={labels.addPin}\n buttonStyle=\"secondary\"\n className=\"recents-widget__select-documents\"\n extraButtonProps={{\n 'aria-busy': isPreparing,\n 'aria-describedby': isEmpty ? emptyStateID : undefined,\n 'aria-disabled': isDisabled || isPreparing,\n }}\n margin={false}\n onClick={() => void prepareDrawer()}\n size=\"medium\"\n type=\"button\"\n >\n {labels.addPin}\n </Button>\n )\n\n return (\n <>\n {isEmpty ? (\n <div className=\"recents-widget__empty\">\n <span\n aria-hidden=\"true\"\n className=\"recents-widget__empty-icon recents-widget__empty-icon--pinned\"\n >\n <PinIcon />\n </span>\n <span className=\"recents-widget__empty-text\" id={emptyStateID}>\n <span className=\"recents-widget__empty-title\">{labels.pinnedEmpty}</span>\n <span className=\"recents-widget__empty-description\">\n {labels.pinnedEmptyDescription}\n </span>\n </span>\n {addPinButton}\n </div>\n ) : (\n <div className=\"recents-widget__add-pin\">{addPinButton}</div>\n )}\n <ListDrawer\n allowCreate={false}\n className=\"recents-widget__pin-picker\"\n disableQueryPresets\n enableRowSelections={false}\n onSelect={handleSelect}\n overrideEntityVisibility={false}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import type { PayloadRequest, ServerFunction } from 'payload';
2
+ import type { RecentDocument } from './index.client.js';
3
+ export type DocumentsTab = 'pinned' | 'recents';
4
+ export type DocumentsPageArgs = {
5
+ excludedCollections?: string[];
6
+ limit: number;
7
+ page: number;
8
+ shouldIncludePinPlaceholder?: boolean;
9
+ tab: DocumentsTab;
10
+ };
11
+ export type DocumentsPage = {
12
+ items: RecentDocument[];
13
+ page: number;
14
+ totalDocs: number;
15
+ };
16
+ export declare const getDashboardDocumentsHandler: ServerFunction<DocumentsPageArgs, Promise<DocumentsPage>>;
17
+ export declare function getDashboardDocuments({ excludedCollections, limit, page, req, shouldIncludePinPlaceholder, tab, }: {
18
+ req: PayloadRequest;
19
+ } & DocumentsPageArgs): Promise<DocumentsPage>;
20
+ //# sourceMappingURL=getDocuments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocuments.d.ts","sourceRoot":"","sources":["../../../src/widgets/RecentlyViewed/getDocuments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAS,MAAM,SAAS,CAAA;AAMpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAWvD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAA;AAC/C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,GAAG,EAAE,YAAY,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAKD,eAAO,MAAM,4BAA4B,EAAE,cAAc,CACvD,iBAAiB,EACjB,OAAO,CAAC,aAAa,CAAC,CACC,CAAA;AAEzB,wBAAsB,qBAAqB,CAAC,EAC1C,mBAAwB,EACxB,KAAK,EACL,IAAI,EACJ,GAAG,EACH,2BAAmC,EACnC,GAAG,GACJ,EAAE;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,GAAG,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAsEtE"}
@@ -0,0 +1,254 @@
1
+ import { getTranslation } from '@payloadcms/translations';
2
+ import { UnauthorizedError } from 'payload';
3
+ import { formatAdminURL, PREFERENCE_KEYS } from 'payload/shared';
4
+ import { formatRelativeDate, getRelativeTimeFormat } from '../../utilities/formatRelativeDate.js';
5
+ import { getDocumentThumbnail } from '../../utilities/getDocumentThumbnail.js';
6
+ import { getDocumentThumbnailPopulate } from '../../utilities/getDocumentThumbnailPopulate.js';
7
+ import { getDocumentThumbnailSelect } from '../../utilities/getDocumentThumbnailSelect.js';
8
+ import { enrichDocsWithVersionStatus } from '../../views/List/enrichDocsWithVersionStatus.js';
9
+ import { getPinnedItems } from './pinnedPreferences.js';
10
+ import { documentKey, getValueByPath } from './recents.js';
11
+ export const getDashboardDocumentsHandler = getDashboardDocuments;
12
+ export async function getDashboardDocuments({
13
+ excludedCollections = [],
14
+ limit,
15
+ page,
16
+ req,
17
+ shouldIncludePinPlaceholder = false,
18
+ tab
19
+ }) {
20
+ if (!req.user) {
21
+ throw new UnauthorizedError(req.t);
22
+ }
23
+ if (!Number.isSafeInteger(limit) || limit < 1 || limit > 100 || !Number.isSafeInteger(page) || page < 1) {
24
+ throw new Error('Invalid dashboard page');
25
+ }
26
+ if (tab !== 'pinned' && tab !== 'recents') {
27
+ throw new Error('Invalid dashboard tab');
28
+ }
29
+ const key = tab === 'pinned' ? PREFERENCE_KEYS.PINNED_DOCUMENTS : PREFERENCE_KEYS.RECENTLY_VIEWED;
30
+ const preference = await req.payload.find({
31
+ collection: 'payload-preferences',
32
+ depth: 0,
33
+ limit: 1,
34
+ overrideAccess: false,
35
+ req,
36
+ user: req.user,
37
+ where: {
38
+ and: [ownerWhere({
39
+ req
40
+ }), {
41
+ key: {
42
+ equals: key
43
+ }
44
+ }]
45
+ }
46
+ });
47
+ const excluded = new Set(tab === 'recents' ? excludedCollections : []);
48
+ const storedReferences = getPinnedItems({
49
+ value: preference.docs[0]?.value
50
+ }).filter(({
51
+ collectionSlug
52
+ }) => {
53
+ const collection = req.payload.collections[collectionSlug];
54
+ return !excluded.has(collectionSlug) && collection && collection.config.admin.group !== false;
55
+ });
56
+ const availableReferences = await getAvailableReferences({
57
+ references: storedReferences,
58
+ req
59
+ });
60
+ const totalDocs = availableReferences.length;
61
+ const lastPage = Math.max(1, Math.ceil((totalDocs + Number(tab === 'pinned' && shouldIncludePinPlaceholder)) / limit));
62
+ page = Math.min(page, lastPage);
63
+ const references = availableReferences.slice((page - 1) * limit, page * limit);
64
+ const documents = await loadDocuments({
65
+ references,
66
+ req
67
+ });
68
+ const items = references.map(reference => {
69
+ const document = documents.get(documentKey(reference));
70
+ if (!document || tab !== 'recents') {
71
+ return document;
72
+ }
73
+ const viewedAt = reference.viewedAt;
74
+ return {
75
+ ...document,
76
+ dateLabel: viewedAt ? formatRelativeDate({
77
+ relativeTimeFormat: getRelativeTimeFormat(req.i18n.language),
78
+ value: viewedAt
79
+ }) : undefined,
80
+ dateTime: viewedAt,
81
+ viewedAt
82
+ };
83
+ }).filter(item => Boolean(item));
84
+ return {
85
+ items,
86
+ page,
87
+ totalDocs
88
+ };
89
+ }
90
+ /** Check identities without populating documents, so deleted or forbidden references do not create empty pages. */
91
+ async function getAvailableReferences({
92
+ references,
93
+ req
94
+ }) {
95
+ const available = new Set();
96
+ await Promise.all([...groupReferenceIDs({
97
+ references
98
+ }).entries()].map(async ([collectionSlug, ids]) => {
99
+ const result = await req.payload.find({
100
+ collection: collectionSlug,
101
+ depth: 0,
102
+ disableErrors: true,
103
+ draft: true,
104
+ limit: ids.length,
105
+ overrideAccess: false,
106
+ pagination: false,
107
+ req,
108
+ select: {
109
+ id: true
110
+ },
111
+ sort: 'id',
112
+ user: req.user,
113
+ where: {
114
+ id: {
115
+ in: ids
116
+ }
117
+ }
118
+ });
119
+ for (const doc of result.docs) {
120
+ available.add(documentKey({
121
+ id: doc.id,
122
+ collectionSlug
123
+ }));
124
+ }
125
+ }));
126
+ return references.filter(reference => available.has(documentKey(reference)));
127
+ }
128
+ function groupReferenceIDs({
129
+ references
130
+ }) {
131
+ const idsByCollection = new Map();
132
+ for (const reference of references) {
133
+ const ids = idsByCollection.get(reference.collectionSlug) ?? [];
134
+ ids.push(reference.id);
135
+ idsByCollection.set(reference.collectionSlug, ids);
136
+ }
137
+ return idsByCollection;
138
+ }
139
+ async function loadDocuments({
140
+ references,
141
+ req
142
+ }) {
143
+ const documents = new Map();
144
+ await Promise.all([...groupReferenceIDs({
145
+ references
146
+ }).entries()].map(async ([collectionSlug, ids]) => {
147
+ const config = req.payload.collections[collectionSlug].config;
148
+ const select = getDocumentThumbnailSelect({
149
+ collectionConfig: config,
150
+ select: {
151
+ id: true,
152
+ [(config.admin.useAsTitle || 'id').split('.')[0]]: true,
153
+ _status: true,
154
+ updatedAt: true,
155
+ ...(config.admin.useAsThumbnail ? {
156
+ [config.admin.useAsThumbnail]: true
157
+ } : {}),
158
+ ...(config.upload ? {
159
+ width: true
160
+ } : {})
161
+ }
162
+ });
163
+ const result = await req.payload.find({
164
+ collection: collectionSlug,
165
+ depth: 1,
166
+ disableErrors: true,
167
+ draft: true,
168
+ limit: ids.length,
169
+ overrideAccess: false,
170
+ populate: getDocumentThumbnailPopulate({
171
+ collectionConfig: config,
172
+ collections: req.payload.config.collections
173
+ }),
174
+ req,
175
+ select,
176
+ sort: 'id',
177
+ user: req.user,
178
+ where: {
179
+ id: {
180
+ in: ids
181
+ }
182
+ }
183
+ });
184
+ const enriched = await enrichDocsWithVersionStatus({
185
+ collectionConfig: config,
186
+ data: result,
187
+ req
188
+ });
189
+ for (const doc of enriched.docs) {
190
+ const item = enrichDocument({
191
+ collectionSlug,
192
+ doc,
193
+ req
194
+ });
195
+ documents.set(documentKey(item), item);
196
+ }
197
+ }));
198
+ return documents;
199
+ }
200
+ function ownerWhere({
201
+ req
202
+ }) {
203
+ return {
204
+ and: [{
205
+ 'user.relationTo': {
206
+ equals: req.user.collection
207
+ }
208
+ }, {
209
+ 'user.value': {
210
+ equals: req.user.id
211
+ }
212
+ }]
213
+ };
214
+ }
215
+ function enrichDocument({
216
+ collectionSlug,
217
+ doc,
218
+ req
219
+ }) {
220
+ const {
221
+ i18n,
222
+ payload
223
+ } = req;
224
+ const config = payload.collections[collectionSlug].config;
225
+ const rawTitle = getValueByPath({
226
+ object: doc,
227
+ path: config.admin?.useAsTitle || 'id'
228
+ });
229
+ const status = doc._displayStatus || doc._status;
230
+ return {
231
+ id: doc.id,
232
+ collectionSlug,
233
+ dateLabel: doc.updatedAt ? formatRelativeDate({
234
+ relativeTimeFormat: getRelativeTimeFormat(i18n.language),
235
+ value: doc.updatedAt
236
+ }) : undefined,
237
+ dateTime: doc.updatedAt,
238
+ href: formatAdminURL({
239
+ adminRoute: payload.config.routes.admin,
240
+ path: `/collections/${collectionSlug}/${encodeURIComponent(String(doc.id))}`
241
+ }),
242
+ isChanged: status === 'changed',
243
+ isDraft: status === 'draft',
244
+ statusLabel: status === 'draft' ? i18n.t('version:draft') : status === 'changed' ? i18n.t('version:changed') : status === 'published' ? i18n.t('version:published') : undefined,
245
+ thumbnailURL: getDocumentThumbnail({
246
+ doc,
247
+ useAsThumbnail: config.admin?.useAsThumbnail
248
+ }),
249
+ title: typeof rawTitle === 'string' && rawTitle ? rawTitle : String(doc.id),
250
+ typeLabel: getTranslation(config.labels.plural, i18n),
251
+ updatedAt: doc.updatedAt
252
+ };
253
+ }
254
+ //# sourceMappingURL=getDocuments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocuments.js","names":["getTranslation","UnauthorizedError","formatAdminURL","PREFERENCE_KEYS","formatRelativeDate","getRelativeTimeFormat","getDocumentThumbnail","getDocumentThumbnailPopulate","getDocumentThumbnailSelect","enrichDocsWithVersionStatus","getPinnedItems","documentKey","getValueByPath","getDashboardDocumentsHandler","getDashboardDocuments","excludedCollections","limit","page","req","shouldIncludePinPlaceholder","tab","user","t","Number","isSafeInteger","Error","key","PINNED_DOCUMENTS","RECENTLY_VIEWED","preference","payload","find","collection","depth","overrideAccess","where","and","ownerWhere","equals","excluded","Set","storedReferences","value","docs","filter","collectionSlug","collections","has","config","admin","group","availableReferences","getAvailableReferences","references","totalDocs","length","lastPage","Math","max","ceil","min","slice","documents","loadDocuments","items","map","reference","document","get","viewedAt","dateLabel","relativeTimeFormat","i18n","language","undefined","dateTime","item","Boolean","available","Promise","all","groupReferenceIDs","entries","ids","result","disableErrors","draft","pagination","select","id","sort","in","doc","add","idsByCollection","Map","push","set","collectionConfig","useAsTitle","split","_status","updatedAt","useAsThumbnail","upload","width","populate","enriched","data","enrichDocument","rawTitle","object","path","status","_displayStatus","href","adminRoute","routes","encodeURIComponent","String","isChanged","isDraft","statusLabel","thumbnailURL","title","typeLabel","labels","plural"],"sources":["../../../src/widgets/RecentlyViewed/getDocuments.ts"],"sourcesContent":["import type { PayloadRequest, ServerFunction, Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { UnauthorizedError } from 'payload'\nimport { formatAdminURL, PREFERENCE_KEYS } from 'payload/shared'\n\nimport type { RecentDocument } from './index.client.js'\nimport type { PinnedItem } from './recents.js'\n\nimport { formatRelativeDate, getRelativeTimeFormat } from '../../utilities/formatRelativeDate.js'\nimport { getDocumentThumbnail } from '../../utilities/getDocumentThumbnail.js'\nimport { getDocumentThumbnailPopulate } from '../../utilities/getDocumentThumbnailPopulate.js'\nimport { getDocumentThumbnailSelect } from '../../utilities/getDocumentThumbnailSelect.js'\nimport { enrichDocsWithVersionStatus } from '../../views/List/enrichDocsWithVersionStatus.js'\nimport { getPinnedItems } from './pinnedPreferences.js'\nimport { documentKey, getValueByPath } from './recents.js'\n\nexport type DocumentsTab = 'pinned' | 'recents'\nexport type DocumentsPageArgs = {\n excludedCollections?: string[]\n limit: number\n page: number\n shouldIncludePinPlaceholder?: boolean\n tab: DocumentsTab\n}\nexport type DocumentsPage = {\n items: RecentDocument[]\n page: number\n totalDocs: number\n}\n\ntype Reference = { viewedAt?: string } & PinnedItem\ntype QueryDoc = { id: number | string; updatedAt?: string } & Record<string, unknown>\n\nexport const getDashboardDocumentsHandler: ServerFunction<\n DocumentsPageArgs,\n Promise<DocumentsPage>\n> = getDashboardDocuments\n\nexport async function getDashboardDocuments({\n excludedCollections = [],\n limit,\n page,\n req,\n shouldIncludePinPlaceholder = false,\n tab,\n}: { req: PayloadRequest } & DocumentsPageArgs): Promise<DocumentsPage> {\n if (!req.user) {\n throw new UnauthorizedError(req.t)\n }\n if (\n !Number.isSafeInteger(limit) ||\n limit < 1 ||\n limit > 100 ||\n !Number.isSafeInteger(page) ||\n page < 1\n ) {\n throw new Error('Invalid dashboard page')\n }\n if (tab !== 'pinned' && tab !== 'recents') {\n throw new Error('Invalid dashboard tab')\n }\n\n const key = tab === 'pinned' ? PREFERENCE_KEYS.PINNED_DOCUMENTS : PREFERENCE_KEYS.RECENTLY_VIEWED\n const preference = await req.payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n overrideAccess: false,\n req,\n user: req.user,\n where: { and: [ownerWhere({ req }), { key: { equals: key } }] },\n })\n const excluded = new Set(tab === 'recents' ? excludedCollections : [])\n const storedReferences = getPinnedItems({ value: preference.docs[0]?.value }).filter(\n ({ collectionSlug }) => {\n const collection = req.payload.collections[collectionSlug]\n\n return !excluded.has(collectionSlug) && collection && collection.config.admin.group !== false\n },\n )\n const availableReferences = await getAvailableReferences({ references: storedReferences, req })\n const totalDocs = availableReferences.length\n const lastPage = Math.max(\n 1,\n Math.ceil((totalDocs + Number(tab === 'pinned' && shouldIncludePinPlaceholder)) / limit),\n )\n\n page = Math.min(page, lastPage)\n const references = availableReferences.slice((page - 1) * limit, page * limit)\n\n const documents = await loadDocuments({ references, req })\n const items = references\n .map((reference): RecentDocument | undefined => {\n const document = documents.get(documentKey(reference))\n if (!document || tab !== 'recents') {\n return document\n }\n\n const viewedAt = reference.viewedAt\n\n return {\n ...document,\n dateLabel: viewedAt\n ? formatRelativeDate({\n relativeTimeFormat: getRelativeTimeFormat(req.i18n.language),\n value: viewedAt,\n })\n : undefined,\n dateTime: viewedAt,\n viewedAt,\n }\n })\n .filter((item): item is RecentDocument => Boolean(item))\n\n return { items, page, totalDocs }\n}\n\n/** Check identities without populating documents, so deleted or forbidden references do not create empty pages. */\nasync function getAvailableReferences({\n references,\n req,\n}: {\n references: Reference[]\n req: PayloadRequest\n}): Promise<Reference[]> {\n const available = new Set<string>()\n\n await Promise.all(\n [...groupReferenceIDs({ references }).entries()].map(async ([collectionSlug, ids]) => {\n const result = await req.payload.find({\n collection: collectionSlug,\n depth: 0,\n disableErrors: true,\n draft: true,\n limit: ids.length,\n overrideAccess: false,\n pagination: false,\n req,\n select: { id: true },\n sort: 'id',\n user: req.user,\n where: { id: { in: ids } },\n })\n\n for (const doc of result.docs) {\n available.add(documentKey({ id: doc.id, collectionSlug }))\n }\n }),\n )\n\n return references.filter((reference) => available.has(documentKey(reference)))\n}\n\nfunction groupReferenceIDs({\n references,\n}: {\n references: Reference[]\n}): Map<string, Array<number | string>> {\n const idsByCollection = new Map<string, Array<number | string>>()\n\n for (const reference of references) {\n const ids = idsByCollection.get(reference.collectionSlug) ?? []\n\n ids.push(reference.id)\n idsByCollection.set(reference.collectionSlug, ids)\n }\n\n return idsByCollection\n}\n\nasync function loadDocuments({\n references,\n req,\n}: {\n references: Reference[]\n req: PayloadRequest\n}): Promise<Map<string, RecentDocument>> {\n const documents = new Map<string, RecentDocument>()\n await Promise.all(\n [...groupReferenceIDs({ references }).entries()].map(async ([collectionSlug, ids]) => {\n const config = req.payload.collections[collectionSlug].config\n const select = getDocumentThumbnailSelect({\n collectionConfig: config,\n select: {\n id: true,\n [(config.admin.useAsTitle || 'id').split('.')[0]]: true,\n _status: true,\n updatedAt: true,\n ...(config.admin.useAsThumbnail ? { [config.admin.useAsThumbnail]: true } : {}),\n ...(config.upload ? { width: true } : {}),\n },\n })\n const result = await req.payload.find({\n collection: collectionSlug,\n depth: 1,\n disableErrors: true,\n draft: true,\n limit: ids.length,\n overrideAccess: false,\n populate: getDocumentThumbnailPopulate({\n collectionConfig: config,\n collections: req.payload.config.collections,\n }),\n req,\n select,\n sort: 'id',\n user: req.user,\n where: { id: { in: ids } },\n })\n const enriched = await enrichDocsWithVersionStatus({\n collectionConfig: config,\n data: result,\n req,\n })\n\n for (const doc of enriched.docs as QueryDoc[]) {\n const item = enrichDocument({ collectionSlug, doc, req })\n documents.set(documentKey(item), item)\n }\n }),\n )\n return documents\n}\n\nfunction ownerWhere({ req }: { req: PayloadRequest }): Where {\n return {\n and: [\n { 'user.relationTo': { equals: req.user.collection } },\n { 'user.value': { equals: req.user.id } },\n ],\n }\n}\n\nfunction enrichDocument({\n collectionSlug,\n doc,\n req,\n}: {\n collectionSlug: string\n doc: QueryDoc\n req: PayloadRequest\n}): RecentDocument {\n const { i18n, payload } = req\n const config = payload.collections[collectionSlug].config\n const rawTitle = getValueByPath({ object: doc, path: config.admin?.useAsTitle || 'id' })\n const status = doc._displayStatus || doc._status\n return {\n id: doc.id,\n collectionSlug,\n dateLabel: doc.updatedAt\n ? formatRelativeDate({\n relativeTimeFormat: getRelativeTimeFormat(i18n.language),\n value: doc.updatedAt,\n })\n : undefined,\n dateTime: doc.updatedAt,\n href: formatAdminURL({\n adminRoute: payload.config.routes.admin,\n path: `/collections/${collectionSlug}/${encodeURIComponent(String(doc.id))}`,\n }),\n isChanged: status === 'changed',\n isDraft: status === 'draft',\n statusLabel:\n status === 'draft'\n ? i18n.t('version:draft')\n : status === 'changed'\n ? i18n.t('version:changed')\n : status === 'published'\n ? i18n.t('version:published')\n : undefined,\n thumbnailURL: getDocumentThumbnail({\n doc,\n useAsThumbnail: config.admin?.useAsThumbnail,\n }),\n title: typeof rawTitle === 'string' && rawTitle ? rawTitle : String(doc.id),\n typeLabel: getTranslation(config.labels.plural, i18n),\n updatedAt: doc.updatedAt,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import type { PinnedItem } from './recents.js';
3
+ import './index.css';
4
+ export type RecentDocument = {
5
+ dateLabel?: string;
6
+ dateTime?: string;
7
+ href: string;
8
+ isChanged?: boolean;
9
+ isDraft?: boolean;
10
+ statusLabel?: string;
11
+ thumbnailURL?: string;
12
+ title: string;
13
+ typeLabel: string;
14
+ updatedAt?: string;
15
+ viewedAt?: string;
16
+ } & PinnedItem;
17
+ type Labels = {
18
+ addPin: string;
19
+ loadError: string;
20
+ loading: string;
21
+ next: string;
22
+ pagination: string;
23
+ pinned: string;
24
+ pinnedEmpty: string;
25
+ pinnedEmptyDescription: string;
26
+ pinnedSaveError: string;
27
+ previous: string;
28
+ recents: string;
29
+ recentsEmpty: string;
30
+ recentsEmptyDescription: string;
31
+ removePin: string;
32
+ retry: string;
33
+ title: string;
34
+ };
35
+ export declare function RecentsAndPinnedClient({ excludedCollections, labels, pinsURL, }: {
36
+ excludedCollections?: string[];
37
+ labels: Labels;
38
+ pinsURL: string;
39
+ }): React.JSX.Element;
40
+ export {};
41
+ //# sourceMappingURL=index.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/widgets/RecentlyViewed/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsD,MAAM,OAAO,CAAA;AAG1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAmB9C,OAAO,aAAa,CAAA;AAEpB,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,UAAU,CAAA;AAEd,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,mBAAmB,EACnB,MAAM,EACN,OAAO,GACR,EAAE;IACD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,qBAqYA"}