@payloadcms/ui 4.0.0-internal.e55ccef → 4.0.0-internal.f05c47f

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 (561) 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 +5 -1
  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 +3 -0
  16. package/dist/elements/Autosave/index.js.map +1 -1
  17. package/dist/elements/BranchSelector/index.css +83 -0
  18. package/dist/elements/BranchSelector/index.d.ts +12 -0
  19. package/dist/elements/BranchSelector/index.d.ts.map +1 -0
  20. package/dist/elements/BranchSelector/index.js +160 -0
  21. package/dist/elements/BranchSelector/index.js.map +1 -0
  22. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  23. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  24. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  25. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  26. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  28. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  29. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  30. package/dist/elements/BulkUpload/FormsManager/index.js +7 -3
  31. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  32. package/dist/elements/Button/index.css +2 -2
  33. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  34. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  35. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  36. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  37. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  38. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  39. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  40. package/dist/elements/ClipboardAction/index.js +17 -1
  41. package/dist/elements/ClipboardAction/index.js.map +1 -1
  42. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  43. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  44. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  45. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  46. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +55 -0
  47. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.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/ColumnSelection/Popup.d.ts.map +1 -1
  57. package/dist/elements/ColumnSelection/Popup.js +3 -3
  58. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  59. package/dist/elements/Combobox/index.css +76 -23
  60. package/dist/elements/Combobox/index.d.ts +7 -0
  61. package/dist/elements/Combobox/index.d.ts.map +1 -1
  62. package/dist/elements/Combobox/index.js +58 -20
  63. package/dist/elements/Combobox/index.js.map +1 -1
  64. package/dist/elements/CommandPalette/index.css +0 -7
  65. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  66. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  67. package/dist/elements/CopyToClipboard/index.js +10 -8
  68. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  69. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  70. package/dist/elements/CreateDocumentButton/index.js +4 -1
  71. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  72. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +1 -0
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/index.css +1 -1
  76. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  77. package/dist/elements/DeleteDocument/index.js +24 -2
  78. package/dist/elements/DeleteDocument/index.js.map +1 -1
  79. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  80. package/dist/elements/DeleteMany/index.js +4 -1
  81. package/dist/elements/DeleteMany/index.js.map +1 -1
  82. package/dist/elements/Drawer/index.css +10 -4
  83. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  84. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  85. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  86. package/dist/elements/DuplicateDocument/index.js +6 -1
  87. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  88. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  89. package/dist/elements/EditMany/DrawerContent.js +6 -3
  90. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  91. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  92. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  93. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  94. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  95. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  96. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  97. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  98. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  99. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  100. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  101. package/dist/elements/FileManager/index.css +36 -23
  102. package/dist/elements/FileManager/index.d.ts +1 -1
  103. package/dist/elements/FileManager/index.d.ts.map +1 -1
  104. package/dist/elements/FileManager/index.js +15 -4
  105. package/dist/elements/FileManager/index.js.map +1 -1
  106. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  107. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  108. package/dist/elements/Hierarchy/ColumnBrowser/index.js +4 -1
  109. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  110. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  111. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +4 -1
  112. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  113. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +2 -1
  114. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  115. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +2 -0
  116. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  117. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  118. package/dist/elements/Hierarchy/Modal/index.js +3 -0
  119. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  120. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  121. package/dist/elements/Hierarchy/MoveMany/index.js +4 -1
  122. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  123. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  124. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +3 -0
  125. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  126. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  127. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  128. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  129. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  130. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  131. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  132. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  133. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  134. package/dist/elements/Hierarchy/Tree/useChildren.js +4 -1
  135. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  136. package/dist/elements/IDLabel/index.css +6 -0
  137. package/dist/elements/IDLabel/index.d.ts +1 -1
  138. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  139. package/dist/elements/IDLabel/index.js +16 -21
  140. package/dist/elements/IDLabel/index.js.map +1 -1
  141. package/dist/elements/InputStepper/index.css +0 -1
  142. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  143. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  144. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  145. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  146. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  147. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +6 -2
  148. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  149. package/dist/elements/Locked/index.css +0 -8
  150. package/dist/elements/Locked/index.d.ts.map +1 -1
  151. package/dist/elements/Locked/index.js +70 -64
  152. package/dist/elements/Locked/index.js.map +1 -1
  153. package/dist/elements/MiniCarousel/index.css +39 -37
  154. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  155. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  156. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  157. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  158. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  159. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  160. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  161. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  162. package/dist/elements/NavGroup/index.css +0 -1
  163. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  164. package/dist/elements/PermanentlyDeleteButton/index.js +4 -1
  165. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  166. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  167. package/dist/elements/Popup/index.js +1 -1
  168. package/dist/elements/Popup/index.js.map +1 -1
  169. package/dist/elements/PreviewButton/index.d.ts +1 -2
  170. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  171. package/dist/elements/PreviewButton/index.js +11 -5
  172. package/dist/elements/PreviewButton/index.js.map +1 -1
  173. package/dist/elements/PreviewSizes/index.css +8 -9
  174. package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
  175. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  176. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  177. package/dist/elements/PublishButton/index.js +6 -2
  178. package/dist/elements/PublishButton/index.js.map +1 -1
  179. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  180. package/dist/elements/PublishMany/DrawerContent.js +4 -1
  181. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  182. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  183. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  184. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  185. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  186. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  187. package/dist/elements/ReactSelect/index.css +0 -3
  188. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  189. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  190. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  191. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  192. package/dist/elements/RelationshipTable/index.css +0 -2
  193. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  194. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  195. package/dist/elements/RelationshipTable/index.js +41 -5
  196. package/dist/elements/RelationshipTable/index.js.map +1 -1
  197. package/dist/elements/RenderTitle/index.css +4 -0
  198. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  199. package/dist/elements/RenderTitle/index.js +18 -13
  200. package/dist/elements/RenderTitle/index.js.map +1 -1
  201. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  202. package/dist/elements/RestoreButton/index.js +4 -1
  203. package/dist/elements/RestoreButton/index.js.map +1 -1
  204. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  205. package/dist/elements/RestoreMany/index.js +3 -0
  206. package/dist/elements/RestoreMany/index.js.map +1 -1
  207. package/dist/elements/SelectRow/index.d.ts +4 -3
  208. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  209. package/dist/elements/SelectRow/index.js +10 -7
  210. package/dist/elements/SelectRow/index.js.map +1 -1
  211. package/dist/elements/SidebarToggle/index.css +0 -17
  212. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  213. package/dist/elements/SortColumn/index.js +42 -38
  214. package/dist/elements/SortColumn/index.js.map +1 -1
  215. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  216. package/dist/elements/SortHeader/index.js +29 -26
  217. package/dist/elements/SortHeader/index.js.map +1 -1
  218. package/dist/elements/StepNav/index.css +64 -14
  219. package/dist/elements/StepNav/index.d.ts.map +1 -1
  220. package/dist/elements/StepNav/index.js +145 -69
  221. package/dist/elements/StepNav/index.js.map +1 -1
  222. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  223. package/dist/elements/Table/DefaultCell/index.js +3 -11
  224. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  225. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  226. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  227. package/dist/elements/Table/OrderableRow.js +17 -1
  228. package/dist/elements/Table/OrderableRow.js.map +1 -1
  229. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  230. package/dist/elements/Table/OrderableTable.js +22 -3
  231. package/dist/elements/Table/OrderableTable.js.map +1 -1
  232. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  233. package/dist/elements/Table/RelationshipProvider/index.js +29 -23
  234. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  235. package/dist/elements/Table/index.css +1 -0
  236. package/dist/elements/TableSection/index.css +0 -1
  237. package/dist/elements/Thumbnail/index.d.ts +1 -1
  238. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  239. package/dist/elements/Thumbnail/index.js.map +1 -1
  240. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  241. package/dist/elements/TimezonePicker/index.js +5 -1
  242. package/dist/elements/TimezonePicker/index.js.map +1 -1
  243. package/dist/elements/Tooltip/index.css +15 -34
  244. package/dist/elements/Tooltip/index.d.ts +11 -3
  245. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  246. package/dist/elements/Tooltip/index.js +151 -85
  247. package/dist/elements/Tooltip/index.js.map +1 -1
  248. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  249. package/dist/elements/UnpublishButton/index.js +4 -1
  250. package/dist/elements/UnpublishButton/index.js.map +1 -1
  251. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  252. package/dist/elements/UnpublishMany/DrawerContent.js +4 -1
  253. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  254. package/dist/elements/Upload/index.css +0 -5
  255. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  256. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +3 -0
  257. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  258. package/dist/exports/client/index.d.ts +8 -1
  259. package/dist/exports/client/index.d.ts.map +1 -1
  260. package/dist/exports/client/index.js +1 -1
  261. package/dist/exports/client/index.js.map +3 -3
  262. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  263. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  264. package/dist/fields/Array/ArrayRow.js +99 -160
  265. package/dist/fields/Array/ArrayRow.js.map +1 -1
  266. package/dist/fields/Array/index.d.ts.map +1 -1
  267. package/dist/fields/Array/index.js +38 -10
  268. package/dist/fields/Array/index.js.map +1 -1
  269. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  270. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  271. package/dist/fields/Blocks/BlockRow.js +136 -195
  272. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  273. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  274. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  275. package/dist/fields/Blocks/RowActions.js +26 -20
  276. package/dist/fields/Blocks/RowActions.js.map +1 -1
  277. package/dist/fields/Blocks/index.d.ts.map +1 -1
  278. package/dist/fields/Blocks/index.js +38 -10
  279. package/dist/fields/Blocks/index.js.map +1 -1
  280. package/dist/fields/Checkbox/Input.d.ts +2 -0
  281. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  282. package/dist/fields/Checkbox/Input.js +32 -26
  283. package/dist/fields/Checkbox/Input.js.map +1 -1
  284. package/dist/fields/Checkbox/index.css +37 -73
  285. package/dist/fields/FieldError/index.css +0 -9
  286. package/dist/fields/FieldError/index.d.ts.map +1 -1
  287. package/dist/fields/FieldError/index.js +19 -9
  288. package/dist/fields/FieldError/index.js.map +1 -1
  289. package/dist/fields/Join/index.css +9 -0
  290. package/dist/fields/Join/index.d.ts.map +1 -1
  291. package/dist/fields/Join/index.js +13 -9
  292. package/dist/fields/Join/index.js.map +1 -1
  293. package/dist/fields/RadioGroup/index.css +0 -7
  294. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  295. package/dist/fields/Relationship/Input.js +37 -15
  296. package/dist/fields/Relationship/Input.js.map +1 -1
  297. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  298. package/dist/fields/Slug/index.css +0 -1
  299. package/dist/fields/Slug/index.d.ts.map +1 -1
  300. package/dist/fields/Slug/index.js +75 -111
  301. package/dist/fields/Slug/index.js.map +1 -1
  302. package/dist/fields/Upload/Input.d.ts.map +1 -1
  303. package/dist/fields/Upload/Input.js +4 -1
  304. package/dist/fields/Upload/Input.js.map +1 -1
  305. package/dist/fields/Upload/index.css +19 -4
  306. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  307. package/dist/forms/Form/fieldReducer.js +3 -1
  308. package/dist/forms/Form/fieldReducer.js.map +1 -1
  309. package/dist/forms/Form/index.d.ts.map +1 -1
  310. package/dist/forms/Form/index.js +12 -15
  311. package/dist/forms/Form/index.js.map +1 -1
  312. package/dist/forms/Form/types.d.ts +1 -1
  313. package/dist/forms/Form/types.d.ts.map +1 -1
  314. package/dist/forms/Form/types.js.map +1 -1
  315. package/dist/forms/RenderFields/index.css +16 -2
  316. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  317. package/dist/forms/WatchChildErrors/index.js +2 -2
  318. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  319. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  320. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  321. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  322. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  323. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  324. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  325. package/dist/hooks/usePayloadAPI.js +44 -40
  326. package/dist/hooks/usePayloadAPI.js.map +1 -1
  327. package/dist/icons/Edit/index.d.ts +0 -1
  328. package/dist/icons/Edit/index.d.ts.map +1 -1
  329. package/dist/icons/Edit/index.js +4 -4
  330. package/dist/icons/Edit/index.js.map +1 -1
  331. package/dist/layouts/Root/index.d.ts +1 -1
  332. package/dist/layouts/Root/index.d.ts.map +1 -1
  333. package/dist/layouts/Root/index.js +8 -2
  334. package/dist/layouts/Root/index.js.map +1 -1
  335. package/dist/providers/Actions/index.d.ts +1 -0
  336. package/dist/providers/Actions/index.d.ts.map +1 -1
  337. package/dist/providers/Actions/index.js +43 -11
  338. package/dist/providers/Actions/index.js.map +1 -1
  339. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  340. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  341. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  342. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  343. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  344. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  345. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  346. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  347. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  348. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  349. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  350. package/dist/providers/Auth/authSessionRequests.js +119 -0
  351. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  352. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  353. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  354. package/dist/providers/Auth/index.d.ts +2 -56
  355. package/dist/providers/Auth/index.d.ts.map +1 -1
  356. package/dist/providers/Auth/index.js +283 -135
  357. package/dist/providers/Auth/index.js.map +1 -1
  358. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  359. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  360. package/dist/providers/Auth/sessionActivity.js +49 -0
  361. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  362. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  363. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  364. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  365. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  366. package/dist/providers/Auth/sessionTiming.js +18 -0
  367. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  368. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  369. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  370. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  371. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  372. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  373. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  374. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  375. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  376. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  377. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  378. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  379. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  380. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  381. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  382. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  383. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  384. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  385. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  386. package/dist/providers/Auth/types.d.ts +65 -0
  387. package/dist/providers/Auth/types.d.ts.map +1 -0
  388. package/dist/providers/Auth/types.js +2 -0
  389. package/dist/providers/Auth/types.js.map +1 -0
  390. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  391. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  392. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  393. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  394. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  395. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  396. package/dist/providers/Branch/index.d.ts +62 -0
  397. package/dist/providers/Branch/index.d.ts.map +1 -0
  398. package/dist/providers/Branch/index.js +192 -0
  399. package/dist/providers/Branch/index.js.map +1 -0
  400. package/dist/providers/Branch/index.server.d.ts +14 -0
  401. package/dist/providers/Branch/index.server.d.ts.map +1 -0
  402. package/dist/providers/Branch/index.server.js +80 -0
  403. package/dist/providers/Branch/index.server.js.map +1 -0
  404. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  405. package/dist/providers/DocumentInfo/index.js +5 -1
  406. package/dist/providers/DocumentInfo/index.js.map +1 -1
  407. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +2 -1
  408. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  409. package/dist/providers/DocumentInfo/useGetDocPermissions.js +3 -1
  410. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  411. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  412. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  413. package/dist/providers/DocumentTitle/index.js +2 -0
  414. package/dist/providers/DocumentTitle/index.js.map +1 -1
  415. package/dist/providers/Embed/index.d.ts +24 -0
  416. package/dist/providers/Embed/index.d.ts.map +1 -0
  417. package/dist/providers/Embed/index.js +105 -0
  418. package/dist/providers/Embed/index.js.map +1 -0
  419. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  420. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  421. package/dist/providers/FormErrorHandler/index.js +6 -0
  422. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  423. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  424. package/dist/providers/Hierarchy/index.js +4 -1
  425. package/dist/providers/Hierarchy/index.js.map +1 -1
  426. package/dist/providers/Locale/index.d.ts.map +1 -1
  427. package/dist/providers/Locale/index.js +41 -36
  428. package/dist/providers/Locale/index.js.map +1 -1
  429. package/dist/providers/Root/index.d.ts +1 -0
  430. package/dist/providers/Root/index.d.ts.map +1 -1
  431. package/dist/providers/Root/index.js +37 -31
  432. package/dist/providers/Root/index.js.map +1 -1
  433. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  434. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  435. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  436. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  437. package/dist/providers/RouteTransition/index.d.ts +2 -0
  438. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  439. package/dist/providers/RouteTransition/index.js +42 -14
  440. package/dist/providers/RouteTransition/index.js.map +1 -1
  441. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  442. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  443. package/dist/providers/SidebarTabs/index.js.map +1 -1
  444. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  445. package/dist/providers/TableColumns/buildColumnState/index.js +1 -1
  446. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  447. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  448. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  449. package/dist/providers/Theme/index.d.ts +3 -0
  450. package/dist/providers/Theme/index.d.ts.map +1 -1
  451. package/dist/providers/Theme/index.js +107 -95
  452. package/dist/providers/Theme/index.js.map +1 -1
  453. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  454. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  455. package/dist/providers/UploadHandlers/index.js +102 -42
  456. package/dist/providers/UploadHandlers/index.js.map +1 -1
  457. package/dist/styles.css +13 -10
  458. package/dist/templates/Default/index.d.ts +1 -0
  459. package/dist/templates/Default/index.d.ts.map +1 -1
  460. package/dist/templates/Default/index.js +45 -39
  461. package/dist/templates/Default/index.js.map +1 -1
  462. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  463. package/dist/utilities/combineFieldLabel.js +5 -1
  464. package/dist/utilities/combineFieldLabel.js.map +1 -1
  465. package/dist/utilities/generateFieldID.d.ts +1 -1
  466. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  467. package/dist/utilities/generateFieldID.js +2 -2
  468. package/dist/utilities/generateFieldID.js.map +1 -1
  469. package/dist/utilities/getRequestBranch.d.ts +18 -0
  470. package/dist/utilities/getRequestBranch.d.ts.map +1 -0
  471. package/dist/utilities/getRequestBranch.js +32 -0
  472. package/dist/utilities/getRequestBranch.js.map +1 -0
  473. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  474. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  475. package/dist/utilities/getRequestEmbed.js +10 -0
  476. package/dist/utilities/getRequestEmbed.js.map +1 -0
  477. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  478. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  479. package/dist/utilities/handleServerFunctions.js +17 -37
  480. package/dist/utilities/handleServerFunctions.js.map +1 -1
  481. package/dist/utilities/initReq.d.ts.map +1 -1
  482. package/dist/utilities/initReq.js +8 -0
  483. package/dist/utilities/initReq.js.map +1 -1
  484. package/dist/utilities/matchesSearchQuery.d.ts +12 -0
  485. package/dist/utilities/matchesSearchQuery.d.ts.map +1 -0
  486. package/dist/utilities/matchesSearchQuery.js +23 -0
  487. package/dist/utilities/matchesSearchQuery.js.map +1 -0
  488. package/dist/{elements/ColumnSelection/matchesColumnSearch.spec.js → utilities/matchesSearchQuery.spec.js} +29 -29
  489. package/dist/utilities/matchesSearchQuery.spec.js.map +1 -0
  490. package/dist/utilities/renderTable.d.ts.map +1 -1
  491. package/dist/utilities/renderTable.js +18 -2
  492. package/dist/utilities/renderTable.js.map +1 -1
  493. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  494. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  495. package/dist/utilities/serverFunctionRegistry.js +25 -7
  496. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  497. package/dist/utilities/slugify.d.ts.map +1 -1
  498. package/dist/utilities/slugify.js +49 -6
  499. package/dist/utilities/slugify.js.map +1 -1
  500. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  501. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  502. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  503. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  504. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  505. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  506. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  507. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  508. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  509. package/dist/views/Dashboard/Default/ModularDashboard/index.css +29 -144
  510. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  511. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  512. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  513. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  514. package/dist/views/Edit/index.css +61 -53
  515. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  516. package/dist/views/HierarchyList/HierarchyTable/index.js +6 -2
  517. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  518. package/dist/views/HierarchyList/index.css +1 -1
  519. package/dist/views/List/ListHeader/index.d.ts +1 -10
  520. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  521. package/dist/views/List/ListHeader/index.js +1 -3
  522. package/dist/views/List/ListHeader/index.js.map +1 -1
  523. package/dist/views/List/index.client.d.ts.map +1 -1
  524. package/dist/views/List/index.client.js +0 -14
  525. package/dist/views/List/index.client.js.map +1 -1
  526. package/dist/views/List/index.css +6 -1
  527. package/dist/views/List/index.d.ts.map +1 -1
  528. package/dist/views/List/index.js +4 -0
  529. package/dist/views/List/index.js.map +1 -1
  530. package/dist/views/Logout/index.d.ts.map +1 -1
  531. package/dist/views/Logout/index.js +11 -0
  532. package/dist/views/Logout/index.js.map +1 -1
  533. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  534. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  535. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  536. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  537. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  538. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  539. package/dist/views/Root/index.d.ts +12 -1
  540. package/dist/views/Root/index.d.ts.map +1 -1
  541. package/dist/views/Root/index.js +11 -3
  542. package/dist/views/Root/index.js.map +1 -1
  543. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  544. package/dist/views/Version/Restore/index.js +6 -3
  545. package/dist/views/Version/Restore/index.js.map +1 -1
  546. package/package.json +5 -10
  547. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +0 -10
  548. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +0 -1
  549. package/dist/elements/ColumnSelection/matchesColumnSearch.js +0 -21
  550. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +0 -1
  551. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  552. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  553. package/dist/scss/app.scss +0 -183
  554. package/dist/scss/colors.scss +0 -191
  555. package/dist/scss/custom.css +0 -1
  556. package/dist/scss/queries.scss +0 -27
  557. package/dist/scss/styles.scss +0 -9
  558. package/dist/scss/svg.scss +0 -10
  559. package/dist/scss/toastify.scss +0 -61
  560. package/dist/scss/vars.scss +0 -192
  561. package/dist/scss/z-index.scss +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","endOfToday","isToday","startOfDay","transpose","formatAdminURL","qs","React","useCallback","useMemo","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useDocumentTitle","useServerFunctions","useTranslation","requests","Banner","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","TimezonePicker","buildUpcomingColumns","buildUpcomingScheduleWhere","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","defaultType","onUpcomingChange","schedulePublishConfig","config","admin","dateFormat","timezones","defaultTimezone","supportedTimezones","localization","routes","api","id","collectionSlug","globalSlug","title","i18n","t","schedulePublish","type","setType","useState","date","setDate","timezone","setTimezone","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localeOptions","options","locales","map","code","unshift","fetchUpcoming","query","sort","where","docs","post","apiRoute","path","body","stringify","headers","language","then","res","json","deleteHandler","current","length","deleteID","success","err","console","error","message","useEffect","handleSave","localeToPublish","doc","relationTo","String","undefined","global","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","onChangeDate","incomingDate","tzDateWithUTC","dateToUserTz","fetchInitialUpcoming","minTime","Date","_jsxs","className","_jsx","required","isSelected","onChange","option","readOnly","maxTime","minDate","e","pickerAppearance","timeFormat","timeIntervals","selectedTimezone","buttonStyle","disabled","onClick","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Column, SchedulePublish, Where } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { endOfToday, isToday, startOfDay } from 'date-fns'\nimport { transpose } from 'date-fns/transpose'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishType, UpcomingEvent } from './types.js'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { Radio } from '../../../fields/RadioGroup/Radio/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Banner } from '../../Banner/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DatePickerField } from '../../DatePicker/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { Gutter } from '../../Gutter/index.js'\nimport './index.css'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Table } from '../../Table/index.js'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\nimport { buildUpcomingScheduleWhere } from './buildUpcomingScheduleWhere.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n defaultType?: PublishType\n onUpcomingChange?: (hasUpcoming: boolean) => void\n schedulePublishConfig?: SchedulePublish\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({\n slug,\n defaultType,\n onUpcomingChange,\n schedulePublishConfig,\n}) => {\n const {\n config: {\n admin: {\n dateFormat,\n timezones: { defaultTimezone, supportedTimezones },\n },\n localization,\n routes: { api },\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { title } = useDocumentTitle()\n const { i18n, t } = useTranslation()\n const { schedulePublish } = useServerFunctions()\n const [type, setType] = React.useState<PublishType>(defaultType || 'publish')\n const [date, setDate] = React.useState<Date>()\n const [timezone, setTimezone] = React.useState<string>(defaultTimezone)\n const [locale, setLocale] = React.useState<{ label: string; value: string }>(defaultLocaleOption)\n const [processing, setProcessing] = React.useState(false)\n const modalTitle = t('general:schedulePublishFor', { title })\n const [upcoming, setUpcoming] = React.useState<UpcomingEvent[]>()\n const [upcomingColumns, setUpcomingColumns] = React.useState<Column[]>()\n const deleteHandlerRef = React.useRef<((id: number | string) => Promise<void>) | null>(() => null)\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const localeOptions = React.useMemo(() => {\n if (localization) {\n const options = localization.locales.map(({ code, label }) => ({\n label: getTranslation(label, i18n),\n value: code,\n }))\n\n options.unshift(defaultLocaleOption)\n\n return options\n }\n\n return []\n }, [localization, i18n])\n\n const fetchUpcoming = React.useCallback(async () => {\n const query: { sort: string; where: Where } = {\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n }\n\n const { docs } = await requests\n .post(formatAdminURL({ apiRoute: api, path: `/payload-jobs` }), {\n body: qs.stringify(query),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-Payload-HTTP-Method-Override': 'GET',\n },\n })\n .then((res) => res.json())\n\n setUpcomingColumns(\n buildUpcomingColumns({\n dateFormat,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n deleteHandler: deleteHandlerRef.current,\n docs,\n i18n,\n localization,\n supportedTimezones,\n t,\n }),\n )\n setUpcoming(docs)\n onUpcomingChange?.(docs.length > 0)\n }, [\n collectionSlug,\n globalSlug,\n api,\n i18n,\n dateFormat,\n localization,\n supportedTimezones,\n t,\n id,\n onUpcomingChange,\n ])\n\n const deleteHandler = React.useCallback(\n async (id: number | string) => {\n try {\n await schedulePublish({\n deleteID: id,\n })\n await fetchUpcoming()\n toast.success(t('general:deletedSuccessfully'))\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n },\n [fetchUpcoming, schedulePublish, t],\n )\n\n React.useEffect(() => {\n deleteHandlerRef.current = deleteHandler\n }, [deleteHandler])\n\n const handleSave = React.useCallback(async () => {\n if (!date) {\n return toast.error(t('general:noDateSelected'))\n }\n\n setProcessing(true)\n\n let localeToPublish: string\n\n if (typeof locale === 'object' && locale.value !== 'all' && type === 'publish') {\n localeToPublish = locale.value\n }\n\n try {\n await schedulePublish({\n type,\n date,\n doc: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: String(id),\n }\n : undefined,\n global: globalSlug || undefined,\n localeToPublish,\n timezone,\n })\n\n setDate(undefined)\n toast.success(t('version:scheduledSuccessfully'))\n void fetchUpcoming()\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n\n setProcessing(false)\n }, [\n date,\n locale,\n type,\n t,\n schedulePublish,\n collectionSlug,\n id,\n globalSlug,\n timezone,\n fetchUpcoming,\n ])\n\n const displayedValue = useMemo(() => {\n if (timezone && userTimezone && date) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(timezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(date).withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return date\n }, [timezone, date, userTimezone])\n\n const onChangeDate = useCallback(\n (incomingDate: Date) => {\n if (timezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(timezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setDate(dateWithTimezone || null)\n } else {\n setDate(incomingDate || null)\n }\n },\n [setDate, timezone],\n )\n\n React.useEffect(() => {\n if (!upcoming) {\n const fetchInitialUpcoming = async () => {\n await fetchUpcoming()\n }\n\n void fetchInitialUpcoming()\n }\n }, [upcoming, fetchUpcoming])\n\n const minTime = useMemo(() => {\n if (date && isToday(date)) {\n return new Date()\n }\n\n return startOfDay(new Date())\n }, [date])\n\n return (\n <Drawer className={baseClass} slug={slug} title={modalTitle}>\n <Gutter className={`${baseClass}__scheduler`}>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('version:type')} required />\n <ul className={`${baseClass}__type`}>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'publish'}\n onChange={() => setType('publish')}\n option={{ label: t('version:publish'), value: 'publish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'unpublish'}\n onChange={() => setType('unpublish')}\n option={{ label: t('version:unpublish'), value: 'unpublish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n </ul>\n </div>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('general:time')} path={'time'} required />\n <DatePickerField\n id=\"time\"\n maxTime={endOfToday()}\n minDate={new Date()}\n minTime={minTime}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeFormat={schedulePublishConfig?.timeFormat}\n timeIntervals={schedulePublishConfig?.timeIntervals ?? 5}\n value={displayedValue}\n />\n {supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`timezone-picker`}\n onChange={setTimezone}\n options={supportedTimezones}\n selectedTimezone={timezone}\n />\n )}\n </div>\n {localeOptions.length > 0 && type === 'publish' && (\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('localization:localeToPublish')} />\n <ReactSelect\n onChange={(e) => setLocale(e as { label: string; value: string })}\n options={localeOptions}\n value={locale}\n />\n </div>\n )}\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"primary\"\n disabled={processing}\n id=\"scheduled-publish-save\"\n onClick={handleSave}\n type=\"button\"\n >\n {t('general:save')}\n </Button>\n {processing ? <span>{t('general:saving')}</span> : null}\n </div>\n </Gutter>\n <Gutter className={`${baseClass}__upcoming`}>\n <h4>{t('general:upcomingEvents')}</h4>\n {!upcoming && <ShimmerEffect />}\n {upcoming?.length === 0 && <Banner>{t('general:noUpcomingEventsScheduled')}</Banner>}\n {upcoming?.length > 0 && (\n <Table appearance=\"condensed\" columns={upcomingColumns} data={upcoming} />\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","endOfToday","isToday","startOfDay","transpose","formatAdminURL","qs","React","useCallback","useMemo","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useDocumentTitle","useServerFunctions","useTranslation","requests","Banner","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","TimezonePicker","buildUpcomingColumns","buildUpcomingScheduleWhere","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","defaultType","onUpcomingChange","schedulePublishConfig","config","admin","dateFormat","timezones","defaultTimezone","supportedTimezones","localization","routes","api","id","collectionSlug","globalSlug","title","i18n","t","schedulePublish","type","setType","useState","date","setDate","timezone","setTimezone","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localeOptions","options","locales","map","code","unshift","fetchUpcoming","query","sort","where","docs","post","apiRoute","path","body","stringify","headers","language","then","res","json","deleteHandler","current","length","deleteID","success","err","console","error","message","useEffect","handleSave","localeToPublish","doc","relationTo","String","undefined","global","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","onChangeDate","incomingDate","tzDateWithUTC","dateToUserTz","fetchInitialUpcoming","minTime","Date","_jsxs","className","_jsx","required","isSelected","onChange","option","readOnly","maxTime","minDate","e","pickerAppearance","timeFormat","timeIntervals","selectedTimezone","buttonStyle","disabled","onClick","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Column, SchedulePublish, Where } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { endOfToday, isToday, startOfDay } from 'date-fns'\nimport { transpose } from 'date-fns/transpose'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishType, UpcomingEvent } from './types.js'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { Radio } from '../../../fields/RadioGroup/Radio/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Banner } from '../../Banner/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DatePickerField } from '../../DatePicker/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { Gutter } from '../../Gutter/index.js'\nimport './index.css'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Table } from '../../Table/index.js'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\nimport { buildUpcomingScheduleWhere } from './buildUpcomingScheduleWhere.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n defaultType?: PublishType\n onUpcomingChange?: (hasUpcoming: boolean) => void\n schedulePublishConfig?: SchedulePublish\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({\n slug,\n defaultType,\n onUpcomingChange,\n schedulePublishConfig,\n}) => {\n const {\n config: {\n admin: {\n dateFormat,\n timezones: { defaultTimezone, supportedTimezones },\n },\n localization,\n routes: { api },\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { title } = useDocumentTitle()\n const { i18n, t } = useTranslation()\n const { schedulePublish } = useServerFunctions()\n const [type, setType] = React.useState<PublishType>(defaultType || 'publish')\n const [date, setDate] = React.useState<Date>()\n const [timezone, setTimezone] = React.useState<string>(defaultTimezone)\n const [locale, setLocale] = React.useState<{ label: string; value: string }>(defaultLocaleOption)\n const [processing, setProcessing] = React.useState(false)\n const modalTitle = t('general:schedulePublishFor', { title })\n const [upcoming, setUpcoming] = React.useState<UpcomingEvent[]>()\n const [upcomingColumns, setUpcomingColumns] = React.useState<Column[]>()\n const deleteHandlerRef = React.useRef<((id: number | string) => Promise<void>) | null>(() => null)\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const localeOptions = React.useMemo(() => {\n if (localization) {\n const options = localization.locales.map(({ code, label }) => ({\n label: getTranslation(label, i18n),\n value: code,\n }))\n\n options.unshift(defaultLocaleOption)\n\n return options\n }\n\n return []\n }, [localization, i18n])\n\n const fetchUpcoming = React.useCallback(async () => {\n const query: { sort: string; where: Where } = {\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n }\n\n const { docs } = await requests\n .post(formatAdminURL({ apiRoute: api, path: `/payload-jobs` }), {\n body: qs.stringify(query),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-Payload-HTTP-Method-Override': 'GET',\n },\n })\n .then((res) => res.json())\n\n setUpcomingColumns(\n buildUpcomingColumns({\n dateFormat,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n deleteHandler: deleteHandlerRef.current,\n docs,\n i18n,\n localization,\n supportedTimezones,\n t,\n }),\n )\n setUpcoming(docs)\n onUpcomingChange?.(docs.length > 0)\n }, [\n collectionSlug,\n globalSlug,\n api,\n i18n,\n dateFormat,\n localization,\n supportedTimezones,\n t,\n id,\n onUpcomingChange,\n ])\n\n const deleteHandler = React.useCallback(\n async (id: number | string) => {\n try {\n await schedulePublish({\n deleteID: id,\n })\n await fetchUpcoming()\n toast.success(t('general:deletedSuccessfully'))\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n },\n [fetchUpcoming, schedulePublish, t],\n )\n\n React.useEffect(() => {\n deleteHandlerRef.current = deleteHandler\n }, [deleteHandler])\n\n const handleSave = React.useCallback(async () => {\n if (!date) {\n return toast.error(t('general:noDateSelected'))\n }\n\n setProcessing(true)\n\n let localeToPublish: string\n\n if (typeof locale === 'object' && locale.value !== 'all' && type === 'publish') {\n localeToPublish = locale.value\n }\n\n try {\n await schedulePublish({\n type,\n date,\n doc: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: String(id),\n }\n : undefined,\n global: globalSlug || undefined,\n localeToPublish,\n timezone,\n })\n\n setDate(undefined)\n toast.success(t('version:scheduledSuccessfully'))\n void fetchUpcoming()\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n\n setProcessing(false)\n }, [\n date,\n locale,\n type,\n t,\n schedulePublish,\n collectionSlug,\n id,\n globalSlug,\n timezone,\n fetchUpcoming,\n ])\n\n const displayedValue = useMemo(() => {\n if (timezone && userTimezone && date) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(timezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(date).withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return date\n }, [timezone, date, userTimezone])\n\n const onChangeDate = useCallback(\n (incomingDate: Date) => {\n if (timezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(timezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setDate(dateWithTimezone || null)\n } else {\n setDate(incomingDate || null)\n }\n },\n [setDate, timezone],\n )\n\n React.useEffect(() => {\n if (!upcoming) {\n const fetchInitialUpcoming = async () => {\n await fetchUpcoming()\n }\n\n void fetchInitialUpcoming()\n }\n }, [upcoming, fetchUpcoming])\n\n const minTime = useMemo(() => {\n if (!date || isToday(date)) {\n return new Date()\n }\n\n return startOfDay(new Date())\n }, [date])\n\n return (\n <Drawer className={baseClass} slug={slug} title={modalTitle}>\n <Gutter className={`${baseClass}__scheduler`}>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('version:type')} required />\n <ul className={`${baseClass}__type`}>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'publish'}\n onChange={() => setType('publish')}\n option={{ label: t('version:publish'), value: 'publish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'unpublish'}\n onChange={() => setType('unpublish')}\n option={{ label: t('version:unpublish'), value: 'unpublish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n </ul>\n </div>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('general:time')} path={'time'} required />\n <DatePickerField\n id=\"time\"\n maxTime={endOfToday()}\n minDate={new Date()}\n minTime={minTime}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeFormat={schedulePublishConfig?.timeFormat}\n timeIntervals={schedulePublishConfig?.timeIntervals ?? 5}\n value={displayedValue}\n />\n {supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`timezone-picker`}\n onChange={setTimezone}\n options={supportedTimezones}\n selectedTimezone={timezone}\n />\n )}\n </div>\n {localeOptions.length > 0 && type === 'publish' && (\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('localization:localeToPublish')} />\n <ReactSelect\n onChange={(e) => setLocale(e as { label: string; value: string })}\n options={localeOptions}\n value={locale}\n />\n </div>\n )}\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"primary\"\n disabled={processing}\n id=\"scheduled-publish-save\"\n onClick={handleSave}\n type=\"button\"\n >\n {t('general:save')}\n </Button>\n {processing ? <span>{t('general:saving')}</span> : null}\n </div>\n </Gutter>\n <Gutter className={`${baseClass}__upcoming`}>\n <h4>{t('general:upcomingEvents')}</h4>\n {!upcoming && <ShimmerEffect />}\n {upcoming?.length === 0 && <Banner>{t('general:noUpcomingEventsScheduled')}</Banner>}\n {upcoming?.length > 0 && (\n <Table appearance=\"condensed\" columns={upcomingColumns} data={upcoming} />\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAa/D,OAAO,aAAa,CAAA;AAEpB,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,wBAA6B,qBAiRpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAc/D,OAAO,aAAa,CAAA;AAEpB,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,wBAA6B,qBAqRpD"}
@@ -8,6 +8,7 @@ import React, { useCallback, useEffect, useState } from 'react';
8
8
  import { useForm, useFormModified } from '../../forms/Form/context.js';
9
9
  import { FormSubmit } from '../../forms/Submit/index.js';
10
10
  import { useHotkey } from '../../hooks/useHotkey.js';
11
+ import { useBranchParam } from '../../providers/Branch/index.js';
11
12
  import { useConfig } from '../../providers/Config/index.js';
12
13
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
13
14
  import { useEditDepth } from '../../providers/EditDepth/index.js';
@@ -44,6 +45,7 @@ export function PublishButton({
44
45
  const {
45
46
  code: localeCode
46
47
  } = useLocale();
48
+ const branch = useBranchParam();
47
49
  const {
48
50
  localization,
49
51
  routes: {
@@ -85,6 +87,7 @@ export function PublishButton({
85
87
  return;
86
88
  }
87
89
  const params = qs.stringify({
90
+ branch,
88
91
  depth: 0,
89
92
  draft: true,
90
93
  'fallback-locale': 'null',
@@ -117,7 +120,7 @@ export function PublishButton({
117
120
  },
118
121
  skipValidation: true
119
122
  });
120
- }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id]);
123
+ }, [branch, disabled, localeCode, collectionSlug, globalSlug, submit, api, id]);
121
124
  useHotkey({
122
125
  cmdCtrlKey: true,
123
126
  editDepth,
@@ -135,6 +138,7 @@ export function PublishButton({
135
138
  return;
136
139
  }
137
140
  const params_0 = qs.stringify({
141
+ branch,
138
142
  depth: 0,
139
143
  locale: localeCode,
140
144
  ...(localizeStatusEnabled && {
@@ -158,7 +162,7 @@ export function PublishButton({
158
162
  setMostRecentVersionIsAutosaved(false);
159
163
  setHasPublishedDoc(true);
160
164
  }
161
- }, [localeCode, localizeStatusEnabled, api, collectionSlug, globalSlug, id, setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
165
+ }, [branch, localeCode, localizeStatusEnabled, api, collectionSlug, globalSlug, id, setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
162
166
  const publishLocale = useCallback(async locale => {
163
167
  if (uploadStatus === 'uploading') {
164
168
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasLocalizeStatusEnabled","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","localization","routes","api","i18n","t","shortLabel","entityConfig","useMemo","hasNewerVersions","canPublish","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","hasAutosave","saveDraft","params","stringify","depth","draft","locale","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","localizeStatusEnabled","publish","publishAllLocales","result","publishLocale","pathSegment","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","_jsx","Fragment","buttonId","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","undefined","type","_jsxs","className"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.css'\n\nexport function PublishButton({\n label: labelProp,\n}: { label?: string } & PublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const {\n localization,\n routes: { api },\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n const shortLabel = labelProp || t('version:publish')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const localizeStatusEnabled = hasLocalizeStatusEnabled(entityConfig)\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n ...(localizeStatusEnabled && { publishAllLocales: true }),\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n localeCode,\n localizeStatusEnabled,\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n submit,\n uploadStatus,\n ],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={isDefaultPublishAll ? publish : () => publishLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled\n ? ({ close }) => {\n return (\n <React.Fragment>\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll ? () => publishLocale(activeLocale.code) : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? (\n t('version:publishIn', { locale: activeLocaleLabel })\n ) : (\n <React.Fragment>\n <span className=\"publish-button__label--full\">{label}</span>\n <span className=\"publish-button__label--short\">{shortLabel}</span>\n </React.Fragment>\n )}\n </FormSubmit>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasLocalizeStatusEnabled","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useBranchParam","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","branch","localization","routes","api","i18n","t","shortLabel","entityConfig","useMemo","hasNewerVersions","canPublish","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","hasAutosave","saveDraft","params","stringify","depth","draft","locale","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","localizeStatusEnabled","publish","publishAllLocales","result","publishLocale","pathSegment","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","_jsx","Fragment","buttonId","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","undefined","type","_jsxs","className"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useBranchParam } from '../../providers/Branch/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.css'\n\nexport function PublishButton({\n label: labelProp,\n}: { label?: string } & PublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const branch = useBranchParam()\n const {\n localization,\n routes: { api },\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n const shortLabel = labelProp || t('version:publish')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const params = qs.stringify(\n {\n branch,\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [branch, disabled, localeCode, collectionSlug, globalSlug, submit, api, id])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const localizeStatusEnabled = hasLocalizeStatusEnabled(entityConfig)\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n branch,\n depth: 0,\n locale: localeCode,\n ...(localizeStatusEnabled && { publishAllLocales: true }),\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n branch,\n localeCode,\n localizeStatusEnabled,\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n submit,\n uploadStatus,\n ],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={isDefaultPublishAll ? publish : () => publishLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled\n ? ({ close }) => {\n return (\n <React.Fragment>\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll ? () => publishLocale(activeLocale.code) : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? (\n t('version:publishIn', { locale: activeLocaleLabel })\n ) : (\n <React.Fragment>\n <span className=\"publish-button__label--full\">{label}</span>\n <span className=\"publish-button__label--short\">{shortLabel}</span>\n </React.Fragment>\n )}\n </FormSubmit>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAWlD,KAAK,6BAA6B,GAAG;IACnC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBA2K5E"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAYlD,KAAK,6BAA6B,GAAG;IACnC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBA6K5E"}
@@ -4,6 +4,7 @@ import { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from
4
4
  import * as qs from 'qs-esm';
5
5
  import React, { useCallback } from 'react';
6
6
  import { toast } from 'sonner';
7
+ import { useBranchParam } from '../../providers/Branch/index.js';
7
8
  import { useConfig } from '../../providers/Config/index.js';
8
9
  import { useLocale } from '../../providers/Locale/index.js';
9
10
  import { useRouteCache } from '../../providers/RouteCache/index.js';
@@ -41,6 +42,7 @@ export function PublishManyDrawerContent(props) {
41
42
  const {
42
43
  code: locale
43
44
  } = useLocale();
45
+ const branch = useBranchParam();
44
46
  const router = useRouter();
45
47
  const searchParams = useSearchParams();
46
48
  const {
@@ -82,13 +84,14 @@ export function PublishManyDrawerContent(props) {
82
84
  });
83
85
  }
84
86
  return qs.stringify({
87
+ branch,
85
88
  locale,
86
89
  select: {},
87
90
  where: combineWhereConstraints(whereConstraints)
88
91
  }, {
89
92
  addQueryPrefix: true
90
93
  });
91
- }, [collection, searchParams, selectAll, ids, locale, where]);
94
+ }, [branch, collection, searchParams, selectAll, ids, locale, where]);
92
95
  const handlePublish = useCallback(async () => {
93
96
  const url = formatAdminURL({
94
97
  apiRoute: api,
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["getTranslation","combineWhereConstraints","formatAdminURL","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","useTranslation","requests","parseSearchParams","ConfirmationModal","PublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","clearRouteCache","config","routes","api","code","locale","router","searchParams","i18n","t","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handlePublish","url","apiRoute","path","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","cancelLabel","confirmingLabel","confirmLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\ntype PublishManyDrawerContentProps = {\n collection: PublishManyProps['collection']\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n}\n\nexport function PublishManyDrawerContent(props: PublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const { clearRouteCache } = useRouteCache()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n\n const router = useRouter()\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'published',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const handlePublish = useCallback(async () => {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${slug}${queryString}&draft=true`,\n })\n await requests\n .patch(url, {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}\n cancelLabel={t('general:cancel')}\n confirmingLabel={t('version:publishing')}\n confirmLabel={t('general:confirm')}\n heading={t('version:confirmPublish')}\n modalSlug={drawerSlug}\n onConfirm={handlePublish}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["getTranslation","combineWhereConstraints","formatAdminURL","mergeListSearchAndWhere","qs","React","useCallback","toast","useBranchParam","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","useTranslation","requests","parseSearchParams","ConfirmationModal","PublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","clearRouteCache","config","routes","api","code","locale","branch","router","searchParams","i18n","t","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handlePublish","url","apiRoute","path","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","cancelLabel","confirmingLabel","confirmLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishManyProps } from './index.js'\n\nimport { useBranchParam } from '../../providers/Branch/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\ntype PublishManyDrawerContentProps = {\n collection: PublishManyProps['collection']\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n}\n\nexport function PublishManyDrawerContent(props: PublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const { clearRouteCache } = useRouteCache()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const branch = useBranchParam()\n\n const router = useRouter()\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'published',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n branch,\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [branch, collection, searchParams, selectAll, ids, locale, where])\n\n const handlePublish = useCallback(async () => {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${slug}${queryString}&draft=true`,\n })\n await requests\n .patch(url, {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}\n cancelLabel={t('general:cancel')}\n confirmingLabel={t('version:publishing')}\n confirmLabel={t('general:confirm')}\n heading={t('version:confirmPublish')}\n modalSlug={drawerSlug}\n onConfirm={handlePublish}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -285,9 +285,7 @@ export const QueryPresetBar = ({
285
285
  },
286
286
  children: activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')
287
287
  }), queryPresetPermissions?.update && /*#__PURE__*/_jsx(PopupList.Button, {
288
- icon: /*#__PURE__*/_jsx(EditIcon, {
289
- size: 16
290
- }),
288
+ icon: /*#__PURE__*/_jsx(EditIcon, {}),
291
289
  id: "edit-preset",
292
290
  onClick: () => {
293
291
  close();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","transformColumnsToPreferences","transformColumnsToSearchParams","qs","React","Fragment","useCallback","useEffect","useMemo","useState","CheckIcon","EditIcon","GearIcon","PlusIcon","RefreshIcon","TrashIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","FilterTrigger","useListDrawer","useModal","Popup","PopupList","Translation","deletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","openModal","presets","setPresets","i18n","t","config","routes","api","apiRoute","serverURL","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openPresetDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","openListDrawer","collectionSlugs","selectedCollection","fetchPresets","where","and","queryString","stringify","limit","addQueryPrefix","url","path","response","fetch","credentials","ok","data","json","docs","_error","handlePresetChange","preset","columns","undefined","groupBy","buttonLabel","title","label","labels","singular","handleClearPreset","e","stopPropagation","handleDeletePreset","method","handleResetPreset","saveCurrentChanges","body","JSON","headers","presetColumns","presetWhere","presetGroupBy","queryColumns","parse","columnsMatch","whereMatch","groupByMatch","isModified","hasModifiedPreset","_jsxs","_jsx","className","horizontalAlign","portalClassName","render","close","RadioGroup","map","isActive","RadioGroupItem","active","onClick","Divider","MenuItem","size","Button","icon","update","isShared","delete","length","create","plural","renderButton","onKeyDown","Boolean","onClear","popupActive","showBadge","verticalAlign","initialData","onSave","doc","redirectAfterCreate","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect","elements","1","children","i18nKey","variables","confirmLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["'use client'\nimport type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatAdminURL,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { CheckIcon } from '../../../icons/Check/index.js'\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { RefreshIcon } from '../../../icons/Refresh/index.js'\nimport { TrashIcon } from '../../../icons/Trash/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { FilterTrigger } from '../../FilterTrigger/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { useModal } from '../../Modal/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport './index.css'\n\nconst deletePresetModalSlug = 'delete-preset-confirmation'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n const { openModal } = useModal()\n const [presets, setPresets] = useState<QueryPreset[]>([])\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openPresetDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { openDrawer: openListDrawer }] = useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n // Fetch presets for the popup\n const fetchPresets = useCallback(async () => {\n try {\n const where = {\n and: [{ isTemp: { not_equals: true } }, { relatedCollection: { equals: collectionSlug } }],\n }\n const queryString = qs.stringify({ limit: 50, where }, { addQueryPrefix: true })\n const url = formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (response.ok) {\n const data = await response.json()\n setPresets(data.docs || [])\n }\n } catch (_error) {\n // Silently fail - presets will remain empty\n }\n }, [apiRoute, collectionSlug, serverURL])\n\n useEffect(() => {\n void fetchPresets()\n }, [fetchPresets])\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const buttonLabel =\n activePreset?.title ||\n t('general:selectLabel', { label: getTranslation(presetConfig?.labels?.singular, i18n) })\n\n const handleClearPreset = useCallback(\n async (e: React.MouseEvent) => {\n e.stopPropagation()\n await refineListData(\n {\n columns: undefined,\n groupBy: '',\n preset: '',\n where: undefined,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const handleDeletePreset = useCallback(async () => {\n if (!activePreset?.id) {\n return\n }\n\n try {\n const url = formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n credentials: 'include',\n method: 'DELETE',\n })\n\n if (response.ok) {\n // Clear the active preset and refresh the list\n await refineListData(\n {\n columns: undefined,\n groupBy: '',\n preset: '',\n where: undefined,\n },\n false,\n )\n void fetchPresets()\n }\n } catch (_error) {\n // Silently fail\n }\n }, [activePreset?.id, apiRoute, fetchPresets, refineListData, serverURL])\n\n const handleResetPreset = useCallback(async () => {\n if (!activePreset) {\n return\n }\n // Use the same pattern as handlePresetChange for consistency\n await refineListData(\n {\n columns: activePreset.columns ? transformColumnsToSearchParams(activePreset.columns) : [], // explicitly empty to clear user preferences fallback\n groupBy: activePreset.groupBy || '',\n preset: activePreset.id,\n where: activePreset.where,\n },\n false, // not modified - we're resetting to preset's original state\n )\n }, [activePreset, refineListData])\n\n const saveCurrentChanges = useCallback(async () => {\n if (!activePreset?.id) {\n return\n }\n try {\n const url = formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n })\n\n if (response.ok) {\n setQueryModified(false)\n void fetchPresets()\n }\n } catch (_error) {\n // Silently fail\n }\n }, [\n activePreset?.id,\n apiRoute,\n fetchPresets,\n query.columns,\n query.groupBy,\n query.where,\n serverURL,\n setQueryModified,\n ])\n\n // Detect if current query differs from preset on initial load\n useEffect(() => {\n if (!activePreset) {\n return\n }\n\n const presetColumns = activePreset.columns\n ? transformColumnsToSearchParams(activePreset.columns)\n : []\n const presetWhere = activePreset.where\n const presetGroupBy = activePreset.groupBy || ''\n\n // Normalize query.columns - it may be a JSON string from URL or an array\n let queryColumns = query.columns || []\n if (typeof queryColumns === 'string') {\n try {\n queryColumns = JSON.parse(queryColumns)\n } catch {\n queryColumns = []\n }\n }\n\n // Compare current query with preset values\n const columnsMatch = JSON.stringify(queryColumns) === JSON.stringify(presetColumns)\n const whereMatch = JSON.stringify(query.where) === JSON.stringify(presetWhere)\n const groupByMatch = (query.groupBy || '') === presetGroupBy\n\n const isModified = !columnsMatch || !whereMatch || !groupByMatch\n setQueryModified(isModified)\n }, [activePreset, query.columns, query.where, query.groupBy, setQueryModified])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <Popup\n className={`${baseClass}__popup`}\n horizontalAlign=\"left\"\n portalClassName={`${baseClass}__popup-content`}\n render={({ close }) => (\n <Fragment>\n <PopupList.RadioGroup>\n {presets.map((preset) => {\n const isActive = activePreset?.id === preset.id\n return (\n <PopupList.RadioGroupItem\n active={isActive}\n key={preset.id}\n onClick={async () => {\n close()\n await handlePresetChange(preset)\n }}\n >\n {preset.title}\n </PopupList.RadioGroupItem>\n )\n })}\n </PopupList.RadioGroup>\n {activePreset && (\n <Fragment>\n <PopupList.Divider />\n <PopupList.MenuItem size=\"small\">\n {hasModifiedPreset && (\n <PopupList.Button\n icon={<RefreshIcon size={16} />}\n id=\"reset-preset\"\n onClick={async () => {\n close()\n await handleResetPreset()\n }}\n >\n {t('general:reset')}\n </PopupList.Button>\n )}\n {hasModifiedPreset && queryPresetPermissions?.update && (\n <PopupList.Button\n icon={<CheckIcon size={16} />}\n id=\"save-preset\"\n onClick={async () => {\n close()\n await saveCurrentChanges()\n }}\n >\n {activePreset?.isShared\n ? t('general:updateForEveryone')\n : t('fields:saveChanges')}\n </PopupList.Button>\n )}\n {queryPresetPermissions?.update && (\n <PopupList.Button\n icon={<EditIcon size={16} />}\n id=\"edit-preset\"\n onClick={() => {\n close()\n openPresetDrawer()\n }}\n >\n {t('general:editLabel', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n })}\n </PopupList.Button>\n )}\n {queryPresetPermissions?.delete && (\n <PopupList.Button\n className={`${baseClass}__delete`}\n icon={<TrashIcon size={16} />}\n id=\"delete-preset\"\n onClick={() => {\n close()\n openModal(deletePresetModalSlug)\n }}\n >\n {t('general:deleteLabel', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n })}\n </PopupList.Button>\n )}\n </PopupList.MenuItem>\n </Fragment>\n )}\n {(presets.length > 0 || activePreset) && <PopupList.Divider />}\n <PopupList.MenuItem size=\"small\">\n {queryPresetPermissions?.create && (\n <PopupList.Button\n icon={<PlusIcon size={16} />}\n id=\"create-new-preset\"\n onClick={() => {\n close()\n openCreateNewDrawer()\n }}\n >\n {t('general:createNewLabel', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n })}\n </PopupList.Button>\n )}\n <PopupList.Button\n icon={<GearIcon size={16} />}\n id=\"manage-presets\"\n onClick={() => {\n close()\n openListDrawer()\n }}\n >\n {t('general:manageLabel', {\n label: getTranslation(presetConfig?.labels?.plural, i18n),\n })}\n </PopupList.Button>\n </PopupList.MenuItem>\n </Fragment>\n )}\n renderButton={({ active, onClick, onKeyDown }) => (\n <FilterTrigger\n className={`${baseClass}__trigger`}\n id=\"select-preset\"\n isActive={Boolean(activePreset)}\n onClear={handleClearPreset}\n onClick={onClick}\n onKeyDown={onKeyDown}\n popupActive={active}\n showBadge={hasModifiedPreset}\n >\n {buttonLabel}\n </FilterTrigger>\n )}\n size=\"large\"\n verticalAlign=\"bottom\"\n />\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n void fetchPresets()\n }}\n redirectAfterCreate={false}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n void fetchPresets()\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n void fetchPresets()\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n void fetchPresets()\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset?.title,\n }}\n />\n }\n confirmLabel={t('general:delete')}\n heading={t('general:confirmDeletion')}\n modalSlug={deletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","transformColumnsToPreferences","transformColumnsToSearchParams","qs","React","Fragment","useCallback","useEffect","useMemo","useState","CheckIcon","EditIcon","GearIcon","PlusIcon","RefreshIcon","TrashIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","FilterTrigger","useListDrawer","useModal","Popup","PopupList","Translation","deletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","openModal","presets","setPresets","i18n","t","config","routes","api","apiRoute","serverURL","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openPresetDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","openListDrawer","collectionSlugs","selectedCollection","fetchPresets","where","and","queryString","stringify","limit","addQueryPrefix","url","path","response","fetch","credentials","ok","data","json","docs","_error","handlePresetChange","preset","columns","undefined","groupBy","buttonLabel","title","label","labels","singular","handleClearPreset","e","stopPropagation","handleDeletePreset","method","handleResetPreset","saveCurrentChanges","body","JSON","headers","presetColumns","presetWhere","presetGroupBy","queryColumns","parse","columnsMatch","whereMatch","groupByMatch","isModified","hasModifiedPreset","_jsxs","_jsx","className","horizontalAlign","portalClassName","render","close","RadioGroup","map","isActive","RadioGroupItem","active","onClick","Divider","MenuItem","size","Button","icon","update","isShared","delete","length","create","plural","renderButton","onKeyDown","Boolean","onClear","popupActive","showBadge","verticalAlign","initialData","onSave","doc","redirectAfterCreate","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect","elements","1","children","i18nKey","variables","confirmLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["'use client'\nimport type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatAdminURL,\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { CheckIcon } from '../../../icons/Check/index.js'\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { GearIcon } from '../../../icons/Gear/index.js'\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { RefreshIcon } from '../../../icons/Refresh/index.js'\nimport { TrashIcon } from '../../../icons/Trash/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { FilterTrigger } from '../../FilterTrigger/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { useModal } from '../../Modal/index.js'\nimport { Popup, PopupList } from '../../Popup/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport './index.css'\n\nconst deletePresetModalSlug = 'delete-preset-confirmation'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n const { openModal } = useModal()\n const [presets, setPresets] = useState<QueryPreset[]>([])\n\n const { i18n, t } = useTranslation()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openPresetDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { openDrawer: openListDrawer }] = useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n // Fetch presets for the popup\n const fetchPresets = useCallback(async () => {\n try {\n const where = {\n and: [{ isTemp: { not_equals: true } }, { relatedCollection: { equals: collectionSlug } }],\n }\n const queryString = qs.stringify({ limit: 50, where }, { addQueryPrefix: true })\n const url = formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (response.ok) {\n const data = await response.json()\n setPresets(data.docs || [])\n }\n } catch (_error) {\n // Silently fail - presets will remain empty\n }\n }, [apiRoute, collectionSlug, serverURL])\n\n useEffect(() => {\n void fetchPresets()\n }, [fetchPresets])\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const buttonLabel =\n activePreset?.title ||\n t('general:selectLabel', { label: getTranslation(presetConfig?.labels?.singular, i18n) })\n\n const handleClearPreset = useCallback(\n async (e: React.MouseEvent) => {\n e.stopPropagation()\n await refineListData(\n {\n columns: undefined,\n groupBy: '',\n preset: '',\n where: undefined,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const handleDeletePreset = useCallback(async () => {\n if (!activePreset?.id) {\n return\n }\n\n try {\n const url = formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n credentials: 'include',\n method: 'DELETE',\n })\n\n if (response.ok) {\n // Clear the active preset and refresh the list\n await refineListData(\n {\n columns: undefined,\n groupBy: '',\n preset: '',\n where: undefined,\n },\n false,\n )\n void fetchPresets()\n }\n } catch (_error) {\n // Silently fail\n }\n }, [activePreset?.id, apiRoute, fetchPresets, refineListData, serverURL])\n\n const handleResetPreset = useCallback(async () => {\n if (!activePreset) {\n return\n }\n // Use the same pattern as handlePresetChange for consistency\n await refineListData(\n {\n columns: activePreset.columns ? transformColumnsToSearchParams(activePreset.columns) : [], // explicitly empty to clear user preferences fallback\n groupBy: activePreset.groupBy || '',\n preset: activePreset.id,\n where: activePreset.where,\n },\n false, // not modified - we're resetting to preset's original state\n )\n }, [activePreset, refineListData])\n\n const saveCurrentChanges = useCallback(async () => {\n if (!activePreset?.id) {\n return\n }\n try {\n const url = formatAdminURL({\n apiRoute,\n path: `/${queryPresetsSlug}/${activePreset.id}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n })\n\n if (response.ok) {\n setQueryModified(false)\n void fetchPresets()\n }\n } catch (_error) {\n // Silently fail\n }\n }, [\n activePreset?.id,\n apiRoute,\n fetchPresets,\n query.columns,\n query.groupBy,\n query.where,\n serverURL,\n setQueryModified,\n ])\n\n // Detect if current query differs from preset on initial load\n useEffect(() => {\n if (!activePreset) {\n return\n }\n\n const presetColumns = activePreset.columns\n ? transformColumnsToSearchParams(activePreset.columns)\n : []\n const presetWhere = activePreset.where\n const presetGroupBy = activePreset.groupBy || ''\n\n // Normalize query.columns - it may be a JSON string from URL or an array\n let queryColumns = query.columns || []\n if (typeof queryColumns === 'string') {\n try {\n queryColumns = JSON.parse(queryColumns)\n } catch {\n queryColumns = []\n }\n }\n\n // Compare current query with preset values\n const columnsMatch = JSON.stringify(queryColumns) === JSON.stringify(presetColumns)\n const whereMatch = JSON.stringify(query.where) === JSON.stringify(presetWhere)\n const groupByMatch = (query.groupBy || '') === presetGroupBy\n\n const isModified = !columnsMatch || !whereMatch || !groupByMatch\n setQueryModified(isModified)\n }, [activePreset, query.columns, query.where, query.groupBy, setQueryModified])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <Popup\n className={`${baseClass}__popup`}\n horizontalAlign=\"left\"\n portalClassName={`${baseClass}__popup-content`}\n render={({ close }) => (\n <Fragment>\n <PopupList.RadioGroup>\n {presets.map((preset) => {\n const isActive = activePreset?.id === preset.id\n return (\n <PopupList.RadioGroupItem\n active={isActive}\n key={preset.id}\n onClick={async () => {\n close()\n await handlePresetChange(preset)\n }}\n >\n {preset.title}\n </PopupList.RadioGroupItem>\n )\n })}\n </PopupList.RadioGroup>\n {activePreset && (\n <Fragment>\n <PopupList.Divider />\n <PopupList.MenuItem size=\"small\">\n {hasModifiedPreset && (\n <PopupList.Button\n icon={<RefreshIcon size={16} />}\n id=\"reset-preset\"\n onClick={async () => {\n close()\n await handleResetPreset()\n }}\n >\n {t('general:reset')}\n </PopupList.Button>\n )}\n {hasModifiedPreset && queryPresetPermissions?.update && (\n <PopupList.Button\n icon={<CheckIcon size={16} />}\n id=\"save-preset\"\n onClick={async () => {\n close()\n await saveCurrentChanges()\n }}\n >\n {activePreset?.isShared\n ? t('general:updateForEveryone')\n : t('fields:saveChanges')}\n </PopupList.Button>\n )}\n {queryPresetPermissions?.update && (\n <PopupList.Button\n icon={<EditIcon />}\n id=\"edit-preset\"\n onClick={() => {\n close()\n openPresetDrawer()\n }}\n >\n {t('general:editLabel', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n })}\n </PopupList.Button>\n )}\n {queryPresetPermissions?.delete && (\n <PopupList.Button\n className={`${baseClass}__delete`}\n icon={<TrashIcon size={16} />}\n id=\"delete-preset\"\n onClick={() => {\n close()\n openModal(deletePresetModalSlug)\n }}\n >\n {t('general:deleteLabel', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n })}\n </PopupList.Button>\n )}\n </PopupList.MenuItem>\n </Fragment>\n )}\n {(presets.length > 0 || activePreset) && <PopupList.Divider />}\n <PopupList.MenuItem size=\"small\">\n {queryPresetPermissions?.create && (\n <PopupList.Button\n icon={<PlusIcon size={16} />}\n id=\"create-new-preset\"\n onClick={() => {\n close()\n openCreateNewDrawer()\n }}\n >\n {t('general:createNewLabel', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n })}\n </PopupList.Button>\n )}\n <PopupList.Button\n icon={<GearIcon size={16} />}\n id=\"manage-presets\"\n onClick={() => {\n close()\n openListDrawer()\n }}\n >\n {t('general:manageLabel', {\n label: getTranslation(presetConfig?.labels?.plural, i18n),\n })}\n </PopupList.Button>\n </PopupList.MenuItem>\n </Fragment>\n )}\n renderButton={({ active, onClick, onKeyDown }) => (\n <FilterTrigger\n className={`${baseClass}__trigger`}\n id=\"select-preset\"\n isActive={Boolean(activePreset)}\n onClear={handleClearPreset}\n onClick={onClick}\n onKeyDown={onKeyDown}\n popupActive={active}\n showBadge={hasModifiedPreset}\n >\n {buttonLabel}\n </FilterTrigger>\n )}\n size=\"large\"\n verticalAlign=\"bottom\"\n />\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n void fetchPresets()\n }}\n redirectAfterCreate={false}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n void fetchPresets()\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n void fetchPresets()\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n void fetchPresets()\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset?.title,\n }}\n />\n }\n confirmLabel={t('general:delete')}\n heading={t('general:confirmDeletion')}\n modalSlug={deletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,6 @@
6
6
  justify-content: center;
7
7
  flex-shrink: 0;
8
8
  color: var(--color-icon-secondary);
9
- transition: color 100ms;
10
9
 
11
10
  &:hover {
12
11
  color: var(--color-icon);
@@ -8,7 +8,6 @@
8
8
  background: var(--color-bg);
9
9
  height: 1.25rem;
10
10
  margin: 0;
11
- transition: border 0.2s cubic-bezier(0.2, 0, 0, 1);
12
11
 
13
12
  &:focus,
14
13
  &:focus-visible {
@@ -8,11 +8,11 @@
8
8
  align-items: center;
9
9
  max-width: 9.375rem;
10
10
  color: currentColor;
11
- padding-left: var(--spacer-1);
11
+ padding-left: var(--spacer-1-5);
12
12
  }
13
13
 
14
14
  .multi-value-label--disabled {
15
- padding-right: var(--spacer-1);
15
+ padding-right: var(--spacer-1-5);
16
16
  }
17
17
 
18
18
  .multi-value-label__text {
@@ -18,9 +18,6 @@
18
18
  line-height: var(--text-body-medium-line-height);
19
19
  -webkit-appearance: none;
20
20
  appearance: none;
21
- transition-property: box-shadow, background-color;
22
- transition-duration: 100ms;
23
- transition-timing-function: cubic-bezier(0, 0.2, 0.2, 1);
24
21
  height: auto;
25
22
  padding-block: calc(var(--spacer-1) + 1px);
26
23
  padding-inline: var(--field-padding-inline) var(--spacer-5);
@@ -1,4 +1,3 @@
1
1
  import React from 'react';
2
- import './Pagination.css';
3
2
  export declare const RelationshipTablePagination: React.FC;
4
3
  //# sourceMappingURL=Pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/Pagination.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,kBAAkB,CAAA;AAIzB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAuC/C,CAAA"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/elements/RelationshipTable/Pagination.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAoB/C,CAAA"}