@payloadcms/ui 4.0.0-internal.8867dba → 4.0.0-internal.9496957

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 (603) hide show
  1. package/dist/css/app.css +121 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/spacing.css +11 -3
  4. package/dist/css/z-index.css +1 -0
  5. package/dist/elements/AddNewRelation/index.css +0 -1
  6. package/dist/elements/AppHeader/index.css +1 -3
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +6 -2
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/ArrayAction/index.d.ts +3 -0
  11. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +83 -29
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.d.ts.map +1 -1
  15. package/dist/elements/Autosave/index.js +2 -3
  16. package/dist/elements/Autosave/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  18. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  19. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  20. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  22. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  23. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  24. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  25. package/dist/elements/BulkUpload/FormsManager/index.js +2 -3
  26. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  27. package/dist/elements/Button/index.css +2 -2
  28. package/dist/elements/Button/index.d.ts.map +1 -1
  29. package/dist/elements/Button/index.js +2 -0
  30. package/dist/elements/Button/index.js.map +1 -1
  31. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  32. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  33. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  34. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  35. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  36. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  37. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  38. package/dist/elements/ClipboardAction/index.js +17 -1
  39. package/dist/elements/ClipboardAction/index.js.map +1 -1
  40. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  41. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  42. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  43. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  44. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  45. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  46. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  47. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  48. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  49. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  50. package/dist/elements/ClipboardAction/types.js.map +1 -1
  51. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  52. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  53. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  54. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  55. package/dist/elements/CodeEditor/index.css +0 -5
  56. package/dist/elements/CommandPalette/index.css +0 -7
  57. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  58. package/dist/elements/CopyLocaleData/index.js +8 -9
  59. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  60. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  61. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  62. package/dist/elements/CopyToClipboard/index.js +10 -8
  63. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  64. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  65. package/dist/elements/CreateDocumentButton/index.js +4 -1
  66. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  67. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  68. package/dist/elements/DatePicker/DatePicker.js +1 -0
  69. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  70. package/dist/elements/DatePicker/index.css +1 -1
  71. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  72. package/dist/elements/DeleteDocument/index.js +16 -1
  73. package/dist/elements/DeleteDocument/index.js.map +1 -1
  74. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  75. package/dist/elements/DeleteMany/index.js +2 -3
  76. package/dist/elements/DeleteMany/index.js.map +1 -1
  77. package/dist/elements/Drawer/index.css +10 -4
  78. package/dist/elements/Dropzone/index.css +10 -4
  79. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  80. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  81. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  82. package/dist/elements/DuplicateDocument/index.js +2 -3
  83. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  84. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  85. package/dist/elements/EditMany/DrawerContent.js +4 -5
  86. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  87. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  88. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  89. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  90. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  91. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  92. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  93. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  94. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  95. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  96. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  97. package/dist/elements/FileManager/index.css +35 -52
  98. package/dist/elements/FileManager/index.d.ts.map +1 -1
  99. package/dist/elements/FileManager/index.js +385 -282
  100. package/dist/elements/FileManager/index.js.map +1 -1
  101. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  102. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  103. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  104. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  105. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  106. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  107. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  108. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  109. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  110. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  111. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  112. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  113. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  114. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  115. package/dist/elements/IDLabel/index.css +6 -0
  116. package/dist/elements/IDLabel/index.d.ts +1 -1
  117. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  118. package/dist/elements/IDLabel/index.js +16 -21
  119. package/dist/elements/IDLabel/index.js.map +1 -1
  120. package/dist/elements/InputStepper/index.css +0 -1
  121. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  122. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  123. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  124. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  125. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  126. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
  127. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  128. package/dist/elements/LivePreview/Window/index.js +1 -1
  129. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  130. package/dist/elements/Localizer/index.js +1 -1
  131. package/dist/elements/Localizer/index.js.map +1 -1
  132. package/dist/elements/Locked/index.css +0 -8
  133. package/dist/elements/Locked/index.d.ts.map +1 -1
  134. package/dist/elements/Locked/index.js +70 -64
  135. package/dist/elements/Locked/index.js.map +1 -1
  136. package/dist/elements/MiniCarousel/index.css +39 -37
  137. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  138. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  139. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  140. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  141. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  142. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  143. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  144. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  145. package/dist/elements/NavGroup/index.css +0 -1
  146. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  147. package/dist/elements/Popup/index.js +1 -1
  148. package/dist/elements/Popup/index.js.map +1 -1
  149. package/dist/elements/PreviewButton/index.d.ts +1 -2
  150. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  151. package/dist/elements/PreviewButton/index.js +11 -5
  152. package/dist/elements/PreviewButton/index.js.map +1 -1
  153. package/dist/elements/PreviewSizes/index.css +8 -9
  154. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  155. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  156. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  157. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  158. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  159. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  160. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  161. package/dist/elements/PublishButton/index.js +5 -6
  162. package/dist/elements/PublishButton/index.js.map +1 -1
  163. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  164. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  165. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  166. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  167. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  168. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  169. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  170. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  171. package/dist/elements/ReactSelect/index.css +0 -3
  172. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  173. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  174. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  175. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  176. package/dist/elements/RelationshipTable/index.css +0 -2
  177. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  178. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  179. package/dist/elements/RelationshipTable/index.js +41 -5
  180. package/dist/elements/RelationshipTable/index.js.map +1 -1
  181. package/dist/elements/RenderTitle/index.css +4 -0
  182. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  183. package/dist/elements/RenderTitle/index.js +18 -13
  184. package/dist/elements/RenderTitle/index.js.map +1 -1
  185. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  186. package/dist/elements/RestoreMany/index.js +2 -3
  187. package/dist/elements/RestoreMany/index.js.map +1 -1
  188. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  189. package/dist/elements/SaveDraftButton/index.js +2 -3
  190. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  191. package/dist/elements/SelectRow/index.d.ts +4 -3
  192. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  193. package/dist/elements/SelectRow/index.js +10 -7
  194. package/dist/elements/SelectRow/index.js.map +1 -1
  195. package/dist/elements/SidebarToggle/index.css +0 -17
  196. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  197. package/dist/elements/SortColumn/index.js +42 -38
  198. package/dist/elements/SortColumn/index.js.map +1 -1
  199. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  200. package/dist/elements/SortHeader/index.js +29 -26
  201. package/dist/elements/SortHeader/index.js.map +1 -1
  202. package/dist/elements/Status/index.d.ts.map +1 -1
  203. package/dist/elements/Status/index.js +2 -3
  204. package/dist/elements/Status/index.js.map +1 -1
  205. package/dist/elements/StepNav/index.css +64 -14
  206. package/dist/elements/StepNav/index.d.ts.map +1 -1
  207. package/dist/elements/StepNav/index.js +143 -69
  208. package/dist/elements/StepNav/index.js.map +1 -1
  209. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  210. package/dist/elements/Table/DefaultCell/index.js +3 -11
  211. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  212. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  213. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  214. package/dist/elements/Table/OrderableRow.js +17 -1
  215. package/dist/elements/Table/OrderableRow.js.map +1 -1
  216. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  217. package/dist/elements/Table/OrderableTable.js +20 -4
  218. package/dist/elements/Table/OrderableTable.js.map +1 -1
  219. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  220. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  221. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  222. package/dist/elements/Table/index.css +1 -0
  223. package/dist/elements/TableSection/index.css +0 -1
  224. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  225. package/dist/elements/TimezonePicker/index.js +5 -1
  226. package/dist/elements/TimezonePicker/index.js.map +1 -1
  227. package/dist/elements/Tooltip/index.css +15 -34
  228. package/dist/elements/Tooltip/index.d.ts +11 -3
  229. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  230. package/dist/elements/Tooltip/index.js +151 -85
  231. package/dist/elements/Tooltip/index.js.map +1 -1
  232. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  233. package/dist/elements/UnpublishButton/index.js +3 -4
  234. package/dist/elements/UnpublishButton/index.js.map +1 -1
  235. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  236. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  237. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  238. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  239. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  240. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  241. package/dist/elements/Upload/index.css +39 -37
  242. package/dist/elements/Upload/index.d.ts.map +1 -1
  243. package/dist/elements/Upload/index.js +37 -99
  244. package/dist/elements/Upload/index.js.map +1 -1
  245. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  246. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  247. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  248. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  249. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  250. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  251. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  252. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  253. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  254. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  255. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  256. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  257. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  258. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  259. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  260. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  261. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  262. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  263. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  264. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  265. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  266. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  267. package/dist/elements/WhereBuilder/index.js +15 -4
  268. package/dist/elements/WhereBuilder/index.js.map +1 -1
  269. package/dist/exports/client/index.d.ts +5 -1
  270. package/dist/exports/client/index.d.ts.map +1 -1
  271. package/dist/exports/client/index.js +1 -1
  272. package/dist/exports/client/index.js.map +3 -3
  273. package/dist/exports/shared/index.d.ts +1 -0
  274. package/dist/exports/shared/index.d.ts.map +1 -1
  275. package/dist/exports/shared/index.js +2 -2
  276. package/dist/exports/shared/index.js.map +4 -4
  277. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  278. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  279. package/dist/fields/Array/ArrayRow.js +99 -160
  280. package/dist/fields/Array/ArrayRow.js.map +1 -1
  281. package/dist/fields/Array/index.d.ts.map +1 -1
  282. package/dist/fields/Array/index.js +40 -13
  283. package/dist/fields/Array/index.js.map +1 -1
  284. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  285. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  286. package/dist/fields/Blocks/BlockRow.js +136 -195
  287. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  288. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  289. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  290. package/dist/fields/Blocks/RowActions.js +26 -20
  291. package/dist/fields/Blocks/RowActions.js.map +1 -1
  292. package/dist/fields/Blocks/index.d.ts.map +1 -1
  293. package/dist/fields/Blocks/index.js +40 -13
  294. package/dist/fields/Blocks/index.js.map +1 -1
  295. package/dist/fields/Checkbox/Input.d.ts +2 -0
  296. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  297. package/dist/fields/Checkbox/Input.js +32 -26
  298. package/dist/fields/Checkbox/Input.js.map +1 -1
  299. package/dist/fields/Checkbox/index.css +37 -73
  300. package/dist/fields/FieldError/index.css +0 -9
  301. package/dist/fields/FieldError/index.d.ts.map +1 -1
  302. package/dist/fields/FieldError/index.js +19 -9
  303. package/dist/fields/FieldError/index.js.map +1 -1
  304. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  305. package/dist/fields/FieldLabel/index.js +4 -5
  306. package/dist/fields/FieldLabel/index.js.map +1 -1
  307. package/dist/fields/Join/index.css +9 -0
  308. package/dist/fields/Join/index.d.ts.map +1 -1
  309. package/dist/fields/Join/index.js +13 -9
  310. package/dist/fields/Join/index.js.map +1 -1
  311. package/dist/fields/RadioGroup/index.css +0 -7
  312. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  313. package/dist/fields/Relationship/Input.js +34 -17
  314. package/dist/fields/Relationship/Input.js.map +1 -1
  315. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  316. package/dist/fields/Slug/index.css +0 -1
  317. package/dist/fields/Slug/index.d.ts.map +1 -1
  318. package/dist/fields/Slug/index.js +74 -111
  319. package/dist/fields/Slug/index.js.map +1 -1
  320. package/dist/fields/Upload/Input.d.ts.map +1 -1
  321. package/dist/fields/Upload/Input.js +46 -19
  322. package/dist/fields/Upload/Input.js.map +1 -1
  323. package/dist/fields/Upload/Input.spec.js +242 -0
  324. package/dist/fields/Upload/Input.spec.js.map +1 -0
  325. package/dist/fields/Upload/index.css +19 -4
  326. package/dist/fields/shared/index.d.ts +1 -1
  327. package/dist/fields/shared/index.d.ts.map +1 -1
  328. package/dist/fields/shared/index.js.map +1 -1
  329. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  330. package/dist/forms/Form/fieldReducer.js +3 -1
  331. package/dist/forms/Form/fieldReducer.js.map +1 -1
  332. package/dist/forms/Form/index.d.ts.map +1 -1
  333. package/dist/forms/Form/index.js +11 -4
  334. package/dist/forms/Form/index.js.map +1 -1
  335. package/dist/forms/Form/types.d.ts +1 -1
  336. package/dist/forms/Form/types.d.ts.map +1 -1
  337. package/dist/forms/Form/types.js.map +1 -1
  338. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  339. package/dist/forms/NullifyField/index.js +2 -3
  340. package/dist/forms/NullifyField/index.js.map +1 -1
  341. package/dist/forms/RenderFields/index.css +16 -2
  342. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  343. package/dist/forms/WatchChildErrors/index.js +2 -2
  344. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  345. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  346. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -1
  347. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  348. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  349. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  350. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  351. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  352. package/dist/hooks/usePayloadAPI.js +2 -3
  353. package/dist/hooks/usePayloadAPI.js.map +1 -1
  354. package/dist/icons/Edit/index.d.ts +0 -1
  355. package/dist/icons/Edit/index.d.ts.map +1 -1
  356. package/dist/icons/Edit/index.js +4 -4
  357. package/dist/icons/Edit/index.js.map +1 -1
  358. package/dist/layouts/Root/index.d.ts +1 -1
  359. package/dist/layouts/Root/index.d.ts.map +1 -1
  360. package/dist/layouts/Root/index.js +12 -4
  361. package/dist/layouts/Root/index.js.map +1 -1
  362. package/dist/providers/Actions/index.d.ts +1 -0
  363. package/dist/providers/Actions/index.d.ts.map +1 -1
  364. package/dist/providers/Actions/index.js +43 -11
  365. package/dist/providers/Actions/index.js.map +1 -1
  366. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  367. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  368. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  369. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  370. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  371. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  372. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  373. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  374. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  375. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  376. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  377. package/dist/providers/Auth/authSessionRequests.js +119 -0
  378. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  379. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  380. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  381. package/dist/providers/Auth/index.d.ts +2 -56
  382. package/dist/providers/Auth/index.d.ts.map +1 -1
  383. package/dist/providers/Auth/index.js +283 -135
  384. package/dist/providers/Auth/index.js.map +1 -1
  385. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  386. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  387. package/dist/providers/Auth/sessionActivity.js +49 -0
  388. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  389. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  390. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  391. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  392. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  393. package/dist/providers/Auth/sessionTiming.js +18 -0
  394. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  395. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  396. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  397. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  398. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  399. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  400. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  401. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  402. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  403. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  404. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  405. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  406. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  407. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  408. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  409. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  410. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  411. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  412. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  413. package/dist/providers/Auth/types.d.ts +65 -0
  414. package/dist/providers/Auth/types.d.ts.map +1 -0
  415. package/dist/providers/Auth/types.js +2 -0
  416. package/dist/providers/Auth/types.js.map +1 -0
  417. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  418. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  419. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  420. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  421. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  422. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  423. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  424. package/dist/providers/DocumentInfo/index.js +2 -3
  425. package/dist/providers/DocumentInfo/index.js.map +1 -1
  426. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  427. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  428. package/dist/providers/DocumentTitle/index.js +2 -0
  429. package/dist/providers/DocumentTitle/index.js.map +1 -1
  430. package/dist/providers/Embed/index.d.ts +24 -0
  431. package/dist/providers/Embed/index.d.ts.map +1 -0
  432. package/dist/providers/Embed/index.js +105 -0
  433. package/dist/providers/Embed/index.js.map +1 -0
  434. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  435. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  436. package/dist/providers/FormErrorHandler/index.js +6 -0
  437. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  438. package/dist/providers/Locale/index.d.ts +1 -5
  439. package/dist/providers/Locale/index.d.ts.map +1 -1
  440. package/dist/providers/Locale/index.js +64 -137
  441. package/dist/providers/Locale/index.js.map +1 -1
  442. package/dist/providers/Root/index.d.ts +1 -0
  443. package/dist/providers/Root/index.d.ts.map +1 -1
  444. package/dist/providers/Root/index.js +37 -31
  445. package/dist/providers/Root/index.js.map +1 -1
  446. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  447. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  448. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  449. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  450. package/dist/providers/RouteTransition/index.d.ts +2 -0
  451. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  452. package/dist/providers/RouteTransition/index.js +42 -14
  453. package/dist/providers/RouteTransition/index.js.map +1 -1
  454. package/dist/providers/Selection/index.d.ts.map +1 -1
  455. package/dist/providers/Selection/index.js +2 -3
  456. package/dist/providers/Selection/index.js.map +1 -1
  457. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  458. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  459. package/dist/providers/ServerFunctions/index.js +15 -0
  460. package/dist/providers/ServerFunctions/index.js.map +1 -1
  461. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  462. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  463. package/dist/providers/SidebarTabs/index.js.map +1 -1
  464. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  465. package/dist/providers/TableColumns/buildColumnState/index.js +1 -1
  466. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  467. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  468. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  469. package/dist/providers/Theme/index.d.ts +5 -2
  470. package/dist/providers/Theme/index.d.ts.map +1 -1
  471. package/dist/providers/Theme/index.js +109 -96
  472. package/dist/providers/Theme/index.js.map +1 -1
  473. package/dist/providers/Theme/shared.d.ts +3 -0
  474. package/dist/providers/Theme/shared.d.ts.map +1 -0
  475. package/dist/providers/Theme/shared.js +2 -0
  476. package/dist/providers/Theme/shared.js.map +1 -0
  477. package/dist/styles.css +13 -10
  478. package/dist/templates/Default/index.d.ts +1 -0
  479. package/dist/templates/Default/index.d.ts.map +1 -1
  480. package/dist/templates/Default/index.js +2 -0
  481. package/dist/templates/Default/index.js.map +1 -1
  482. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  483. package/dist/utilities/combineFieldLabel.js +5 -1
  484. package/dist/utilities/combineFieldLabel.js.map +1 -1
  485. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  486. package/dist/utilities/formatMetadata.js +0 -5
  487. package/dist/utilities/formatMetadata.js.map +1 -1
  488. package/dist/utilities/generateFieldID.d.ts +1 -1
  489. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  490. package/dist/utilities/generateFieldID.js +2 -2
  491. package/dist/utilities/generateFieldID.js.map +1 -1
  492. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  493. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  494. package/dist/utilities/getFilesFromClipboard.js +49 -0
  495. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  496. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  497. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  498. package/dist/utilities/getHasScheduledPublish.js +2 -5
  499. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  500. package/dist/utilities/getLanguageDir.d.ts +12 -0
  501. package/dist/utilities/getLanguageDir.d.ts.map +1 -0
  502. package/dist/utilities/getLanguageDir.js +12 -0
  503. package/dist/utilities/getLanguageDir.js.map +1 -0
  504. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  505. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  506. package/dist/utilities/getRequestEmbed.js +10 -0
  507. package/dist/utilities/getRequestEmbed.js.map +1 -0
  508. package/dist/utilities/getRequestTheme.d.ts +1 -1
  509. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  510. package/dist/utilities/getRequestTheme.js +1 -1
  511. package/dist/utilities/getRequestTheme.js.map +1 -1
  512. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  513. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  514. package/dist/utilities/handleServerFunctions.js +17 -37
  515. package/dist/utilities/handleServerFunctions.js.map +1 -1
  516. package/dist/utilities/renderTable.d.ts.map +1 -1
  517. package/dist/utilities/renderTable.js +18 -2
  518. package/dist/utilities/renderTable.js.map +1 -1
  519. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  520. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  521. package/dist/utilities/schedulePublishHandler.js +68 -4
  522. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  523. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  524. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  525. package/dist/utilities/serverFunctionRegistry.js +27 -8
  526. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  527. package/dist/utilities/slugify.d.ts.map +1 -1
  528. package/dist/utilities/slugify.js +52 -6
  529. package/dist/utilities/slugify.js.map +1 -1
  530. package/dist/views/API/index.client.d.ts.map +1 -1
  531. package/dist/views/API/index.client.js +2 -3
  532. package/dist/views/API/index.client.js.map +1 -1
  533. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  534. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  535. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  536. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  537. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  538. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  539. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  540. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  541. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  542. package/dist/views/Dashboard/Default/ModularDashboard/index.css +29 -144
  543. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  544. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  545. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  546. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  547. package/dist/views/Document/index.d.ts.map +1 -1
  548. package/dist/views/Document/index.js +1 -2
  549. package/dist/views/Document/index.js.map +1 -1
  550. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  551. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  552. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  553. package/dist/views/Edit/index.css +61 -53
  554. package/dist/views/Edit/index.d.ts.map +1 -1
  555. package/dist/views/Edit/index.js +3 -2
  556. package/dist/views/Edit/index.js.map +1 -1
  557. package/dist/views/HierarchyList/index.css +1 -1
  558. package/dist/views/List/ListHeader/index.d.ts +1 -10
  559. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  560. package/dist/views/List/ListHeader/index.js +1 -3
  561. package/dist/views/List/ListHeader/index.js.map +1 -1
  562. package/dist/views/List/index.client.d.ts.map +1 -1
  563. package/dist/views/List/index.client.js +0 -14
  564. package/dist/views/List/index.client.js.map +1 -1
  565. package/dist/views/List/index.css +6 -1
  566. package/dist/views/List/index.d.ts.map +1 -1
  567. package/dist/views/List/index.js +4 -0
  568. package/dist/views/List/index.js.map +1 -1
  569. package/dist/views/Logout/index.d.ts.map +1 -1
  570. package/dist/views/Logout/index.js +11 -0
  571. package/dist/views/Logout/index.js.map +1 -1
  572. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  573. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  574. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  575. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  576. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  577. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  578. package/dist/views/Root/index.d.ts +12 -1
  579. package/dist/views/Root/index.d.ts.map +1 -1
  580. package/dist/views/Root/index.js +11 -3
  581. package/dist/views/Root/index.js.map +1 -1
  582. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  583. package/dist/views/Version/Default/SetStepNav.js +10 -13
  584. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  585. package/dist/views/Version/Default/index.d.ts.map +1 -1
  586. package/dist/views/Version/Default/index.js +12 -13
  587. package/dist/views/Version/Default/index.js.map +1 -1
  588. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  589. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  590. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  591. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  592. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  593. package/package.json +7 -11
  594. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  595. package/dist/scss/app.scss +0 -183
  596. package/dist/scss/colors.scss +0 -191
  597. package/dist/scss/custom.css +0 -1
  598. package/dist/scss/queries.scss +0 -27
  599. package/dist/scss/styles.scss +0 -9
  600. package/dist/scss/svg.scss +0 -10
  601. package/dist/scss/toastify.scss +0 -61
  602. package/dist/scss/vars.scss +0 -192
  603. package/dist/scss/z-index.scss +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"handleServerFunctions.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","initReq","schedulePublishHandler","slugifyHandler","switchLanguageHandler","baseServerFunctions","slugify","createServerFunctionHandler","serverAdapter","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","cookies","locale","permissions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type {\n DefaultServerFunctionArgs,\n ServerAdapter,\n ServerFunction,\n ServerFunctionHandler,\n} from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport { initReq } from './initReq.js'\nimport { schedulePublishHandler } from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\nconst baseServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n\n/**\n * Factory for the framework-agnostic `handleServerFunctions` entry point. The\n * caller (a framework adapter, e.g. `@payloadcms/next`) supplies the\n * `ServerAdapter` once, and the returned handler can be wired directly into\n * the framework's server-action dispatcher.\n */\nexport const createServerFunctionHandler = ({\n serverAdapter,\n}: {\n serverAdapter: ServerAdapter\n}): ServerFunctionHandler => {\n return async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { cookies, locale, permissions, req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n serverAdapter,\n })\n\n const augmentedArgs: DefaultServerFunctionArgs = {\n ...fnArgs,\n cookies,\n importMap,\n locale,\n permissions,\n req,\n }\n\n const fn = extraServerFunctions?.[fnKey] || baseServerFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n }\n}\n"],"mappings":"AAOA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,OAAO,QAAQ;AACxB,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC,MAAMC,mBAAA,GAAgE;EACpE,yBAAyBL,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,mBAAmBE,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBQ,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeL;AACjB;AAEA;;;;;;AAMA,OAAO,MAAMQ,2BAAA,GAA8BA,CAAC;EAC1CC;AAAa,CAGd;EACC,OAAO,MAAOC,IAAA;IACZ,MAAM;MACJC,IAAA,EAAMC,KAAK;MACXF,IAAA,EAAMG,MAAM;MACZC,MAAA,EAAQC,aAAa;MACrBC,SAAS;MACTC,eAAA,EAAiBC;IAAoB,CACtC,GAAGR,IAAA;IAEJ,MAAM;MAAES,OAAO;MAAEC,MAAM;MAAEC,WAAW;MAAEC;IAAG,CAAE,GAAG,MAAMpB,OAAA,CAAQ;MAC1Da,aAAA;MACAC,SAAA;MACAO,GAAA,EAAK;MACLd;IACF;IAEA,MAAMe,aAAA,GAA2C;MAC/C,GAAGX,MAAM;MACTM,OAAA;MACAH,SAAA;MACAI,MAAA;MACAC,WAAA;MACAC;IACF;IAEA,MAAMG,EAAA,GAAKP,oBAAA,GAAuBN,KAAA,CAAM,IAAIN,mBAAmB,CAACM,KAAA,CAAM;IAEtE,IAAI,CAACa,EAAA,EAAI;MACP,MAAM,IAAIC,KAAA,CAAM,4BAA4Bd,KAAA,EAAO;IACrD;IAEA,OAAOa,EAAA,CAAGD,aAAA;EACZ;AACF","ignoreList":[]}
