@payloadcms/ui 4.0.0-internal.567a487 → 4.0.0-internal.5a4aa81

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 (459) hide show
  1. package/dist/elements/AppHeader/index.css +0 -4
  2. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  3. package/dist/elements/AppHeader/index.js +1 -4
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +2 -6
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  9. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  11. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js +4 -9
  14. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  15. package/dist/elements/Button/index.d.ts.map +1 -1
  16. package/dist/elements/Button/index.js +2 -0
  17. package/dist/elements/Button/index.js.map +1 -1
  18. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  19. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +10 -3
  20. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  21. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  22. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  23. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  24. package/dist/elements/ColumnSelection/Popup.js +3 -3
  25. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  26. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +10 -0
  27. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +1 -0
  28. package/dist/elements/ColumnSelection/matchesColumnSearch.js +21 -0
  29. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +1 -0
  30. package/dist/{utilities/matchesSearchQuery.spec.js → elements/ColumnSelection/matchesColumnSearch.spec.js} +29 -29
  31. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +1 -0
  32. package/dist/elements/Combobox/index.css +23 -84
  33. package/dist/elements/Combobox/index.d.ts +0 -21
  34. package/dist/elements/Combobox/index.d.ts.map +1 -1
  35. package/dist/elements/Combobox/index.js +21 -66
  36. package/dist/elements/Combobox/index.js.map +1 -1
  37. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  38. package/dist/elements/CopyLocaleData/index.js +8 -9
  39. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  40. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  41. package/dist/elements/DeleteDocument/index.js +2 -9
  42. package/dist/elements/DeleteDocument/index.js.map +1 -1
  43. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  44. package/dist/elements/DeleteMany/index.js +3 -7
  45. package/dist/elements/DeleteMany/index.js.map +1 -1
  46. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +3 -5
  47. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  48. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -32
  49. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  50. package/dist/elements/Dropzone/index.css +10 -4
  51. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  52. package/dist/elements/DuplicateDocument/index.js +3 -9
  53. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  54. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  55. package/dist/elements/EditMany/DrawerContent.js +3 -7
  56. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  57. package/dist/elements/FileManager/index.css +0 -30
  58. package/dist/elements/FileManager/index.d.ts.map +1 -1
  59. package/dist/elements/FileManager/index.js +379 -287
  60. package/dist/elements/FileManager/index.js.map +1 -1
  61. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  62. package/dist/elements/Hierarchy/ColumnBrowser/index.js +1 -4
  63. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  64. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  65. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -4
  66. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  67. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +1 -2
  68. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  69. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +0 -2
  70. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  71. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  72. package/dist/elements/Hierarchy/Modal/index.js +0 -3
  73. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  74. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  75. package/dist/elements/Hierarchy/MoveMany/index.js +3 -7
  76. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  77. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  78. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -6
  79. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  80. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  81. package/dist/elements/Hierarchy/Tree/useChildren.js +1 -4
  82. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  83. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  84. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +4 -9
  85. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  86. package/dist/elements/LivePreview/Window/index.js +1 -1
  87. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  88. package/dist/elements/Localizer/index.js +1 -1
  89. package/dist/elements/Localizer/index.js.map +1 -1
  90. package/dist/elements/Nav/context.js +2 -2
  91. package/dist/elements/Nav/context.js.map +1 -1
  92. package/dist/elements/Nav/getNavPrefs.d.ts +0 -6
  93. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  94. package/dist/elements/Nav/getNavPrefs.js +46 -14
  95. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  96. package/dist/elements/NavGroup/index.js +1 -1
  97. package/dist/elements/NavGroup/index.js.map +1 -1
  98. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  99. package/dist/elements/PermanentlyDeleteButton/index.js +1 -4
  100. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  101. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  102. package/dist/elements/PublishButton/ScheduleDrawer/index.js +8 -30
  103. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  104. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  105. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  106. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  107. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  108. package/dist/elements/PublishButton/index.js +7 -12
  109. package/dist/elements/PublishButton/index.js.map +1 -1
  110. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  111. package/dist/elements/PublishMany/DrawerContent.js +3 -7
  112. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  113. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  114. package/dist/elements/RestoreButton/index.js +1 -4
  115. package/dist/elements/RestoreButton/index.js.map +1 -1
  116. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  117. package/dist/elements/RestoreMany/index.js +2 -6
  118. package/dist/elements/RestoreMany/index.js.map +1 -1
  119. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  120. package/dist/elements/SaveDraftButton/index.js +4 -18
  121. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  122. package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
  123. package/dist/elements/SchedulePublishButton/index.js +1 -7
  124. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  125. package/dist/elements/Status/index.d.ts.map +1 -1
  126. package/dist/elements/Status/index.js +5 -19
  127. package/dist/elements/Status/index.js.map +1 -1
  128. package/dist/elements/StepNav/index.css +0 -7
  129. package/dist/elements/StepNav/index.d.ts.map +1 -1
  130. package/dist/elements/StepNav/index.js +24 -16
  131. package/dist/elements/StepNav/index.js.map +1 -1
  132. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  133. package/dist/elements/Table/OrderableTable.js +3 -6
  134. package/dist/elements/Table/OrderableTable.js.map +1 -1
  135. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  136. package/dist/elements/Table/RelationshipProvider/index.js +25 -32
  137. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  138. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  139. package/dist/elements/UnpublishButton/index.js +4 -8
  140. package/dist/elements/UnpublishButton/index.js.map +1 -1
  141. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  142. package/dist/elements/UnpublishMany/DrawerContent.js +3 -7
  143. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  144. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  145. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  146. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  147. package/dist/elements/Upload/index.css +39 -32
  148. package/dist/elements/Upload/index.d.ts.map +1 -1
  149. package/dist/elements/Upload/index.js +37 -99
  150. package/dist/elements/Upload/index.js.map +1 -1
  151. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  152. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  153. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  154. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  155. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  156. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  157. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  158. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  159. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  160. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  161. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  162. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  163. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  164. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  165. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -4
  166. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  167. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  168. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  169. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  170. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  171. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  172. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  173. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  174. package/dist/elements/WhereBuilder/index.js +15 -4
  175. package/dist/elements/WhereBuilder/index.js.map +1 -1
  176. package/dist/exports/client/index.d.ts +0 -17
  177. package/dist/exports/client/index.d.ts.map +1 -1
  178. package/dist/exports/client/index.js +1 -1
  179. package/dist/exports/client/index.js.map +3 -3
  180. package/dist/fields/Array/index.d.ts.map +1 -1
  181. package/dist/fields/Array/index.js +2 -3
  182. package/dist/fields/Array/index.js.map +1 -1
  183. package/dist/fields/Blocks/index.d.ts.map +1 -1
  184. package/dist/fields/Blocks/index.js +2 -3
  185. package/dist/fields/Blocks/index.js.map +1 -1
  186. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  187. package/dist/fields/FieldLabel/index.js +4 -5
  188. package/dist/fields/FieldLabel/index.js.map +1 -1
  189. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  190. package/dist/fields/Relationship/Input.js +3 -8
  191. package/dist/fields/Relationship/Input.js.map +1 -1
  192. package/dist/fields/Slug/index.d.ts.map +1 -1
  193. package/dist/fields/Slug/index.js +2 -3
  194. package/dist/fields/Slug/index.js.map +1 -1
  195. package/dist/fields/Upload/Input.d.ts.map +1 -1
  196. package/dist/fields/Upload/Input.js +47 -23
  197. package/dist/fields/Upload/Input.js.map +1 -1
  198. package/dist/fields/Upload/Input.spec.js +242 -0
  199. package/dist/fields/Upload/Input.spec.js.map +1 -0
  200. package/dist/fields/shared/index.d.ts +1 -1
  201. package/dist/fields/shared/index.d.ts.map +1 -1
  202. package/dist/fields/shared/index.js.map +1 -1
  203. package/dist/forms/Form/index.d.ts.map +1 -1
  204. package/dist/forms/Form/index.js +2 -3
  205. package/dist/forms/Form/index.js.map +1 -1
  206. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  207. package/dist/forms/NullifyField/index.js +2 -3
  208. package/dist/forms/NullifyField/index.js.map +1 -1
  209. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  210. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  211. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  212. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  213. package/dist/hooks/usePayloadAPI.js +42 -47
  214. package/dist/hooks/usePayloadAPI.js.map +1 -1
  215. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  216. package/dist/providers/DocumentInfo/index.js +3 -8
  217. package/dist/providers/DocumentInfo/index.js.map +1 -1
  218. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
  219. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  220. package/dist/providers/DocumentInfo/useGetDocPermissions.js +1 -3
  221. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  222. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  223. package/dist/providers/Hierarchy/index.js +1 -4
  224. package/dist/providers/Hierarchy/index.js.map +1 -1
  225. package/dist/providers/Locale/index.d.ts +1 -5
  226. package/dist/providers/Locale/index.d.ts.map +1 -1
  227. package/dist/providers/Locale/index.js +61 -139
  228. package/dist/providers/Locale/index.js.map +1 -1
  229. package/dist/providers/Preferences/index.d.ts +1 -3
  230. package/dist/providers/Preferences/index.d.ts.map +1 -1
  231. package/dist/providers/Preferences/index.js +3 -9
  232. package/dist/providers/Preferences/index.js.map +1 -1
  233. package/dist/providers/Selection/index.d.ts.map +1 -1
  234. package/dist/providers/Selection/index.js +2 -3
  235. package/dist/providers/Selection/index.js.map +1 -1
  236. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  237. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  238. package/dist/providers/ServerFunctions/index.js +15 -0
  239. package/dist/providers/ServerFunctions/index.js.map +1 -1
  240. package/dist/styles.css +1 -1
  241. package/dist/templates/Default/index.d.ts.map +1 -1
  242. package/dist/templates/Default/index.js +37 -43
  243. package/dist/templates/Default/index.js.map +1 -1
  244. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  245. package/dist/utilities/formatMetadata.js +0 -5
  246. package/dist/utilities/formatMetadata.js.map +1 -1
  247. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  248. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  249. package/dist/utilities/getFilesFromClipboard.js +49 -0
  250. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  251. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  252. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  253. package/dist/utilities/getHasScheduledPublish.js +2 -5
  254. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  255. package/dist/utilities/getVersions.d.ts +1 -6
  256. package/dist/utilities/getVersions.d.ts.map +1 -1
  257. package/dist/utilities/getVersions.js +0 -5
  258. package/dist/utilities/getVersions.js.map +1 -1
  259. package/dist/utilities/initReq.d.ts.map +1 -1
  260. package/dist/utilities/initReq.js +0 -8
  261. package/dist/utilities/initReq.js.map +1 -1
  262. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  263. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  264. package/dist/utilities/schedulePublishHandler.js +68 -14
  265. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  266. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  267. package/dist/utilities/serverFunctionRegistry.js +2 -7
  268. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  269. package/dist/utilities/slugify.d.ts.map +1 -1
  270. package/dist/utilities/slugify.js +3 -0
  271. package/dist/utilities/slugify.js.map +1 -1
  272. package/dist/views/API/index.client.d.ts.map +1 -1
  273. package/dist/views/API/index.client.js +4 -13
  274. package/dist/views/API/index.client.js.map +1 -1
  275. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  276. package/dist/views/Document/getDocumentView.js +2 -21
  277. package/dist/views/Document/getDocumentView.js.map +1 -1
  278. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  279. package/dist/views/Document/getMetaBySegment.js +0 -9
  280. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  281. package/dist/views/Document/index.d.ts +1 -3
  282. package/dist/views/Document/index.d.ts.map +1 -1
  283. package/dist/views/Document/index.js +2 -10
  284. package/dist/views/Document/index.js.map +1 -1
  285. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  286. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  287. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  288. package/dist/views/Edit/index.d.ts.map +1 -1
  289. package/dist/views/Edit/index.js +3 -2
  290. package/dist/views/Edit/index.js.map +1 -1
  291. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  292. package/dist/views/HierarchyList/HierarchyTable/index.js +2 -6
  293. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  294. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  295. package/dist/views/Root/getRouteData.js +4 -12
  296. package/dist/views/Root/getRouteData.js.map +1 -1
  297. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  298. package/dist/views/Version/Default/SetStepNav.js +10 -13
  299. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  300. package/dist/views/Version/Default/index.css +2 -26
  301. package/dist/views/Version/Default/index.d.ts.map +1 -1
  302. package/dist/views/Version/Default/index.js +18 -31
  303. package/dist/views/Version/Default/index.js.map +1 -1
  304. package/dist/views/Version/Default/types.d.ts +0 -9
  305. package/dist/views/Version/Default/types.d.ts.map +1 -1
  306. package/dist/views/Version/Default/types.js.map +1 -1
  307. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  308. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +0 -8
  309. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  310. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  311. package/dist/views/Version/Restore/index.js +3 -6
  312. package/dist/views/Version/Restore/index.js.map +1 -1
  313. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  314. package/dist/views/Version/index.d.ts.map +1 -1
  315. package/dist/views/Version/index.js +0 -4
  316. package/dist/views/Version/index.js.map +1 -1
  317. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  318. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  319. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  320. package/dist/views/Versions/buildColumns.d.ts +1 -2
  321. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  322. package/dist/views/Versions/buildColumns.js +1 -21
  323. package/dist/views/Versions/buildColumns.js.map +1 -1
  324. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  325. package/dist/views/Versions/index.client.d.ts +1 -0
  326. package/dist/views/Versions/index.client.d.ts.map +1 -1
  327. package/dist/views/Versions/index.client.js.map +1 -1
  328. package/dist/views/Versions/index.d.ts.map +1 -1
  329. package/dist/views/Versions/index.js +14 -2
  330. package/dist/views/Versions/index.js.map +1 -1
  331. package/package.json +6 -5
  332. package/dist/elements/BranchSelector/NewBranchModal/index.css +0 -46
  333. package/dist/elements/BranchSelector/NewBranchModal/index.d.ts +0 -12
  334. package/dist/elements/BranchSelector/NewBranchModal/index.d.ts.map +0 -1
  335. package/dist/elements/BranchSelector/NewBranchModal/index.js +0 -174
  336. package/dist/elements/BranchSelector/NewBranchModal/index.js.map +0 -1
  337. package/dist/elements/BranchSelector/index.css +0 -172
  338. package/dist/elements/BranchSelector/index.d.ts +0 -13
  339. package/dist/elements/BranchSelector/index.d.ts.map +0 -1
  340. package/dist/elements/BranchSelector/index.js +0 -255
  341. package/dist/elements/BranchSelector/index.js.map +0 -1
  342. package/dist/elements/ChangeSummary/index.css +0 -18
  343. package/dist/elements/ChangeSummary/index.d.ts +0 -28
  344. package/dist/elements/ChangeSummary/index.d.ts.map +0 -1
  345. package/dist/elements/ChangeSummary/index.js +0 -147
  346. package/dist/elements/ChangeSummary/index.js.map +0 -1
  347. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.css +0 -12
  348. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts +0 -12
  349. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts.map +0 -1
  350. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js +0 -83
  351. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js.map +0 -1
  352. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts +0 -14
  353. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts.map +0 -1
  354. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js +0 -28
  355. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js.map +0 -1
  356. package/dist/elements/MergeBranch/context.d.ts +0 -67
  357. package/dist/elements/MergeBranch/context.d.ts.map +0 -1
  358. package/dist/elements/MergeBranch/context.js +0 -47
  359. package/dist/elements/MergeBranch/context.js.map +0 -1
  360. package/dist/elements/MergeBranch/index.css +0 -136
  361. package/dist/elements/MergeBranch/index.d.ts +0 -15
  362. package/dist/elements/MergeBranch/index.d.ts.map +0 -1
  363. package/dist/elements/MergeBranch/index.js +0 -545
  364. package/dist/elements/MergeBranch/index.js.map +0 -1
  365. package/dist/elements/MergeBranch/provider.d.ts +0 -12
  366. package/dist/elements/MergeBranch/provider.d.ts.map +0 -1
  367. package/dist/elements/MergeBranch/provider.js +0 -19
  368. package/dist/elements/MergeBranch/provider.js.map +0 -1
  369. package/dist/elements/MergeBranch/slug.d.ts +0 -9
  370. package/dist/elements/MergeBranch/slug.d.ts.map +0 -1
  371. package/dist/elements/MergeBranch/slug.js +0 -8
  372. package/dist/elements/MergeBranch/slug.js.map +0 -1
  373. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.css +0 -34
  374. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts +0 -13
  375. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts.map +0 -1
  376. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js +0 -51
  377. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +0 -1
  378. package/dist/icons/Branch/index.css +0 -5
  379. package/dist/icons/Branch/index.d.ts +0 -7
  380. package/dist/icons/Branch/index.d.ts.map +0 -1
  381. package/dist/icons/Branch/index.js +0 -25
  382. package/dist/icons/Branch/index.js.map +0 -1
  383. package/dist/providers/Branch/index.d.ts +0 -68
  384. package/dist/providers/Branch/index.d.ts.map +0 -1
  385. package/dist/providers/Branch/index.js +0 -193
  386. package/dist/providers/Branch/index.js.map +0 -1
  387. package/dist/providers/Branch/index.server.d.ts +0 -14
  388. package/dist/providers/Branch/index.server.d.ts.map +0 -1
  389. package/dist/providers/Branch/index.server.js +0 -125
  390. package/dist/providers/Branch/index.server.js.map +0 -1
  391. package/dist/utilities/getAdminPreferences.d.ts +0 -14
  392. package/dist/utilities/getAdminPreferences.d.ts.map +0 -1
  393. package/dist/utilities/getAdminPreferences.js +0 -22
  394. package/dist/utilities/getAdminPreferences.js.map +0 -1
  395. package/dist/utilities/getRequestBranch.d.ts +0 -20
  396. package/dist/utilities/getRequestBranch.d.ts.map +0 -1
  397. package/dist/utilities/getRequestBranch.js +0 -35
  398. package/dist/utilities/getRequestBranch.js.map +0 -1
  399. package/dist/utilities/matchesSearchQuery.d.ts +0 -12
  400. package/dist/utilities/matchesSearchQuery.d.ts.map +0 -1
  401. package/dist/utilities/matchesSearchQuery.js +0 -23
  402. package/dist/utilities/matchesSearchQuery.js.map +0 -1
  403. package/dist/utilities/matchesSearchQuery.spec.js.map +0 -1
  404. package/dist/utilities/scheduleMergeHandler.d.ts +0 -33
  405. package/dist/utilities/scheduleMergeHandler.d.ts.map +0 -1
  406. package/dist/utilities/scheduleMergeHandler.js +0 -119
  407. package/dist/utilities/scheduleMergeHandler.js.map +0 -1
  408. package/dist/views/Branch/BranchChanges/index.d.ts +0 -23
  409. package/dist/views/Branch/BranchChanges/index.d.ts.map +0 -1
  410. package/dist/views/Branch/BranchChanges/index.js +0 -150
  411. package/dist/views/Branch/BranchChanges/index.js.map +0 -1
  412. package/dist/views/Branch/ChangedDocuments/index.css +0 -118
  413. package/dist/views/Branch/ChangedDocuments/index.d.ts +0 -34
  414. package/dist/views/Branch/ChangedDocuments/index.d.ts.map +0 -1
  415. package/dist/views/Branch/ChangedDocuments/index.js +0 -233
  416. package/dist/views/Branch/ChangedDocuments/index.js.map +0 -1
  417. package/dist/views/Branch/DiscardChangesButton/index.d.ts +0 -16
  418. package/dist/views/Branch/DiscardChangesButton/index.d.ts.map +0 -1
  419. package/dist/views/Branch/DiscardChangesButton/index.js +0 -106
  420. package/dist/views/Branch/DiscardChangesButton/index.js.map +0 -1
  421. package/dist/views/Branch/Manage/index.d.ts +0 -11
  422. package/dist/views/Branch/Manage/index.d.ts.map +0 -1
  423. package/dist/views/Branch/Manage/index.js +0 -71
  424. package/dist/views/Branch/Manage/index.js.map +0 -1
  425. package/dist/views/Branch/MergeChangesButton/index.d.ts +0 -14
  426. package/dist/views/Branch/MergeChangesButton/index.d.ts.map +0 -1
  427. package/dist/views/Branch/MergeChangesButton/index.js +0 -55
  428. package/dist/views/Branch/MergeChangesButton/index.js.map +0 -1
  429. package/dist/views/Branch/MergeLedger/index.css +0 -137
  430. package/dist/views/Branch/MergeLedger/index.d.ts +0 -31
  431. package/dist/views/Branch/MergeLedger/index.d.ts.map +0 -1
  432. package/dist/views/Branch/MergeLedger/index.js +0 -211
  433. package/dist/views/Branch/MergeLedger/index.js.map +0 -1
  434. package/dist/views/Branch/ScheduledMerges/index.css +0 -83
  435. package/dist/views/Branch/ScheduledMerges/index.d.ts +0 -32
  436. package/dist/views/Branch/ScheduledMerges/index.d.ts.map +0 -1
  437. package/dist/views/Branch/ScheduledMerges/index.js +0 -183
  438. package/dist/views/Branch/ScheduledMerges/index.js.map +0 -1
  439. package/dist/views/Branch/index.css +0 -77
  440. package/dist/views/Branch/index.d.ts +0 -17
  441. package/dist/views/Branch/index.d.ts.map +0 -1
  442. package/dist/views/Branch/index.js +0 -188
  443. package/dist/views/Branch/index.js.map +0 -1
  444. package/dist/views/Branch/renderBranchDiff.d.ts +0 -29
  445. package/dist/views/Branch/renderBranchDiff.d.ts.map +0 -1
  446. package/dist/views/Branch/renderBranchDiff.js +0 -151
  447. package/dist/views/Branch/renderBranchDiff.js.map +0 -1
  448. package/dist/views/Branch/renderMergeDiff.d.ts +0 -24
  449. package/dist/views/Branch/renderMergeDiff.d.ts.map +0 -1
  450. package/dist/views/Branch/renderMergeDiff.js +0 -94
  451. package/dist/views/Branch/renderMergeDiff.js.map +0 -1
  452. package/dist/views/Branches/index.d.ts +0 -16
  453. package/dist/views/Branches/index.d.ts.map +0 -1
  454. package/dist/views/Branches/index.js +0 -54
  455. package/dist/views/Branches/index.js.map +0 -1
  456. package/dist/views/Versions/cells/Branch/index.d.ts +0 -12
  457. package/dist/views/Versions/cells/Branch/index.d.ts.map +0 -1
  458. package/dist/views/Versions/cells/Branch/index.js +0 -27
  459. package/dist/views/Versions/cells/Branch/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","createContext","use","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","useSearchParams","useRouteTransition","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","t0","$","children","locale","initialLocaleFromPrefs","config","t1","localization","t2","routes","t3","api","apiRoute","user","isTransitioning","defaultLocale","t4","t5","get","localeFromParams","t6","locales","length","code","setLocale","isLoading","prevLocale","t7","t8","current","t9","path","fetchURL","t10","id","resetLocale","localeToUse","_temp","newLocale","t11","t12","t13","_jsx","value","useLocaleLoading","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { createContext, use, useEffect, useRef, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\n\nconst LocaleContext = createContext({} as Locale)\n\nexport const LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n },\n } = useConfig()\n\n const { user } = useAuth()\n const { isTransitioning } = useRouteTransition()\n\n const defaultLocale = localization ? localization.defaultLocale : 'en'\n\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale>(() => {\n if (!localization || (localization && !localization.locales.length)) {\n // TODO: return null V4\n return {} as Locale\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization.locales[0].code)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale>(locale)\n\n useEffect(() => {\n // Keep fields disabled until the new locale's document state finishes loading.\n if (locale.code !== prevLocale.current.code && !isTransitioning) {\n setLocaleIsLoading(false)\n prevLocale.current = locale\n }\n }, [isTransitioning, locale])\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: '',\n })\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value))\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization?.locales?.[0]?.code)\n\n if (newLocale) {\n setLocale(newLocale)\n }\n }\n }\n\n void resetLocale()\n }, [defaultLocale, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext value={locale}>\n <LocaleLoadingContext value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext>\n </LocaleContext>\n )\n}\n\nexport const useLocaleLoading = () => use(LocaleLoadingContext)\n\n/**\n * TODO: V4\n * The return type of the `useLocale` hook will change in v4. It will return `null | Locale` instead of `false | {} | Locale`.\n */\nexport const useLocale = (): Locale => use(LocaleContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAEvE,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AAEnC,MAAMC,aAAA,gBAAgBV,aAAA,CAAc,CAAC;AAErC,OAAO,MAAMW,oBAAA,gBAAuBX,aAAA,CAAc;EAChDY,eAAA,EAAiB;EACjBC,kBAAA,EAAqBC,CAAA,IAAeC;AACtC;AAEA,MAAMC,gBAAA,GAAmB,MAAAA,CACvBC,GAAA,EACAC,OAAA,KAEA,MAAMC,KAAA,CAAM,GAAGD,OAAA,wBAA+BD,GAAA,EAAK,EAAE;EACnDG,WAAA,EAAa;EACbC,OAAA,EAAS;IACP,gBAAgB;EAClB;EACAC,MAAA,EAAQ;AACV,IAAIC,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAIC,IAAI;AAE5B,OAAO,MAAMC,cAAA,GAAoFC,EAAA;EAAA,MAAAC,CAAA,GAAA/B,EAAA;EAAC;IAAAgC,QAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAQjG;EACC;IAAAK,MAAA,EAAAC;EAAA,IAKI1B,SAAA;EAJM;IAAA2B,YAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,IAAAJ,EAGP;EAFC,MAAAC,YAAA,GAAAC,EAAoB,KAAApB,SAAA,WAApBoB,EAAoB;EACZ;IAAAG,GAAA,EAAAC;EAAA,IAAAF,EAAiB;EAI7B;IAAAG;EAAA,IAAiBlC,OAAA;EACjB;IAAAmC;EAAA,IAA4BhC,kBAAA;EAE5B,MAAAiC,aAAA,GAAsBR,YAAA,GAAeA,YAAA,CAAAQ,aAAA,GAA6B;EAEzC,MAAAC,EAAA,GAAAnC,eAAA;EAAA,IAAAoC,EAAA;EAAA,IAAAhB,CAAA,QAAAe,EAAA;IAAAC,EAAA,GAAAD,EAAA,CAAAE,GAAA,CAAsB;IAAAjB,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAA/C,MAAAkB,gBAAA,GAAyBF,EAAsB;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAc,aAAA,IAAAd,CAAA,QAAAG,sBAAA,IAAAH,CAAA,QAAAkB,gBAAA,IAAAlB,CAAA,QAAAM,YAAA;IAEIa,EAAA,GAAAA,CAAA;MAAA,IAC7C,CAACb,YAAA,IAAiBA,YAAA,KAAiBA,YAAA,CAAAc,OAAA,CAAAC,MAA2B;QAAA;MAAA;MAAA,OAMhE5C,kBAAA,CAAmB6B,YAAA,EAAcY,gBAAA,KACjCzC,kBAAA,CAAmB6B,YAAA,EAAcH,sBAAA,KACjC1B,kBAAA,CAAmB6B,YAAA,EAAcQ,aAAA,KACjCrC,kBAAA,CAAmB6B,YAAA,EAAcA,YAAA,CAAAc,OAAA,IAAAE,IAA4B;IAAA;IAEjEtB,CAAA,MAAAc,aAAA;IAAAd,CAAA,MAAAG,sBAAA;IAAAH,CAAA,MAAAkB,gBAAA;IAAAlB,CAAA,MAAAM,YAAA;IAAAN,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAZA,OAAAE,MAAA,EAAAqB,SAAA,IAA4BpD,KAAA,CAAAK,QAAA,CAAuB2C,EAYnD;EAEA,OAAAK,SAAA,EAAAvC,kBAAA,IAAwCT,QAAA,MAAS;EAEjD,MAAAiD,UAAA,GAAmBlD,MAAA,CAAe2B,MAAA;EAAA,IAAAwB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA3B,CAAA,QAAAa,eAAA,IAAAb,CAAA,QAAAE,MAAA;IAExBwB,EAAA,GAAAA,CAAA;MAAA,IAEJxB,MAAA,CAAAoB,IAAA,KAAgBG,UAAA,CAAAG,OAAA,CAAAN,IAAuB,KAAKT,eAAA;QAC9C5B,kBAAA,MAAmB;QACnBwC,UAAA,CAAAG,OAAA,GAAqB1B,MAAA;MAAA;IAAA;IAEtByB,EAAA,IAACd,eAAA,EAAiBX,MAAA;IAAOF,CAAA,MAAAa,eAAA;IAAAb,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAA0B,EAAA;IAAA1B,CAAA,OAAA2B,EAAA;EAAA;IAAAD,EAAA,GAAA1B,CAAA;IAAA2B,EAAA,GAAA3B,CAAA;EAAA;EAN5B1B,SAAA,CAAUoD,EAMV,EAAGC,EAAyB;EAAA,IAAAE,EAAA;EAAA,IAAA7B,CAAA,SAAAW,QAAA;IAEXkB,EAAA,GAAA3D,cAAA;MAAAyC,QAAA;MAAAmB,IAAA,EAET;IAAA,CACR;IAAA9B,CAAA,OAAAW,QAAA;IAAAX,CAAA,OAAA6B,EAAA;EAAA;IAAAA,EAAA,GAAA7B,CAAA;EAAA;EAHA,MAAA+B,QAAA,GAAiBF,EAGjB;EAAA,IAAAG,GAAA;EAAA,IAAAhC,CAAA,SAAAc,aAAA,IAAAd,CAAA,SAAA+B,QAAA,IAAA/B,CAAA,SAAAkB,gBAAA,IAAAlB,CAAA,SAAAM,YAAA,IAAAN,CAAA,SAAAY,IAAA,EAAAqB,EAAA;IAEUD,GAAA,GAAAA,CAAA;MAMR,MAAAE,WAAA,kBAAAA,YAAA;QAAA,IACM5B,YAAA,IAAgBM,IAAA,EAAAqB,EAAM;UACxB,MAAAE,WAAA,GACEjB,gBAAA,WACO9B,gBAAA,CAAiC,UAAU2C,QAAA,GAAApC,IAAA,CAAAyC,KAAA,EAAkC;UAEtF,MAAAC,SAAA,GACE5D,kBAAA,CAAmB6B,YAAA,EAAc6B,WAAA,KACjC1D,kBAAA,CAAmB6B,YAAA,EAAcQ,aAAA,KACjCrC,kBAAA,CAAmB6B,YAAA,EAAcA,YAAA,EAAAc,OAAA,OAAAE,IAA4B;UAAA,IAE3De,SAAA;YACFd,SAAA,CAAUc,SAAA;UAAA;QAAA;MAAA;MAKXH,WAAA;IAAA;IACPlC,CAAA,OAAAc,aAAA;IAAAd,CAAA,OAAA+B,QAAA;IAAA/B,CAAA,OAAAkB,gBAAA;IAAAlB,CAAA,OAAAM,YAAA;IAAAN,CAAA,OAAAY,IAAA,EAAAqB,EAAA;IAAAjC,CAAA,OAAAgC,GAAA;EAAA;IAAAA,GAAA,GAAAhC,CAAA;EAAA;EAA6D,MAAAsC,GAAA,GAAA1B,IAAA,EAAAqB,EAAA;EAAM,IAAAM,GAAA;EAAA,IAAAvC,CAAA,SAAAc,aAAA,IAAAd,CAAA,SAAA+B,QAAA,IAAA/B,CAAA,SAAAkB,gBAAA,IAAAlB,CAAA,SAAAM,YAAA,IAAAN,CAAA,SAAAsC,GAAA;IAAhEC,GAAA,IAACzB,aAAA,EAAeR,YAAA,EAAcyB,QAAA,EAAUb,gBAAA,EAAkBoB,GAAM;IAAGtC,CAAA,OAAAc,aAAA;IAAAd,CAAA,OAAA+B,QAAA;IAAA/B,CAAA,OAAAkB,gBAAA;IAAAlB,CAAA,OAAAM,YAAA;IAAAN,CAAA,OAAAsC,GAAA;IAAAtC,CAAA,OAAAuC,GAAA;EAAA;IAAAA,GAAA,GAAAvC,CAAA;EAAA;EAxBtE1B,SAAA,CAAU0D,GAwBV,EAAGO,GAAmE;EAAA,IAAAC,GAAA;EAAA,IAAAxC,CAAA,SAAAC,QAAA,IAAAD,CAAA,SAAAwB,SAAA,IAAAxB,CAAA,SAAAE,MAAA;IAGpEsC,GAAA,GAAAC,IAAA,CAAA3D,aAAA;MAAA4D,KAAA,EAAsBxC,MAAA;MAAAD,QAAA,EACpBwC,IAAA,CAAA1D,oBAAA;QAAA2D,KAAA;UAAA1D,eAAA,EAAgDwC,SAAA;UAAAvC;QAAA;QAAAgB;MAAA,C;;;;;;;;;SADlDuC,G;CAMJ;AAEA,OAAO,MAAMG,gBAAA,GAAmBA,CAAA,KAAMtE,GAAA,CAAIU,oBAAA;AAE1C;;;;AAIA,OAAO,MAAM6D,SAAA,GAAYA,CAAA,KAAcvE,GAAA,CAAIS,aAAA;AA/FsD,SAAAsD,MAAAxC,GAAA;EAAA,OAgEZA,GAAA,CAAA8C,KAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["formatAdminURL","React","createContext","use","useEffect","useRef","useState","findLocaleFromCode","useAuth","useConfig","useSearchParams","useRouteTransition","LocaleContext","LocaleLoadingContext","localeIsLoading","setLocaleIsLoading","_","undefined","fetchPreferences","key","baseURL","fetch","credentials","headers","method","then","res","json","LocaleProvider","children","locale","initialLocaleFromPrefs","config","localization","routes","api","apiRoute","user","isTransitioning","defaultLocale","localeFromParams","get","setLocale","locales","length","code","isLoading","prevLocale","current","fetchURL","path","resetLocale","id","localeToUse","value","newLocale","_jsx","useLocaleLoading","useLocale"],"sources":["../../../src/providers/Locale/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Locale } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { createContext, use, useEffect, useRef, useState } from 'react'\n\nimport { findLocaleFromCode } from '../../utilities/findLocaleFromCode.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\n\nconst LocaleContext = createContext<Locale | null>(null)\n\nexport const LocaleLoadingContext = createContext({\n localeIsLoading: false,\n setLocaleIsLoading: (_: boolean) => undefined,\n})\n\nconst fetchPreferences = async <T extends Record<string, unknown> | string>(\n key: string,\n baseURL: string,\n): Promise<{ id: string; value: T }> =>\n await fetch(`${baseURL}/payload-preferences/${key}`, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n })?.then((res) => res.json() as Promise<{ id: string; value: T }>)\n\nexport const LocaleProvider: React.FC<{ children?: React.ReactNode; locale?: Locale['code'] }> = ({\n children,\n /**\n The `locale` prop originates from the root layout, which does not have access to search params\n This component uses the `useSearchParams` hook to get the locale from the URL as precedence over this prop\n This prop does not update as the user navigates the site, because the root layout does not re-render\n */\n locale: initialLocaleFromPrefs,\n}) => {\n const {\n config: {\n localization = false,\n routes: { api: apiRoute },\n },\n } = useConfig()\n\n const { user } = useAuth()\n const { isTransitioning } = useRouteTransition()\n\n const defaultLocale = localization ? localization.defaultLocale : 'en'\n\n const localeFromParams = useSearchParams().get('locale')\n\n const [locale, setLocale] = React.useState<Locale | null>(() => {\n if (!localization || (localization && !localization.locales.length)) {\n return null\n }\n\n return (\n findLocaleFromCode(localization, localeFromParams) ||\n findLocaleFromCode(localization, initialLocaleFromPrefs) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization.locales[0].code)\n )\n })\n\n const [isLoading, setLocaleIsLoading] = useState(false)\n\n const prevLocale = useRef<Locale | null>(locale)\n\n useEffect(() => {\n // Keep fields disabled until the new locale's document state finishes loading.\n if (locale?.code !== prevLocale.current?.code && !isTransitioning) {\n setLocaleIsLoading(false)\n prevLocale.current = locale\n }\n }, [isTransitioning, locale])\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: '',\n })\n\n useEffect(() => {\n /**\n * This effect should only run when `localeFromParams` changes, i.e. when the user clicks an anchor link\n * The root layout, which sends the initial locale from prefs, will not re-render as the user navigates the site\n * For this reason, we need to fetch the locale from prefs if the search params clears the `locale` query param\n */\n async function resetLocale() {\n if (localization && user?.id) {\n const localeToUse =\n localeFromParams ||\n (await fetchPreferences<Locale['code']>('locale', fetchURL)?.then((res) => res.value))\n\n const newLocale =\n findLocaleFromCode(localization, localeToUse) ||\n findLocaleFromCode(localization, defaultLocale) ||\n findLocaleFromCode(localization, localization?.locales?.[0]?.code)\n\n if (newLocale) {\n setLocale(newLocale)\n }\n }\n }\n\n void resetLocale()\n }, [defaultLocale, localization, fetchURL, localeFromParams, user?.id])\n\n return (\n <LocaleContext value={locale}>\n <LocaleLoadingContext value={{ localeIsLoading: isLoading, setLocaleIsLoading }}>\n {children}\n </LocaleLoadingContext>\n </LocaleContext>\n )\n}\n\nexport const useLocaleLoading = () => use(LocaleLoadingContext)\n\nexport const useLocale = (): Locale | null => use(LocaleContext)\n"],"mappings":"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","ignoreList":[]}
@@ -5,9 +5,7 @@ type PreferencesContext = {
5
5
  /**
6
6
  * @param key - a string identifier for the property being set
7
7
  * @param value - preference data to store
8
- * @param merge - when true, combines the value with the existing preference stored under the key
9
- * and batches concurrent changes to that key into one request, default = false. Awaiting the
10
- * returned promise waits for the write to land either way.
8
+ * @param merge - when true will combine the existing preference object batch the change into one request for objects, default = false
11
9
  */
12
10
  setPreference: <T = Preferences>(key: string, value: T, merge?: boolean) => Promise<void>;
13
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Preferences/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAQ5D,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3D;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1F,CAAA;AAYD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAmJxE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAAkC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Preferences/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAQ5D,KAAK,kBAAkB,GAAG;IACxB,aAAa,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3D;;;;OAIG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1F,CAAA;AAYD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA6IxE,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAAkC,CAAA"}
@@ -118,15 +118,9 @@ export const PreferencesProvider = ({
118
118
  // reset any changes for this key after sending the request
119
119
  delete pendingUpdate.current[key_0];
120
120
  };
121
- // Deferred by a macrotask so several changes to different values under the
122
- // same key coalesce into one request — but still awaited, so a caller that
123
- // needs the write to have landed can rely on `await`. A branch switch
124
- // depends on this: it refreshes the route afterwards, and the server
125
- // re-reads this preference to resolve the branch it renders against.
126
- await new Promise((resolve_0, reject) => {
127
- setTimeout(() => {
128
- updatePreference().then(resolve_0, reject);
129
- });
121
+ // use timeout to allow multiple changes of different values using the same key in one request
122
+ setTimeout(() => {
123
+ void updatePreference();
130
124
  });
131
125
  }, [api, getPreference, i18n.language, pendingUpdate]);
132
126
  contextRef.current.getPreference = getPreference;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","formatAdminURL","React","createContext","use","useCallback","useEffect","useRef","useTranslation","requests","deepMergeSimple","useAuth","useConfig","Context","requestOptions","value","language","body","JSON","stringify","headers","PreferencesProvider","children","contextRef","preferencesRef","pendingUpdate","config","user","i18n","routes","api","current","getPreference","key","prefs","promise","Promise","resolve","request","get","apiRoute","path","credentials","status","preference","json","setPreference","merge","post","newValue","currentPreference","updatePreference","reject","setTimeout","then","_jsx","usePreferences"],"sources":["../../../src/providers/Preferences/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { formatAdminURL } from 'payload/shared'\nimport React, { createContext, use, useCallback, useEffect, useRef } from 'react'\n\nimport type { Preferences } from '../../forms/Form/types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { deepMergeSimple } from '../../utilities/deepMerge.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\n\ntype PreferencesContext = {\n getPreference: <T = Preferences>(key: string) => Promise<T>\n /**\n * @param key - a string identifier for the property being set\n * @param value - preference data to store\n * @param merge - when true, combines the value with the existing preference stored under the key\n * and batches concurrent changes to that key into one request, default = false. Awaiting the\n * returned promise waits for the write to land either way.\n */\n setPreference: <T = Preferences>(key: string, value: T, merge?: boolean) => Promise<void>\n}\n\nconst Context = createContext({} as PreferencesContext)\n\nconst requestOptions = (value, language) => ({\n body: JSON.stringify({ value }),\n headers: {\n 'Accept-Language': language,\n 'Content-Type': 'application/json',\n },\n})\n\nexport const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const contextRef = useRef({} as PreferencesContext)\n const preferencesRef = useRef({})\n const pendingUpdate = useRef({})\n const { config } = useConfig()\n const { user } = useAuth()\n const { i18n } = useTranslation()\n\n const {\n routes: { api },\n } = config\n\n useEffect(() => {\n if (!user) {\n // clear preferences between users\n preferencesRef.current = {}\n }\n }, [user])\n\n const getPreference = useCallback(\n async <T = unknown,>(key: string): Promise<T> => {\n const prefs = preferencesRef.current\n\n if (typeof prefs[key] !== 'undefined') {\n return prefs[key]\n }\n\n const promise = new Promise((resolve: (value: T) => void) => {\n void (async () => {\n const request = await requests.get(\n formatAdminURL({\n apiRoute: api,\n path: `/payload-preferences/${key}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n let value = null\n\n if (request.status === 200) {\n const preference = await request.json()\n value = preference.value\n }\n\n preferencesRef.current[key] = value\n\n resolve(value)\n })()\n })\n\n prefs[key] = promise\n\n return promise\n },\n [i18n.language, api, preferencesRef],\n )\n\n const setPreference = useCallback(\n async (key: string, value: unknown, merge = false): Promise<void> => {\n if (merge === false) {\n preferencesRef.current[key] = value\n\n await requests.post(\n formatAdminURL({\n apiRoute: api,\n path: `/payload-preferences/${key}`,\n }),\n requestOptions(value, i18n.language),\n )\n\n return\n }\n\n let newValue = value\n const currentPreference = await getPreference(key)\n\n // handle value objects where multiple values can be set under one key\n if (\n typeof value === 'object' &&\n typeof currentPreference === 'object' &&\n typeof newValue === 'object'\n ) {\n // merge the value with any existing preference for the key\n if (currentPreference) {\n newValue = deepMergeSimple(currentPreference, newValue)\n }\n\n if (dequal(newValue, currentPreference)) {\n return\n }\n\n // add the requested changes to a pendingUpdate batch for the key\n pendingUpdate.current[key] = {\n ...pendingUpdate.current[key],\n ...(newValue as Record<string, unknown>),\n }\n } else {\n if (newValue === currentPreference) {\n return\n }\n\n pendingUpdate.current[key] = newValue\n }\n\n const updatePreference = async () => {\n // compare the value stored in context before sending to eliminate duplicate requests\n if (dequal(pendingUpdate.current[key], preferencesRef.current[key])) {\n return\n }\n\n // preference set in context here to prevent other updatePreference at the same time\n preferencesRef.current[key] = pendingUpdate.current[key]\n\n await requests.post(\n formatAdminURL({\n apiRoute: api,\n path: `/payload-preferences/${key}`,\n }),\n requestOptions(preferencesRef.current[key], i18n.language),\n )\n\n // reset any changes for this key after sending the request\n delete pendingUpdate.current[key]\n }\n\n // Deferred by a macrotask so several changes to different values under the\n // same key coalesce into one request — but still awaited, so a caller that\n // needs the write to have landed can rely on `await`. A branch switch\n // depends on this: it refreshes the route afterwards, and the server\n // re-reads this preference to resolve the branch it renders against.\n await new Promise<void>((resolve, reject) => {\n setTimeout(() => {\n updatePreference().then(resolve, reject)\n })\n })\n },\n [api, getPreference, i18n.language, pendingUpdate],\n )\n\n contextRef.current.getPreference = getPreference\n contextRef.current.setPreference = setPreference\n return <Context value={contextRef.current}>{children}</Context>\n}\n\nexport const usePreferences = (): PreferencesContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","formatAdminURL","React","createContext","use","useCallback","useEffect","useRef","useTranslation","requests","deepMergeSimple","useAuth","useConfig","Context","requestOptions","value","language","body","JSON","stringify","headers","PreferencesProvider","children","contextRef","preferencesRef","pendingUpdate","config","user","i18n","routes","api","current","getPreference","key","prefs","promise","Promise","resolve","request","get","apiRoute","path","credentials","status","preference","json","setPreference","merge","post","newValue","currentPreference","updatePreference","setTimeout","_jsx","usePreferences"],"sources":["../../../src/providers/Preferences/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { formatAdminURL } from 'payload/shared'\nimport React, { createContext, use, useCallback, useEffect, useRef } from 'react'\n\nimport type { Preferences } from '../../forms/Form/types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { deepMergeSimple } from '../../utilities/deepMerge.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useConfig } from '../Config/index.js'\n\ntype PreferencesContext = {\n getPreference: <T = Preferences>(key: string) => Promise<T>\n /**\n * @param key - a string identifier for the property being set\n * @param value - preference data to store\n * @param merge - when true will combine the existing preference object batch the change into one request for objects, default = false\n */\n setPreference: <T = Preferences>(key: string, value: T, merge?: boolean) => Promise<void>\n}\n\nconst Context = createContext({} as PreferencesContext)\n\nconst requestOptions = (value, language) => ({\n body: JSON.stringify({ value }),\n headers: {\n 'Accept-Language': language,\n 'Content-Type': 'application/json',\n },\n})\n\nexport const PreferencesProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const contextRef = useRef({} as PreferencesContext)\n const preferencesRef = useRef({})\n const pendingUpdate = useRef({})\n const { config } = useConfig()\n const { user } = useAuth()\n const { i18n } = useTranslation()\n\n const {\n routes: { api },\n } = config\n\n useEffect(() => {\n if (!user) {\n // clear preferences between users\n preferencesRef.current = {}\n }\n }, [user])\n\n const getPreference = useCallback(\n async <T = unknown,>(key: string): Promise<T> => {\n const prefs = preferencesRef.current\n\n if (typeof prefs[key] !== 'undefined') {\n return prefs[key]\n }\n\n const promise = new Promise((resolve: (value: T) => void) => {\n void (async () => {\n const request = await requests.get(\n formatAdminURL({\n apiRoute: api,\n path: `/payload-preferences/${key}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n let value = null\n\n if (request.status === 200) {\n const preference = await request.json()\n value = preference.value\n }\n\n preferencesRef.current[key] = value\n\n resolve(value)\n })()\n })\n\n prefs[key] = promise\n\n return promise\n },\n [i18n.language, api, preferencesRef],\n )\n\n const setPreference = useCallback(\n async (key: string, value: unknown, merge = false): Promise<void> => {\n if (merge === false) {\n preferencesRef.current[key] = value\n\n await requests.post(\n formatAdminURL({\n apiRoute: api,\n path: `/payload-preferences/${key}`,\n }),\n requestOptions(value, i18n.language),\n )\n\n return\n }\n\n let newValue = value\n const currentPreference = await getPreference(key)\n\n // handle value objects where multiple values can be set under one key\n if (\n typeof value === 'object' &&\n typeof currentPreference === 'object' &&\n typeof newValue === 'object'\n ) {\n // merge the value with any existing preference for the key\n if (currentPreference) {\n newValue = deepMergeSimple(currentPreference, newValue)\n }\n\n if (dequal(newValue, currentPreference)) {\n return\n }\n\n // add the requested changes to a pendingUpdate batch for the key\n pendingUpdate.current[key] = {\n ...pendingUpdate.current[key],\n ...(newValue as Record<string, unknown>),\n }\n } else {\n if (newValue === currentPreference) {\n return\n }\n\n pendingUpdate.current[key] = newValue\n }\n\n const updatePreference = async () => {\n // compare the value stored in context before sending to eliminate duplicate requests\n if (dequal(pendingUpdate.current[key], preferencesRef.current[key])) {\n return\n }\n\n // preference set in context here to prevent other updatePreference at the same time\n preferencesRef.current[key] = pendingUpdate.current[key]\n\n await requests.post(\n formatAdminURL({\n apiRoute: api,\n path: `/payload-preferences/${key}`,\n }),\n requestOptions(preferencesRef.current[key], i18n.language),\n )\n\n // reset any changes for this key after sending the request\n delete pendingUpdate.current[key]\n }\n\n // use timeout to allow multiple changes of different values using the same key in one request\n setTimeout(() => {\n void updatePreference()\n })\n },\n [api, getPreference, i18n.language, pendingUpdate],\n )\n\n contextRef.current.getPreference = getPreference\n contextRef.current.setPreference = setPreference\n return <Context value={contextRef.current}>{children}</Context>\n}\n\nexport const usePreferences = (): PreferencesContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,KAAgF,MAAM,OAAO,CAAA;AAQpG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAcD,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoM7C,CAAA;AAED,eAAO,MAAM,YAAY,QAAO,gBAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Selection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,KAAgF,MAAM,OAAO,CAAA;AAQpG,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,KAAK,MAAM,CAAA;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,SAAS,EAAE,eAAe,CAAA;IAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAA;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAcD,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAElC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqM7C,CAAA;AAED,eAAO,MAAM,YAAY,QAAO,gBAAgC,CAAA"}
@@ -44,9 +44,8 @@ export const SelectionProvider = ({
44
44
  const {
45
45
  user
46
46
  } = useAuth();
47
- const {
48
- code: locale
49
- } = useLocale();
47
+ const currentLocale = useLocale();
48
+ const locale = currentLocale?.code;
50
49
  const [selected, setSelected] = useState(() => {
51
50
  const rows = new Map();
52
51
  docs.forEach(({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["qs","React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","parseSearchParams","useAuth","useListQuery","useLocale","useSearchParams","SelectAllStatus","Context","count","undefined","getQueryParams","additionalParams","getSelectedIds","selectAll","selected","Map","selectedIDs","setSelection","id","toggleAll","totalDocs","reduceActiveSelections","ids","key","value","push","SelectionProvider","children","docs","contextRef","user","code","locale","setSelected","rows","forEach","set","setSelectAll","setCount","searchParams","query","allAvailable","_isLocked","_userEditing","shouldSelect","size","length","doc","find","existingValue","get","isSelected","newMap","additionalWhereParams","where","params","not_equals","in","and","stringify","addQueryPrefix","some","all","_","newCount","current","_jsx","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useListQuery } from '../ListQuery/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n getSelectedIds: () => (number | string)[]\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n selectedIDs: (number | string)[]\n setSelection: (id: number | string) => void\n /**\n * Selects all rows on the current page within the current query.\n * If `allAvailable` is true, does not select specific IDs so that the query itself affects all rows across all pages.\n */\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({\n count: undefined,\n getQueryParams: (additionalParams?: Where) => '',\n getSelectedIds: () => [],\n selectAll: undefined,\n selected: new Map(),\n selectedIDs: [],\n setSelection: (id: number | string) => {},\n toggleAll: (toggleAll: boolean) => {},\n totalDocs: undefined,\n} satisfies SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n}\n\nconst reduceActiveSelections = (selected: Map<number | string, boolean>): (number | string)[] => {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n return ids\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs }) => {\n const contextRef = useRef({} as SelectionContext)\n const { user } = useAuth()\n\n const { code: locale } = useLocale()\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const searchParams = useSearchParams()\n const { query } = useListQuery()\n\n const toggleAll: SelectionContext['toggleAll'] = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n // Reset back to `None` if we previously had any type of selection\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n const shouldSelect = selectAll !== SelectAllStatus.Some\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, shouldSelect)\n }\n })\n\n // Set selectAll synchronously to avoid race conditions with useEffect\n if (shouldSelect && rows.size > 0) {\n if (rows.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else {\n setSelectAll(SelectAllStatus.Some)\n }\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection: SelectionContext['setSelection'] = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n const newMap = new Map(selected.set(id, isSelected))\n\n // If previously selected all and now deselecting, adjust status\n if (selectAll === SelectAllStatus.AllAvailable && !isSelected) {\n setSelectAll(SelectAllStatus.Some)\n }\n\n setSelected(newMap)\n },\n [selected, docs, selectAll, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = parseSearchParams(searchParams)?.where as Where\n\n where = params || {\n id: {\n not_equals: '',\n },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n const getSelectedIds = useCallback(() => reduceActiveSelections(selected), [selected])\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n useEffect(() => {\n setSelectAll(SelectAllStatus.None)\n setSelected(new Map())\n }, [query])\n\n const selectedIDs = useMemo(() => reduceActiveSelections(selected), [selected])\n\n contextRef.current = {\n count,\n getQueryParams,\n getSelectedIds,\n selectAll,\n selected,\n selectedIDs,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context value={contextRef.current}>{children}</Context>\n}\n\nexport const useSelection = (): SelectionContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["qs","React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","parseSearchParams","useAuth","useListQuery","useLocale","useSearchParams","SelectAllStatus","Context","count","undefined","getQueryParams","additionalParams","getSelectedIds","selectAll","selected","Map","selectedIDs","setSelection","id","toggleAll","totalDocs","reduceActiveSelections","ids","key","value","push","SelectionProvider","children","docs","contextRef","user","currentLocale","locale","code","setSelected","rows","forEach","set","setSelectAll","setCount","searchParams","query","allAvailable","_isLocked","_userEditing","shouldSelect","size","length","doc","find","existingValue","get","isSelected","newMap","additionalWhereParams","where","params","not_equals","in","and","stringify","addQueryPrefix","some","all","_","newCount","current","_jsx","useSelection"],"sources":["../../../src/providers/Selection/index.tsx"],"sourcesContent":["'use client'\nimport type { Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useAuth } from '../Auth/index.js'\nimport { useListQuery } from '../ListQuery/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\nexport enum SelectAllStatus {\n AllAvailable = 'allAvailable',\n AllInPage = 'allInPage',\n None = 'none',\n Some = 'some',\n}\n\ntype SelectionContext = {\n count: number\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n getQueryParams: (additionalParams?: Where) => string\n getSelectedIds: () => (number | string)[]\n selectAll: SelectAllStatus\n selected: Map<number | string, boolean>\n selectedIDs: (number | string)[]\n setSelection: (id: number | string) => void\n /**\n * Selects all rows on the current page within the current query.\n * If `allAvailable` is true, does not select specific IDs so that the query itself affects all rows across all pages.\n */\n toggleAll: (allAvailable?: boolean) => void\n totalDocs: number\n}\n\nconst Context = createContext({\n count: undefined,\n getQueryParams: (additionalParams?: Where) => '',\n getSelectedIds: () => [],\n selectAll: undefined,\n selected: new Map(),\n selectedIDs: [],\n setSelection: (id: number | string) => {},\n toggleAll: (toggleAll: boolean) => {},\n totalDocs: undefined,\n} satisfies SelectionContext)\n\ntype Props = {\n readonly children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly docs: any[]\n readonly totalDocs: number\n}\n\nconst reduceActiveSelections = (selected: Map<number | string, boolean>): (number | string)[] => {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n return ids\n}\n\nexport const SelectionProvider: React.FC<Props> = ({ children, docs = [], totalDocs }) => {\n const contextRef = useRef({} as SelectionContext)\n const { user } = useAuth()\n\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n\n const [selected, setSelected] = useState<SelectionContext['selected']>(() => {\n const rows = new Map()\n\n docs.forEach(({ id }) => {\n rows.set(id, false)\n })\n\n return rows\n })\n\n const [selectAll, setSelectAll] = useState<SelectAllStatus>(SelectAllStatus.None)\n const [count, setCount] = useState(0)\n const searchParams = useSearchParams()\n const { query } = useListQuery()\n\n const toggleAll: SelectionContext['toggleAll'] = useCallback(\n (allAvailable = false) => {\n const rows = new Map()\n if (allAvailable) {\n setSelectAll(SelectAllStatus.AllAvailable)\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, true)\n }\n })\n } else if (\n // Reset back to `None` if we previously had any type of selection\n selectAll === SelectAllStatus.AllAvailable ||\n selectAll === SelectAllStatus.AllInPage\n ) {\n setSelectAll(SelectAllStatus.None)\n } else {\n const shouldSelect = selectAll !== SelectAllStatus.Some\n\n docs.forEach(({ id, _isLocked, _userEditing }) => {\n if (!_isLocked || _userEditing?.id === user?.id) {\n rows.set(id, shouldSelect)\n }\n })\n\n // Set selectAll synchronously to avoid race conditions with useEffect\n if (shouldSelect && rows.size > 0) {\n if (rows.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else {\n setSelectAll(SelectAllStatus.Some)\n }\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }\n\n setSelected(rows)\n },\n [docs, selectAll, user?.id],\n )\n\n const setSelection: SelectionContext['setSelection'] = useCallback(\n (id) => {\n const doc = docs.find((doc) => doc.id === id)\n\n if (doc?._isLocked && user?.id !== doc?._userEditing.id) {\n return // Prevent selection if the document is locked\n }\n\n const existingValue = selected.get(id)\n const isSelected = typeof existingValue === 'boolean' ? !existingValue : true\n\n const newMap = new Map(selected.set(id, isSelected))\n\n // If previously selected all and now deselecting, adjust status\n if (selectAll === SelectAllStatus.AllAvailable && !isSelected) {\n setSelectAll(SelectAllStatus.Some)\n }\n\n setSelected(newMap)\n },\n [selected, docs, selectAll, user?.id],\n )\n\n const getQueryParams = useCallback(\n (additionalWhereParams?: Where): string => {\n let where: Where\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n const params = parseSearchParams(searchParams)?.where as Where\n\n where = params || {\n id: {\n not_equals: '',\n },\n }\n } else {\n const ids = []\n\n for (const [key, value] of selected) {\n if (value) {\n ids.push(key)\n }\n }\n\n where = {\n id: {\n in: ids,\n },\n }\n }\n\n if (additionalWhereParams) {\n where = {\n and: [{ ...additionalWhereParams }, where],\n }\n }\n\n return qs.stringify(\n {\n locale,\n where,\n },\n { addQueryPrefix: true },\n )\n },\n [selectAll, selected, locale, searchParams],\n )\n\n const getSelectedIds = useCallback(() => reduceActiveSelections(selected), [selected])\n\n useEffect(() => {\n if (selectAll === SelectAllStatus.AllAvailable) {\n return\n }\n let some = false\n let all = true\n\n if (!selected.size) {\n all = false\n some = false\n } else {\n for (const [_, value] of selected) {\n all = all && value\n some = some || value\n }\n }\n\n if (all && selected.size === docs.length) {\n setSelectAll(SelectAllStatus.AllInPage)\n } else if (some) {\n setSelectAll(SelectAllStatus.Some)\n } else {\n setSelectAll(SelectAllStatus.None)\n }\n }, [selectAll, selected, totalDocs, docs])\n\n useEffect(() => {\n let newCount = 0\n\n if (selectAll === SelectAllStatus.AllAvailable) {\n newCount = totalDocs\n } else {\n for (const [_, value] of selected) {\n if (value) {\n newCount++\n }\n }\n }\n\n setCount(newCount)\n }, [selectAll, selected, totalDocs])\n\n useEffect(() => {\n setSelectAll(SelectAllStatus.None)\n setSelected(new Map())\n }, [query])\n\n const selectedIDs = useMemo(() => reduceActiveSelections(selected), [selected])\n\n contextRef.current = {\n count,\n getQueryParams,\n getSelectedIds,\n selectAll,\n selected,\n selectedIDs,\n setSelection,\n toggleAll,\n totalDocs,\n }\n\n return <Context value={contextRef.current}>{children}</Context>\n}\n\nexport const useSelection = (): SelectionContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -5,13 +5,16 @@ import type { RenderFieldServerFnArgs, RenderFieldServerFnReturnType } from '../
5
5
  import type { buildFormStateHandler } from '../../utilities/buildFormState.js';
6
6
  import type { buildTableStateHandler } from '../../utilities/buildTableState.js';
7
7
  import type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js';
8
- import type { schedulePublishHandler, SchedulePublishHandlerArgs } from '../../utilities/schedulePublishHandler.js';
8
+ import type { getUpcomingScheduledPublishHandler, GetUpcomingScheduledPublishHandlerArgs, schedulePublishHandler, SchedulePublishHandlerArgs } from '../../utilities/schedulePublishHandler.js';
9
9
  type GetFormStateClient = (args: {
10
10
  signal?: AbortSignal;
11
11
  } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>) => ReturnType<typeof buildFormStateHandler>;
12
12
  type SchedulePublishClient = (args: {
13
13
  signal?: AbortSignal;
14
14
  } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>) => ReturnType<typeof schedulePublishHandler>;
15
+ type GetUpcomingScheduledPublishClient = (args: {
16
+ signal?: AbortSignal;
17
+ } & Omit<GetUpcomingScheduledPublishHandlerArgs, 'clientConfig' | 'req'>) => ReturnType<typeof getUpcomingScheduledPublishHandler>;
15
18
  type GetTableStateClient = (args: {
16
19
  signal?: AbortSignal;
17
20
  } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>) => ReturnType<typeof buildTableStateHandler>;
@@ -64,6 +67,7 @@ export type ServerFunctionsContextType = {
64
67
  getDocumentSlots: GetDocumentSlots;
65
68
  getFormState: GetFormStateClient;
66
69
  getTableState: GetTableStateClient;
70
+ getUpcomingScheduledPublish: GetUpcomingScheduledPublishClient;
67
71
  renderDocument: RenderDocumentServerFunctionHookFn;
68
72
  schedulePublish: SchedulePublishClient;
69
73
  serverFunction: ServerFunctionClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ServerFunctions/index.tsx"],"names":[],"mappings":"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"}
@@ -47,6 +47,20 @@ export const ServerFunctionsProvider = ({
47
47
  error
48
48
  };
49
49
  }, [serverFunction]);
50
+ const getUpcomingScheduledPublish = useCallback(async args => {
51
+ const {
52
+ signal: remoteSignal,
53
+ ...rest
54
+ } = args;
55
+ if (remoteSignal?.aborted) {
56
+ return [];
57
+ }
58
+ const result = await serverFunction({
59
+ name: 'get-upcoming-scheduled-publish',
60
+ args: rest
61
+ });
62
+ return remoteSignal?.aborted ? [] : result;
63
+ }, [serverFunction]);
50
64
  const getFormState = useCallback(async args => {
51
65
  const {
52
66
  signal: remoteSignal,
@@ -175,6 +189,7 @@ export const ServerFunctionsProvider = ({
175
189
  getDocumentSlots,
176
190
  getFormState,
177
191
  getTableState,
192
+ getUpcomingScheduledPublish,
178
193
  renderDocument,
179
194
  schedulePublish,
180
195
  serverFunction,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","use","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","data","_internal_renderField","slugify","switchLanguage","lang","_jsx"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n AdminViewServerPropsOnly,\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentPreferences,\n DocumentSlots,\n FormState,\n Params,\n RenderDocumentVersionsProperties,\n ServerFunction,\n ServerFunctionClient,\n SlugifyServerFunctionArgs,\n} from 'payload'\nimport type { Slugify } from 'payload/shared'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type {\n RenderFieldServerFnArgs,\n RenderFieldServerFnReturnType,\n} from '../../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype SlugifyClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SlugifyServerFunctionArgs, 'clientConfig' | 'req'>,\n) => ReturnType<Slugify>\n\nexport type RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\ntype RenderDocumentBaseArgs = {\n collectionSlug: string\n disableActions?: boolean\n docID: number | string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n overrideEntityVisibility?: boolean\n paramsOverride?: AdminViewServerPropsOnly['params']\n redirectAfterCreate?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n redirectAfterRestore?: boolean\n searchParams?: Params\n /**\n * Properties specific to the versions view\n */\n versions?: RenderDocumentVersionsProperties\n}\n\nexport type RenderDocumentServerFunction = ServerFunction<\n RenderDocumentBaseArgs,\n Promise<RenderDocumentResult>\n>\n\ntype RenderDocumentServerFunctionHookFn = (\n // No req or importMap - those are augmented by handleServerFunctions\n args: {\n signal?: AbortSignal\n } & RenderDocumentBaseArgs,\n) => Promise<RenderDocumentResult>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n id?: number | string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype RenderFieldClient = (args: RenderFieldServerFnArgs) => Promise<RenderFieldServerFnReturnType>\n\ntype SwitchLanguageClient = (lang: string) => Promise<void>\n\nexport type ServerFunctionsContextType = {\n _internal_renderField: RenderFieldClient\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n renderDocument: RenderDocumentServerFunctionHookFn\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n slugify: SlugifyClient\n switchLanguage: SwitchLanguageClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.use(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error }\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocumentServerFunctionHookFn>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: {\n fallbackLocale: false,\n ...rest,\n } as Parameters<RenderDocumentServerFunctionHookFn>[0],\n })) as Awaited<ReturnType<RenderDocumentServerFunctionHookFn>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as Data\n\n if (!remoteSignal?.aborted) {\n return { data: result }\n }\n },\n [serverFunction],\n )\n\n const _internal_renderField = useCallback<RenderFieldClient>(\n async (args) => {\n try {\n const result = (await serverFunction({\n name: 'render-field',\n args,\n })) as RenderFieldServerFnReturnType\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const slugify = useCallback<SlugifyClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'slugify',\n args: { ...rest },\n })) as Awaited<ReturnType<Slugify>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const switchLanguage = useCallback<SwitchLanguageClient>(\n async (lang) => {\n await serverFunction({\n name: 'switch-language',\n args: { lang },\n })\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext\n value={{\n _internal_renderField,\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n renderDocument,\n schedulePublish,\n serverFunction,\n slugify,\n switchLanguage,\n }}\n >\n {children}\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","useCallback","ServerFunctionsContext","undefined","useServerFunctions","context","use","Error","ServerFunctionsProvider","children","serverFunction","getDocumentSlots","args","name","schedulePublish","signal","remoteSignal","rest","aborted","result","_err","console","error","type","doc","value","relationTo","getUpcomingScheduledPublish","getFormState","fallbackLocale","state","getTableState","renderDocument","copyDataFromLocale","data","_internal_renderField","slugify","switchLanguage","lang","_jsx"],"sources":["../../../src/providers/ServerFunctions/index.tsx"],"sourcesContent":["import type {\n AdminViewServerPropsOnly,\n BuildFormStateArgs,\n BuildTableStateArgs,\n Data,\n DocumentPreferences,\n DocumentSlots,\n FormState,\n Params,\n RenderDocumentVersionsProperties,\n ServerFunction,\n ServerFunctionClient,\n SlugifyServerFunctionArgs,\n} from 'payload'\nimport type { Slugify } from 'payload/shared'\n\nimport React, { createContext, useCallback } from 'react'\n\nimport type {\n RenderFieldServerFnArgs,\n RenderFieldServerFnReturnType,\n} from '../../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport type { buildFormStateHandler } from '../../utilities/buildFormState.js'\nimport type { buildTableStateHandler } from '../../utilities/buildTableState.js'\nimport type { CopyDataFromLocaleArgs } from '../../utilities/copyDataFromLocale.js'\nimport type {\n getUpcomingScheduledPublishHandler,\n GetUpcomingScheduledPublishHandlerArgs,\n schedulePublishHandler,\n SchedulePublishHandlerArgs,\n} from '../../utilities/schedulePublishHandler.js'\n\ntype GetFormStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildFormStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildFormStateHandler>\n\ntype SchedulePublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SchedulePublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof schedulePublishHandler>\n\ntype GetUpcomingScheduledPublishClient = (\n args: {\n signal?: AbortSignal\n } & Omit<GetUpcomingScheduledPublishHandlerArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof getUpcomingScheduledPublishHandler>\n\ntype GetTableStateClient = (\n args: {\n signal?: AbortSignal\n } & Omit<BuildTableStateArgs, 'clientConfig' | 'req'>,\n) => ReturnType<typeof buildTableStateHandler>\n\ntype SlugifyClient = (\n args: {\n signal?: AbortSignal\n } & Omit<SlugifyServerFunctionArgs, 'clientConfig' | 'req'>,\n) => ReturnType<Slugify>\n\nexport type RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\ntype RenderDocumentBaseArgs = {\n collectionSlug: string\n disableActions?: boolean\n docID: number | string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n overrideEntityVisibility?: boolean\n paramsOverride?: AdminViewServerPropsOnly['params']\n redirectAfterCreate?: boolean\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n redirectAfterRestore?: boolean\n searchParams?: Params\n /**\n * Properties specific to the versions view\n */\n versions?: RenderDocumentVersionsProperties\n}\n\nexport type RenderDocumentServerFunction = ServerFunction<\n RenderDocumentBaseArgs,\n Promise<RenderDocumentResult>\n>\n\ntype RenderDocumentServerFunctionHookFn = (\n // No req or importMap - those are augmented by handleServerFunctions\n args: {\n signal?: AbortSignal\n } & RenderDocumentBaseArgs,\n) => Promise<RenderDocumentResult>\n\ntype CopyDataFromLocaleClient = (\n args: {\n signal?: AbortSignal\n } & Omit<CopyDataFromLocaleArgs, 'req'>,\n) => Promise<{ data: Data }>\n\ntype GetDocumentSlots = (args: {\n collectionSlug: string\n id?: number | string\n signal?: AbortSignal\n}) => Promise<DocumentSlots>\n\ntype RenderFieldClient = (args: RenderFieldServerFnArgs) => Promise<RenderFieldServerFnReturnType>\n\ntype SwitchLanguageClient = (lang: string) => Promise<void>\n\nexport type ServerFunctionsContextType = {\n _internal_renderField: RenderFieldClient\n copyDataFromLocale: CopyDataFromLocaleClient\n getDocumentSlots: GetDocumentSlots\n getFormState: GetFormStateClient\n getTableState: GetTableStateClient\n getUpcomingScheduledPublish: GetUpcomingScheduledPublishClient\n renderDocument: RenderDocumentServerFunctionHookFn\n schedulePublish: SchedulePublishClient\n serverFunction: ServerFunctionClient\n slugify: SlugifyClient\n switchLanguage: SwitchLanguageClient\n}\n\nexport const ServerFunctionsContext = createContext<ServerFunctionsContextType | undefined>(\n undefined,\n)\n\nexport const useServerFunctions = () => {\n const context = React.use(ServerFunctionsContext)\n if (context === undefined) {\n throw new Error('useServerFunctions must be used within a ServerFunctionsProvider')\n }\n return context\n}\n\nexport const ServerFunctionsProvider: React.FC<{\n children: React.ReactNode\n serverFunction: ServerFunctionClient\n}> = ({ children, serverFunction }) => {\n if (!serverFunction) {\n throw new Error('ServerFunctionsProvider requires a serverFunction prop')\n }\n\n const getDocumentSlots = useCallback<GetDocumentSlots>(\n async (args) =>\n await serverFunction({\n name: 'render-document-slots',\n args,\n }),\n [serverFunction],\n )\n\n const schedulePublish = useCallback<SchedulePublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n try {\n if (!remoteSignal?.aborted) {\n const result = await serverFunction({\n name: 'schedule-publish',\n args: { ...rest },\n })\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n let error = `Error scheduling ${rest.type}`\n\n if (rest.doc) {\n error += ` for document with ID ${rest.doc.value} in collection ${rest.doc.relationTo}`\n }\n\n return { error }\n },\n [serverFunction],\n )\n\n const getUpcomingScheduledPublish = useCallback<GetUpcomingScheduledPublishClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args\n\n if (remoteSignal?.aborted) {\n return []\n }\n\n const result = (await serverFunction({\n name: 'get-upcoming-scheduled-publish',\n args: rest,\n })) as Awaited<ReturnType<typeof getUpcomingScheduledPublishHandler>>\n\n return remoteSignal?.aborted ? [] : result\n },\n [serverFunction],\n )\n\n const getFormState = useCallback<GetFormStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'form-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildFormStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n return { state: null }\n },\n [serverFunction],\n )\n\n const getTableState = useCallback<GetTableStateClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n if (!remoteSignal?.aborted) {\n const result = (await serverFunction({\n name: 'table-state',\n args: { fallbackLocale: false, ...rest },\n })) as Awaited<ReturnType<typeof buildTableStateHandler>> // TODO: infer this type when `strictNullChecks` is enabled\n\n if (!remoteSignal?.aborted) {\n return result\n }\n }\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n\n // return { state: args.formState }\n },\n [serverFunction],\n )\n\n const renderDocument = useCallback<RenderDocumentServerFunctionHookFn>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n try {\n const result = (await serverFunction({\n name: 'render-document',\n args: {\n fallbackLocale: false,\n ...rest,\n } as Parameters<RenderDocumentServerFunctionHookFn>[0],\n })) as Awaited<ReturnType<RenderDocumentServerFunctionHookFn>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const copyDataFromLocale = useCallback<CopyDataFromLocaleClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n const result = (await serverFunction({\n name: 'copy-data-from-locale',\n args: rest,\n })) as Data\n\n if (!remoteSignal?.aborted) {\n return { data: result }\n }\n },\n [serverFunction],\n )\n\n const _internal_renderField = useCallback<RenderFieldClient>(\n async (args) => {\n try {\n const result = (await serverFunction({\n name: 'render-field',\n args,\n })) as RenderFieldServerFnReturnType\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const slugify = useCallback<SlugifyClient>(\n async (args) => {\n const { signal: remoteSignal, ...rest } = args || {}\n\n try {\n const result = (await serverFunction({\n name: 'slugify',\n args: { ...rest },\n })) as Awaited<ReturnType<Slugify>> // TODO: infer this type when `strictNullChecks` is enabled\n\n return result\n } catch (_err) {\n console.error(_err) // eslint-disable-line no-console\n }\n },\n [serverFunction],\n )\n\n const switchLanguage = useCallback<SwitchLanguageClient>(\n async (lang) => {\n await serverFunction({\n name: 'switch-language',\n args: { lang },\n })\n },\n [serverFunction],\n )\n\n return (\n <ServerFunctionsContext\n value={{\n _internal_renderField,\n copyDataFromLocale,\n getDocumentSlots,\n getFormState,\n getTableState,\n getUpcomingScheduledPublish,\n renderDocument,\n schedulePublish,\n serverFunction,\n slugify,\n switchLanguage,\n }}\n >\n {children}\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}