1
+ {"version":3,"file":"handleServerFunctions.js","names":["sharedServerFunctions","createServerFunctionHandler","initReq","serverFunctions","transformResult","baseServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","extraServerFunctions","cookies","locale","permissions","req","augmentedArgs","fn","Error","result"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type {\n DefaultServerFunctionArgs,\n ImportMap,\n InitReqResult,\n SanitizedConfig,\n ServerFunction,\n ServerFunctionHandler,\n} from 'payload'\n\nimport { sharedServerFunctions } from './serverFunctionRegistry.js'\n\ntype InitReq = (args: {\n configPromise: Promise<SanitizedConfig> | SanitizedConfig\n importMap: ImportMap\n}) => Promise<InitReqResult>\n\ntype CreateServerFunctionHandlerArgs = {\n /**\n * Framework-specific request initialization. The adapter closes over its own\n * `ServerAdapter` / request source (Next.js: `initReq` + `nextServerAdapter`;\n * TanStack Start: its `getRequest()`-based `initReq`).\n */\n initReq: InitReq\n /**\n * Additional handlers registered alongside `sharedServerFunctions`. Reserved\n * for adapter-specific functions; today both adapters run the shared set only.\n */\n serverFunctions?: Record<string, ServerFunction<any, any>>\n /**\n * Post-processes each handler's return value before it goes over the wire.\n * The TanStack Start adapter passes `serializeForRsc` to convert React\n * elements into RSC handles; Next.js ships them natively and omits this.\n */\n transformResult?: (result: unknown) => Promise<unknown> | unknown\n}\n\n/**\n * Factory for the framework-agnostic `handleServerFunctions` entry point.\n *\n * All adapters dispatch from the shared registry (`sharedServerFunctions`) and\n * differ only in the two injected hooks below — `initReq` and `transformResult`\n * — so there is a single dispatch implementation and the handler sets cannot\n * drift between frameworks.\n */\nexport const createServerFunctionHandler = ({\n initReq,\n serverFunctions,\n transformResult,\n}: CreateServerFunctionHandlerArgs): ServerFunctionHandler => {\n const baseServerFunctions: Record<string, ServerFunction<any, any>> = serverFunctions\n ? { ...sharedServerFunctions, ...serverFunctions }\n : sharedServerFunctions\n\n return async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { cookies, locale, permissions, req } = await initReq({ configPromise, importMap })\n\n const augmentedArgs: DefaultServerFunctionArgs = {\n ...fnArgs,\n cookies,\n importMap,\n locale,\n permissions,\n req,\n }\n\n const fn = extraServerFunctions?.[fnKey] || baseServerFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n const result = await fn(augmentedArgs)\n\n return transformResult ? await transformResult(result) : result\n }\n}\n"],"mappings":"AASA,SAASA,qBAAqB,QAAQ;AA2BtC;;;;;;;;AAQA,OAAO,MAAMC,2BAAA,GAA8BA,CAAC;EAC1CC,OAAO;EACPC,eAAe;EACfC;AAAe,CACiB;EAChC,MAAMC,mBAAA,GAAgEF,eAAA,GAClE;IAAE,GAAGH,qBAAqB;IAAE,GAAGG;EAAgB,IAC/CH,qBAAA;EAEJ,OAAO,MAAOM,IAAA;IACZ,MAAM;MACJC,IAAA,EAAMC,KAAK;MACXF,IAAA,EAAMG,MAAM;MACZC,MAAA,EAAQC,aAAa;MACrBC,SAAS;MACTT,eAAA,EAAiBU;IAAoB,CACtC,GAAGP,IAAA;IAEJ,MAAM;MAAEQ,OAAO;MAAEC,MAAM;MAAEC,WAAW;MAAEC;IAAG,CAAE,GAAG,MAAMf,OAAA,CAAQ;MAAES,aAAA;MAAeC;IAAU;IAEvF,MAAMM,aAAA,GAA2C;MAC/C,GAAGT,MAAM;MACTK,OAAA;MACAF,SAAA;MACAG,MAAA;MACAC,WAAA;MACAC;IACF;IAEA,MAAME,EAAA,GAAKN,oBAAA,GAAuBL,KAAA,CAAM,IAAIH,mBAAmB,CAACG,KAAA,CAAM;IAEtE,IAAI,CAACW,EAAA,EAAI;MACP,MAAM,IAAIC,KAAA,CAAM,4BAA4BZ,KAAA,EAAO;IACrD;IAEA,MAAMa,MAAA,GAAS,MAAMF,EAAA,CAAGD,aAAA;IAExB,OAAOd,eAAA,GAAkB,MAAMA,eAAA,CAAgBiB,MAAA,IAAUA,MAAA;EAC3D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,EACP,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AA0BzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,qTAwBrB;IACD,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CAyNvB,CAAA"}
1
+ {"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,EACP,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AA0BzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,qTAwBrB;IACD,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CA6NvB,CAAA"}
@@ -138,8 +138,13 @@ export const renderTable = ({
138
138
  hidden: true
139
139
  },
140
140
  Heading: /*#__PURE__*/_jsx(SelectAll, {}),
141
- renderedCells: (data?.docs || []).map((_, i) => /*#__PURE__*/_jsx(SelectRow, {
142
- rowData: data?.docs[i]
141
+ renderedCells: (data?.docs || []).map((row, i) => /*#__PURE__*/_jsx(SelectRow, {
142
+ rowData: row,
143
+ selectRowLabel: getSelectRowLabel({
144
+ i18n,
145
+ rowData: row,
146
+ useAsTitle
147
+ })
143
148
  }, i))
144
149
  });
145
150
  }
@@ -224,4 +229,15 @@ export const renderTable = ({
224
229
  }, key)
225
230
  };
226
231
  };
232
+ const getSelectRowLabel = ({
233
+ i18n,
234
+ rowData,
235
+ useAsTitle
236
+ }) => {
237
+ const title = useAsTitle ? rowData[useAsTitle] : undefined;
238
+ const label = typeof title === 'number' || typeof title === 'string' && title ? String(title) : String(rowData.id);
239
+ return i18n.t('general:selectLabel', {
240
+ label
241
+ });
242
+ };
227
243
  //# sourceMappingURL=renderTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","TableSectionContent","TableSectionHeader","TableSectionRoot","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFieldsWithPermissions","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","customCellProps","data","enableRowSelections","fieldPermissions","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","req","showHeading","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","className","filter","join","_jsxs","totalDocs","appearance","splice"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n TableSectionContent,\n TableSectionHeader,\n TableSectionRoot,\n} from '../elements/TableSection/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFieldsWithPermissions } from '../providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns,\n customCellProps,\n data,\n enableRowSelections,\n fieldPermissions,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n req,\n showHeading,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns: ColumnPreference[]\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n req?: PayloadRequest\n /** Show heading without requiring full groupBy context */\n showHeading?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disabled.column`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFieldsWithPermissions({\n fieldPermissions,\n fields: clientCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n\n for (const field of filterFieldsWithPermissions<Field>({\n fieldPermissions,\n fields: serverCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'fieldPermissions'\n | 'i18n'\n | 'payload'\n | 'req'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n fieldPermissions,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n req,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((_, i) => (\n <SelectRow key={i} rowData={data?.docs[i]} />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <TableSectionRoot\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n data-group-id={groupByValue}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <TableSectionHeader heading={heading}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <GroupByPageControls data={data} groupByValue={groupByValue} />\n </TableSectionHeader>\n <TableSectionContent>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </TableSectionContent>\n </SelectionProvider>\n </TableSectionRoot>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <TableSectionRoot className=\"table-wrap\" key={key}>\n {showHeading && heading && (\n <TableSectionHeader>\n <h4>{heading}</h4>\n </TableSectionHeader>\n )}\n <TableSectionContent>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </TableSectionContent>\n </TableSectionRoot>\n ),\n }\n }\n\n // Insert after _select column (index 1) so order is: _select, _dragHandle, ...rest\n columnsToUse.splice(enableRowSelections ? 1 : 0, 0, {\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <TableSectionRoot className=\"table-wrap\" key={key}>\n <TableSectionContent>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </TableSectionContent>\n </TableSectionRoot>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","TableSectionContent","TableSectionHeader","TableSectionRoot","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFieldsWithPermissions","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","customCellProps","data","enableRowSelections","fieldPermissions","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","req","showHeading","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","row","rowData","selectRowLabel","getSelectRowLabel","className","filter","join","_jsxs","totalDocs","appearance","splice","_","title","label","String","id"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedFieldsPermissions,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n TableSectionContent,\n TableSectionHeader,\n TableSectionRoot,\n} from '../elements/TableSection/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFieldsWithPermissions } from '../providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns,\n customCellProps,\n data,\n enableRowSelections,\n fieldPermissions,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n req,\n showHeading,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns: ColumnPreference[]\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n fieldPermissions?: SanitizedFieldsPermissions\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n req?: PayloadRequest\n /** Show heading without requiring full groupBy context */\n showHeading?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disabled.column`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFieldsWithPermissions({\n fieldPermissions,\n fields: clientCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n\n for (const field of filterFieldsWithPermissions<Field>({\n fieldPermissions,\n fields: serverCollectionConfig.fields,\n })) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'fieldPermissions'\n | 'i18n'\n | 'payload'\n | 'req'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n fieldPermissions,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n req,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((row, i) => (\n <SelectRow\n key={i}\n rowData={row}\n selectRowLabel={getSelectRowLabel({ i18n, rowData: row, useAsTitle })}\n />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <TableSectionRoot\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n data-group-id={groupByValue}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <TableSectionHeader heading={heading}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <GroupByPageControls data={data} groupByValue={groupByValue} />\n </TableSectionHeader>\n <TableSectionContent>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </TableSectionContent>\n </SelectionProvider>\n </TableSectionRoot>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <TableSectionRoot className=\"table-wrap\" key={key}>\n {showHeading && heading && (\n <TableSectionHeader>\n <h4>{heading}</h4>\n </TableSectionHeader>\n )}\n <TableSectionContent>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </TableSectionContent>\n </TableSectionRoot>\n ),\n }\n }\n\n // Insert after _select column (index 1) so order is: _select, _dragHandle, ...rest\n columnsToUse.splice(enableRowSelections ? 1 : 0, 0, {\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <TableSectionRoot className=\"table-wrap\" key={key}>\n <TableSectionContent>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </TableSectionContent>\n </TableSectionRoot>\n ),\n }\n}\n\nconst getSelectRowLabel = ({\n i18n,\n rowData,\n useAsTitle,\n}: {\n i18n: I18nClient\n rowData: { id: number | string } & Record<string, unknown>\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}) => {\n const title = useAsTitle ? rowData[useAsTitle] : undefined\n const label =\n typeof title === 'number' || (typeof title === 'string' && title)\n ? String(title)\n : String(rowData.id)\n\n return i18n.t('general:selectLabel', { label })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { type SchedulePublishTaskInput, type ServerFunction } from 'payload';
1
+ import type { SchedulePublishTaskInput, ServerFunction } from 'payload';
2
+ import type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js';
2
3
  export type SchedulePublishHandlerArgs = {
3
4
  date?: Date;
4
5
  /**
@@ -8,5 +9,11 @@ export type SchedulePublishHandlerArgs = {
8
9
  localeToPublish?: string;
9
10
  timezone?: string;
10
11
  } & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>;
12
+ export type GetUpcomingScheduledPublishHandlerArgs = {
13
+ collectionSlug?: string;
14
+ globalSlug?: string;
15
+ id?: number | string;
16
+ };
17
+ export declare const getUpcomingScheduledPublishHandler: ServerFunction<GetUpcomingScheduledPublishHandlerArgs, Promise<UpcomingEvent[]>>;
11
18
  export declare const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs>;
12
19
  //# sourceMappingURL=schedulePublishHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5F,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CAuD7E,CAAA"}
1
+ {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAKtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,MAAM,MAAM,sCAAsC,GAAG;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAC7D,sCAAsC,EACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAiDzB,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CAyD7E,CAAA"}
@@ -1,4 +1,62 @@
1
- import { canAccessAdmin } from 'payload';
1
+ import { canAccessAdmin, Forbidden } from 'payload';
2
+ import { hasScheduledPublishEnabled } from 'payload/shared';
3
+ import { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js';
4
+ import { getDocumentPermissions } from './getDocumentPermissions.js';
5
+ export const getUpcomingScheduledPublishHandler = async ({
6
+ id,
7
+ collectionSlug,
8
+ globalSlug,
9
+ req
10
+ }) => {
11
+ const {
12
+ payload
13
+ } = req;
14
+ await canAccessAdmin({
15
+ req
16
+ });
17
+ const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined;
18
+ const globalConfig = globalSlug ? payload.config.globals.find(({
19
+ slug
20
+ }) => slug === globalSlug) : undefined;
21
+ const entityConfig = collectionConfig || globalConfig;
22
+ const hasValidTarget = Boolean(entityConfig && hasScheduledPublishEnabled(entityConfig) && (collectionConfig && id !== undefined && !globalSlug || globalConfig && !collectionSlug));
23
+ if (!hasValidTarget) {
24
+ throw new Forbidden(req.t);
25
+ }
26
+ const {
27
+ hasPublishPermission
28
+ } = await getDocumentPermissions({
29
+ id,
30
+ collectionConfig,
31
+ data: {},
32
+ globalConfig,
33
+ req
34
+ });
35
+ if (!hasPublishPermission) {
36
+ throw new Forbidden(req.t);
37
+ }
38
+ const {
39
+ docs
40
+ } = await payload.db.find({
41
+ collection: 'payload-jobs',
42
+ limit: 0,
43
+ sort: 'waitUntil',
44
+ where: buildUpcomingScheduleWhere({
45
+ id,
46
+ collectionSlug,
47
+ globalSlug
48
+ })
49
+ });
50
+ return docs.map(job => ({
51
+ id: job.id,
52
+ input: {
53
+ type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',
54
+ locale: job.input?.locale,
55
+ timezone: job.input?.timezone
56
+ },
57
+ waitUntil: job.waitUntil
58
+ }));
59
+ };
2
60
  export const schedulePublishHandler = async ({
3
61
  type,
4
62
  date,
@@ -23,9 +81,15 @@ export const schedulePublishHandler = async ({
23
81
  collection: 'payload-jobs',
24
82
  req,
25
83
  where: {
26
- id: {
27
- equals: deleteID
28
- }
84
+ and: [{
85
+ id: {
86
+ equals: deleteID
87
+ }
88
+ }, {
89
+ taskSlug: {
90
+ equals: 'schedulePublish'
91
+ }
92
+ }]
29
93
  }
30
94
  });
31
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","schedulePublishHandler","type","date","deleteID","doc","global","localeToPublish","req","timezone","i18n","payload","user","delete","collection","where","id","equals","jobs","queue","input","locale","task","waitUntil","err","error","value","relationTo","logger","message","t"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import { canAccessAdmin, type SchedulePublishTaskInput, type ServerFunction } from 'payload'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: { id: { equals: deleteID } },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAA4D;AAYnF,OAAO,MAAMC,sBAAA,GAAqE,MAAAA,CAAO;EACvFC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,GAAG;EACHC,MAAM;EACNC,eAAe;EACfC,GAAG;EACHC;AAAQ,CACT;EACC,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAI,CAAE,GAAGJ,GAAA;EAEhC,MAAMR,cAAA,CAAe;IAAEQ;EAAI;EAE3B,IAAI;IACF,IAAIJ,QAAA,EAAU;MACZ,MAAMO,OAAA,CAAQE,MAAM,CAAC;QACnBC,UAAA,EAAY;QACZN,GAAA;QACAO,KAAA,EAAO;UAAEC,EAAA,EAAI;YAAEC,MAAA,EAAQb;UAAS;QAAE;MACpC;IACF;IAEA,MAAMO,OAAA,CAAQO,IAAI,CAACC,KAAK,CAAC;MACvBC,KAAA,EAAO;QACLlB,IAAA;QACAG,GAAA;QACAC,MAAA;QACAe,MAAA,EAAQd,eAAA;QACRE,QAAA;QACAG,IAAA,EAAMA,IAAA,CAAKI;MACb;MACAM,IAAA,EAAM;MACNC,SAAA,EAAWpB;IACb;EACF,EAAE,OAAOqB,GAAA,EAAK;IACZ,IAAIC,KAAA;IAEJ,IAAIrB,QAAA,EAAU;MACZqB,KAAA,GAAQ,kDAAkDrB,QAAA,EAAU;IACtE,OAAO;MACLqB,KAAA,GAAQ,oBAAoBvB,IAAA,OAAW;MACvC,IAAIG,GAAA,EAAK;QACPoB,KAAA,IAAS,oBAAoBpB,GAAA,CAAIqB,KAAK,kBAAkBrB,GAAA,CAAIsB,UAAU,EAAE;MAC1E;IACF;IAEAhB,OAAA,CAAQiB,MAAM,CAACH,KAAK,CAAC;MAAED;IAAI,GAAGC,KAAA;IAE9B,OAAO;MACLA;IACF;EACF;EAEA,OAAO;IAAEI,OAAA,EAASnB,IAAA,CAAKoB,CAAC,CAAC;EAAmB;AAC9C","ignoreList":[]}
1
+ {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","Forbidden","hasScheduledPublishEnabled","buildUpcomingScheduleWhere","getDocumentPermissions","getUpcomingScheduledPublishHandler","id","collectionSlug","globalSlug","req","payload","collectionConfig","collections","config","undefined","globalConfig","globals","find","slug","entityConfig","hasValidTarget","Boolean","t","hasPublishPermission","data","docs","db","collection","limit","sort","where","map","job","input","type","locale","timezone","waitUntil","schedulePublishHandler","date","deleteID","doc","global","localeToPublish","i18n","user","delete","and","equals","taskSlug","jobs","queue","task","err","error","value","relationTo","logger","message"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import type { SchedulePublishTaskInput, ServerFunction } from 'payload'\n\nimport { canAccessAdmin, Forbidden } from 'payload'\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport type GetUpcomingScheduledPublishHandlerArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}\n\nexport const getUpcomingScheduledPublishHandler: ServerFunction<\n GetUpcomingScheduledPublishHandlerArgs,\n Promise<UpcomingEvent[]>\n> = async ({ id, collectionSlug, globalSlug, req }) => {\n const { payload } = req\n\n await canAccessAdmin({ req })\n\n const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined\n const globalConfig = globalSlug\n ? payload.config.globals.find(({ slug }) => slug === globalSlug)\n : undefined\n const entityConfig = collectionConfig || globalConfig\n const hasValidTarget = Boolean(\n entityConfig &&\n hasScheduledPublishEnabled(entityConfig) &&\n ((collectionConfig && id !== undefined && !globalSlug) || (globalConfig && !collectionSlug)),\n )\n\n if (!hasValidTarget) {\n throw new Forbidden(req.t)\n }\n\n const { hasPublishPermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n globalConfig,\n req,\n })\n\n if (!hasPublishPermission) {\n throw new Forbidden(req.t)\n }\n\n const { docs } = await payload.db.find<UpcomingEvent>({\n collection: 'payload-jobs',\n limit: 0,\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return docs.map((job) => ({\n id: job.id,\n input: {\n type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',\n locale: job.input?.locale,\n timezone: job.input?.timezone,\n },\n waitUntil: job.waitUntil,\n }))\n}\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: {\n and: [{ id: { equals: deleteID } }, { taskSlug: { equals: 'schedulePublish' } }],\n },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,18 @@
1
1
  import type { ServerFunction } from 'payload';
2
2
  /**
3
- * Framework-agnostic server function handlers shared across all adapters.
3
+ * The complete, framework-agnostic set of Payload server functions.
4
4
  *
5
- * Each handler returns a value that may contain React elements (e.g.
6
- * `customComponents` inside form state, the `Document` / `List` nodes returned
7
- * by render-document / render-list). Adapters are expected to ship those over
8
- * the wire as RSC payloads — Next.js's runtime does this natively, while the
9
- * TanStack Start adapter pipes the result through `serializeForRsc` to convert
10
- * elements into `renderServerComponent` handles.
5
+ * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches
6
+ * from this single registry via `createServerFunctionHandler`, so a handler
7
+ * added here reaches every framework and the adapter lists can't drift.
8
+ *
9
+ * Handlers may return values containing React elements (e.g. `customComponents`
10
+ * inside form state, the `Document` / `List` nodes from render-document /
11
+ * render-list, the render-field / render-widget output). Adapters ship those
12
+ * over the wire as RSC payloads: Next.js does this natively, while the TanStack
13
+ * Start adapter passes a `transformResult` (`serializeForRsc`) to
14
+ * `createServerFunctionHandler` that converts elements into
15
+ * `renderServerComponent` handles.
11
16
  */
12
17
  export declare const sharedServerFunctions: Record<string, ServerFunction<any, any>>;
13
18
  //# sourceMappingURL=serverFunctionRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAS7C;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAO1E,CAAA"}
1
+ {"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkB7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAe1E,CAAA"}
@@ -1,25 +1,44 @@
1
+ import { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js';
2
+ import { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js';
3
+ import { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js';
1
4
  import { renderDocumentHandler } from '../views/Document/handleServerFunction.js';
5
+ import { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js';
2
6
  import { renderListHandler } from '../views/List/handleServerFunction.js';
3
7
  import { buildFormStateHandler } from './buildFormState.js';
4
8
  import { buildTableStateHandler } from './buildTableState.js';
5
9
  import { copyDataFromLocaleHandler } from './copyDataFromLocale.js';
6
- import { schedulePublishHandler } from './schedulePublishHandler.js';
10
+ import { getUpcomingScheduledPublishHandler, schedulePublishHandler } from './schedulePublishHandler.js';
11
+ import { slugifyHandler } from './slugify.js';
12
+ import { switchLanguageHandler } from './switchLanguageHandler.js';
7
13
  /**
8
- * Framework-agnostic server function handlers shared across all adapters.
14
+ * The complete, framework-agnostic set of Payload server functions.
9
15
  *
10
- * Each handler returns a value that may contain React elements (e.g.
11
- * `customComponents` inside form state, the `Document` / `List` nodes returned
12
- * by render-document / render-list). Adapters are expected to ship those over
13
- * the wire as RSC payloads — Next.js's runtime does this natively, while the
14
- * TanStack Start adapter pipes the result through `serializeForRsc` to convert
15
- * elements into `renderServerComponent` handles.
16
+ * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches
17
+ * from this single registry via `createServerFunctionHandler`, so a handler
18
+ * added here reaches every framework and the adapter lists can't drift.
19
+ *
20
+ * Handlers may return values containing React elements (e.g. `customComponents`
21
+ * inside form state, the `Document` / `List` nodes from render-document /
22
+ * render-list, the render-field / render-widget output). Adapters ship those
23
+ * over the wire as RSC payloads: Next.js does this natively, while the TanStack
24
+ * Start adapter passes a `transformResult` (`serializeForRsc`) to
25
+ * `createServerFunctionHandler` that converts elements into
26
+ * `renderServerComponent` handles.
16
27
  */
17
28
  export const sharedServerFunctions = {
18
29
  'copy-data-from-locale': copyDataFromLocaleHandler,
19
30
  'form-state': buildFormStateHandler,
31
+ 'get-default-layout': getDefaultLayoutHandler,
32
+ 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,
20
33
  'render-document': renderDocumentHandler,
34
+ 'render-document-slots': renderDocumentSlotsHandler,
35
+ 'render-field': _internal_renderFieldHandler,
21
36
  'render-list': renderListHandler,
37
+ 'render-tab': renderTabHandler,
38
+ 'render-widget': renderWidgetHandler,
22
39
  'schedule-publish': schedulePublishHandler,
40
+ slugify: slugifyHandler,
41
+ 'switch-language': switchLanguageHandler,
23
42
  'table-state': buildTableStateHandler
24
43
  };
25
44
  //# sourceMappingURL=serverFunctionRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverFunctionRegistry.js","names":["renderDocumentHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","schedulePublishHandler","sharedServerFunctions"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport { schedulePublishHandler } from './schedulePublishHandler.js'\n\n/**\n * Framework-agnostic server function handlers shared across all adapters.\n *\n * Each handler returns a value that may contain React elements (e.g.\n * `customComponents` inside form state, the `Document` / `List` nodes returned\n * by render-document / render-list). Adapters are expected to ship those over\n * the wire as RSC payloads — Next.js's runtime does this natively, while the\n * TanStack Start adapter pipes the result through `serializeForRsc` to convert\n * elements into `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'render-document': renderDocumentHandler,\n 'render-list': renderListHandler,\n 'schedule-publish': schedulePublishHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,sBAAsB,QAAQ;AAEvC;;;;;;;;;;AAUA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBF,yBAAA;EACzB,cAAcF,qBAAA;EACd,mBAAmBF,qBAAA;EACnB,eAAeC,iBAAA;EACf,oBAAoBI,sBAAA;EACpB,eAAeF;AACjB","ignoreList":[]}
1
+ {"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","getUpcomingScheduledPublishHandler","schedulePublishHandler","slugifyHandler","switchLanguageHandler","sharedServerFunctions","slugify"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport {\n getUpcomingScheduledPublishHandler,\n schedulePublishHandler,\n} from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\n/**\n * The complete, framework-agnostic set of Payload server functions.\n *\n * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches\n * from this single registry via `createServerFunctionHandler`, so a handler\n * added here reaches every framework and the adapter lists can't drift.\n *\n * Handlers may return values containing React elements (e.g. `customComponents`\n * inside form state, the `Document` / `List` nodes from render-document /\n * render-list, the render-field / render-widget output). Adapters ship those\n * over the wire as RSC payloads: Next.js does this natively, while the TanStack\n * Start adapter passes a `transformResult` (`serializeForRsc`) to\n * `createServerFunctionHandler` that converts elements into\n * `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SACEC,kCAAkC,EAClCC,sBAAsB,QACjB;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBL,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,kCAAkCQ,kCAAA;EAClC,mBAAmBN,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBQ,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeL;AACjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAiC7B,CAAA"}
1
+ {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAuF7B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { flattenAllFields, getFieldByPath, UnauthorizedError } from 'payload';
1
+ import { executeAccess, getFieldByPath, getSlugFallbackValue, getUniqueFieldValue, hasDraftsEnabled, UnauthorizedError } from 'payload';
2
2
  import { slugify as defaultSlugify } from 'payload/shared';
3
3
  /**
4
4
  * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.
@@ -13,9 +13,11 @@ import { slugify as defaultSlugify } from 'payload/shared';
13
13
  */
14
14
  export const slugifyHandler = async args => {
15
15
  const {
16
+ id,
16
17
  collectionSlug,
17
18
  data,
18
19
  globalSlug,
20
+ locale,
19
21
  path,
20
22
  req,
21
23
  valueToSlugify
@@ -31,17 +33,61 @@ export const slugifyHandler = async args => {
31
33
  field
32
34
  } = getFieldByPath({
33
35
  config: req.payload.config,
34
- fields: flattenAllFields({
35
- fields: docConfig.fields
36
- }),
36
+ fields: docConfig.flattenedFields,
37
37
  path
38
38
  });
39
39
  const customSlugify = typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined;
40
- const result = customSlugify ? await customSlugify({
40
+ const slugify = valueToSlugify => customSlugify ? customSlugify({
41
41
  data,
42
42
  req,
43
43
  valueToSlugify
44
44
  }) : defaultSlugify(valueToSlugify);
45
- return result;
45
+ const result = await slugify(valueToSlugify);
46
+ const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null;
47
+ // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to
48
+ // dedupe against, so their result is returned as-is.
49
+ if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {
50
+ return result;
51
+ }
52
+ // Probing reads across the whole collection with the raw db, so require unrestricted read access —
53
+ // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable
54
+ // rows would break uniqueness.
55
+ const canRead = await executeAccess({
56
+ slug: collectionConfig.slug,
57
+ disableErrors: true,
58
+ req
59
+ }, collectionConfig.access.read);
60
+ if (canRead !== true) {
61
+ return result;
62
+ }
63
+ // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it
64
+ // dedupes against the default locale and can hand back a colliding value. The client passes the
65
+ // active admin locale; fall back to the request's own locale.
66
+ const localeToScope = field.localized ? locale ?? req.locale ?? undefined : undefined;
67
+ // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.
68
+ const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined;
69
+ // A source resolved to a value: dedupe it the same way the next save would, so the generate button
70
+ // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.
71
+ if (result) {
72
+ return getUniqueFieldValue({
73
+ id: excludeId,
74
+ collection: collectionConfig.slug,
75
+ draftsEnabled: hasDraftsEnabled(collectionConfig),
76
+ field: field.name,
77
+ locale: localeToScope,
78
+ overrideAccess: true,
79
+ req,
80
+ value: result
81
+ });
82
+ }
83
+ return getSlugFallbackValue({
84
+ id: excludeId,
85
+ collection: collectionConfig,
86
+ field: field.name,
87
+ locale: localeToScope,
88
+ overrideAccess: true,
89
+ req,
90
+ slugify
91
+ });
46
92
  };
47
93
  //# sourceMappingURL=slugify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.js","names":["flattenAllFields","getFieldByPath","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","collectionSlug","data","globalSlug","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","customSlugify","custom","undefined","result"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n flattenAllFields,\n getFieldByPath,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { collectionSlug, data, globalSlug, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: flattenAllFields({ fields: docConfig.fields }),\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const result = customSlugify\n ? await customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify)\n\n return result\n}\n"],"mappings":"AAEA,SACEA,gBAAgB,EAChBC,cAAc,EAGdC,iBAAiB,QACZ;AACP,SAASC,OAAA,IAAWC,cAAc,QAAQ;AAE1C;;;;;;;;;;;AAWA,OAAO,MAAMC,cAAA,GAGT,MAAOC,IAAA;EACT,MAAM;IAAEC,cAAc;IAAEC,IAAI;IAAEC,UAAU;IAAEC,IAAI;IAAEC,GAAG;IAAEC;EAAc,CAAE,GAAGN,IAAA;EAExE,IAAI,CAACK,GAAA,CAAIE,IAAI,EAAE;IACb,MAAM,IAAIX,iBAAA;EACZ;EAEA,MAAMY,SAAA,GAAYP,cAAA,GACdI,GAAA,CAAII,OAAO,CAACC,WAAW,CAACT,cAAA,CAAe,EAAEU,MAAA,GACzCR,UAAA,GACEE,GAAA,CAAII,OAAO,CAACE,MAAM,CAACC,OAAO,CAACC,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKZ,UAAA,IAClD;EAEN,IAAI,CAACK,SAAA,EAAW;IACd,MAAM,IAAIQ,KAAA;EACZ;EAEA,MAAM;IAAEC;EAAK,CAAE,GAAGtB,cAAA,CAAe;IAC/BgB,MAAA,EAAQN,GAAA,CAAII,OAAO,CAACE,MAAM;IAC1BO,MAAA,EAAQxB,gBAAA,CAAiB;MAAEwB,MAAA,EAAQV,SAAA,CAAUU;IAAO;IACpDd;EACF;EAEA,MAAMe,aAAA,GACJ,OAAOF,KAAA,EAAOG,MAAA,EAAQvB,OAAA,KAAY,aAAaoB,KAAA,CAAMG,MAAM,CAACvB,OAAO,GAAGwB,SAAA;EAGxE,MAAMC,MAAA,GAASH,aAAA,GACX,MAAMA,aAAA,CAAc;IAAEjB,IAAA;IAAMG,GAAA;IAAKC;EAAe,KAChDR,cAAA,CAAeQ,cAAA;EAEnB,OAAOgB,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","overrideAccess","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess(\n { slug: collectionConfig.slug, disableErrors: true, req },\n collectionConfig.access.read,\n )\n\n if (canRead !== true) {\n return result\n }\n\n // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it\n // dedupes against the default locale and can hand back a colliding value. The client passes the\n // active admin locale; fall back to the request's own locale.\n const localeToScope = field.localized ? (locale ?? req.locale ?? undefined) : undefined\n\n // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.\n const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined\n\n // A source resolved to a value: dedupe it the same way the next save would, so the generate button\n // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.\n if (result) {\n return getUniqueFieldValue({\n id: excludeId,\n collection: collectionConfig.slug,\n draftsEnabled: hasDraftsEnabled(collectionConfig),\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n value: result,\n })\n }\n\n return getSlugFallbackValue({\n id: excludeId,\n collection: collectionConfig,\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n slugify,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAkPjC,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAmPjC,CAAA"}
@@ -34,9 +34,8 @@ export const APIViewClient = () => {
34
34
  i18n,
35
35
  t
36
36
  } = useTranslation();
37
- const {
38
- code
39
- } = useLocale();
37
+ const currentLocale = useLocale();
38
+ const code = currentLocale?.code;
40
39
  const {
41
40
  config: {
42
41
  defaultDepth,