@payloadcms/ui 4.0.0-internal.af6aad0 → 4.0.0-internal.b8e7c89

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 (510) hide show
  1. package/dist/elements/AddNewRelation/index.css +4 -0
  2. package/dist/elements/AddNewRelation/index.js +2 -2
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/AppHeader/index.css +0 -4
  5. package/dist/elements/AppHeader/index.d.ts +8 -1
  6. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  7. package/dist/elements/AppHeader/index.js +14 -5
  8. package/dist/elements/AppHeader/index.js.map +1 -1
  9. package/dist/elements/Autosave/index.d.ts.map +1 -1
  10. package/dist/elements/Autosave/index.js +2 -3
  11. package/dist/elements/Autosave/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 +2 -3
  14. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  15. package/dist/elements/Button/index.css +0 -23
  16. package/dist/elements/Button/types.d.ts +1 -1
  17. package/dist/elements/Button/types.d.ts.map +1 -1
  18. package/dist/elements/Button/types.js.map +1 -1
  19. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  20. package/dist/elements/CopyLocaleData/index.js +8 -9
  21. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  22. package/dist/elements/DefaultListViewTabs/index.css +0 -1
  23. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  24. package/dist/elements/DefaultListViewTabs/index.js +62 -84
  25. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  26. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  27. package/dist/elements/DeleteMany/index.js +2 -3
  28. package/dist/elements/DeleteMany/index.js.map +1 -1
  29. package/dist/elements/DocumentDrawer/types.d.ts +1 -1
  30. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  31. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  32. package/dist/elements/Drawer/types.d.ts +2 -2
  33. package/dist/elements/Drawer/types.d.ts.map +1 -1
  34. package/dist/elements/Drawer/types.js.map +1 -1
  35. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  36. package/dist/elements/DuplicateDocument/index.js +2 -3
  37. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  38. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  39. package/dist/elements/EditMany/DrawerContent.js +2 -3
  40. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  41. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +4 -22
  42. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  43. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +49 -68
  44. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  45. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +15 -100
  46. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  47. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +137 -97
  48. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  49. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +1 -1
  50. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  51. package/dist/elements/Hierarchy/ColumnBrowser/index.js +23 -51
  52. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  53. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +3 -26
  54. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  55. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  56. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  57. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -6
  58. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  59. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +3 -1
  60. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -1
  61. package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +36 -0
  62. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +13 -0
  63. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -0
  64. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +141 -0
  65. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -0
  66. package/dist/elements/Hierarchy/Field/index.client.d.ts +0 -5
  67. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
  68. package/dist/elements/Hierarchy/Field/index.client.js +95 -120
  69. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  70. package/dist/elements/Hierarchy/Field/index.css +34 -3
  71. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +4 -18
  72. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  73. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +24 -88
  74. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  75. package/dist/elements/Hierarchy/Modal/index.css +53 -4
  76. package/dist/elements/Hierarchy/Modal/index.d.ts +2 -5
  77. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  78. package/dist/elements/Hierarchy/Modal/index.js +99 -136
  79. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  80. package/dist/elements/Hierarchy/Modal/types.d.ts +0 -15
  81. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  82. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  83. package/dist/elements/Hierarchy/MoveMany/index.d.ts +3 -7
  84. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  85. package/dist/elements/Hierarchy/MoveMany/index.js +171 -45
  86. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  87. package/dist/elements/Hierarchy/Search/index.css +9 -2
  88. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  89. package/dist/elements/Hierarchy/Search/index.js +73 -6
  90. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  91. package/dist/elements/Hierarchy/Search/types.d.ts +6 -2
  92. package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -1
  93. package/dist/elements/Hierarchy/Search/types.js.map +1 -1
  94. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  95. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  96. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  97. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +4 -0
  98. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  99. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +186 -101
  100. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  101. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  102. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +21 -1
  103. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  104. package/dist/elements/Hierarchy/Tree/LoadMore/index.css +3 -3
  105. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +29 -59
  106. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +1 -1
  107. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  108. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +10 -54
  109. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  110. package/dist/elements/Hierarchy/Tree/index.css +9 -8
  111. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  112. package/dist/elements/Hierarchy/Tree/index.js +47 -29
  113. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  114. package/dist/elements/Hierarchy/Tree/types.d.ts +1 -9
  115. package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -1
  116. package/dist/elements/Hierarchy/Tree/types.js.map +1 -1
  117. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  118. package/dist/elements/Hierarchy/Tree/useChildren.js +1 -11
  119. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  120. package/dist/elements/ListControls/index.d.ts.map +1 -1
  121. package/dist/elements/ListControls/index.js +2 -3
  122. package/dist/elements/ListControls/index.js.map +1 -1
  123. package/dist/elements/ListControls/types.d.ts +0 -4
  124. package/dist/elements/ListControls/types.d.ts.map +1 -1
  125. package/dist/elements/ListControls/types.js.map +1 -1
  126. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  127. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
  128. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  129. package/dist/elements/LivePreview/Window/index.js +1 -1
  130. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  131. package/dist/elements/Localizer/index.js +1 -1
  132. package/dist/elements/Localizer/index.js.map +1 -1
  133. package/dist/elements/Nav/NavSidebarToggle/index.js +1 -1
  134. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  135. package/dist/elements/Nav/NavWrapper/index.d.ts +0 -1
  136. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  137. package/dist/elements/Nav/NavWrapper/index.js +18 -12
  138. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  139. package/dist/elements/Nav/SidebarTabs/index.css +2 -1
  140. package/dist/elements/Nav/context.d.ts +1 -0
  141. package/dist/elements/Nav/context.d.ts.map +1 -1
  142. package/dist/elements/Nav/context.js +67 -92
  143. package/dist/elements/Nav/context.js.map +1 -1
  144. package/dist/elements/Nav/index.css +42 -47
  145. package/dist/elements/Nav/index.d.ts +0 -4
  146. package/dist/elements/Nav/index.d.ts.map +1 -1
  147. package/dist/elements/Nav/index.js +1 -16
  148. package/dist/elements/Nav/index.js.map +1 -1
  149. package/dist/elements/NavGroup/index.css +15 -29
  150. package/dist/elements/Popup/PopupButtonList/index.css +16 -32
  151. package/dist/elements/Popup/index.css +0 -6
  152. package/dist/elements/Popup/index.d.ts +0 -10
  153. package/dist/elements/Popup/index.d.ts.map +1 -1
  154. package/dist/elements/Popup/index.js +5 -12
  155. package/dist/elements/Popup/index.js.map +1 -1
  156. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  157. package/dist/elements/PublishButton/ScheduleDrawer/index.js +8 -30
  158. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  159. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  160. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  161. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  162. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  163. package/dist/elements/PublishButton/index.js +5 -6
  164. package/dist/elements/PublishButton/index.js.map +1 -1
  165. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  166. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  167. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  168. package/dist/elements/ReactSelect/types.d.ts +0 -5
  169. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  170. package/dist/elements/ReactSelect/types.js.map +1 -1
  171. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  172. package/dist/elements/RestoreMany/index.js +2 -3
  173. package/dist/elements/RestoreMany/index.js.map +1 -1
  174. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  175. package/dist/elements/SaveDraftButton/index.js +2 -3
  176. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  177. package/dist/elements/SelectAll/index.d.ts.map +1 -1
  178. package/dist/elements/SelectAll/index.js +2 -1
  179. package/dist/elements/SelectAll/index.js.map +1 -1
  180. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  181. package/dist/elements/SelectRow/index.js +2 -1
  182. package/dist/elements/SelectRow/index.js.map +1 -1
  183. package/dist/elements/SidebarRow/index.css +5 -1
  184. package/dist/elements/SidebarToggle/index.css +1 -3
  185. package/dist/elements/Status/index.d.ts.map +1 -1
  186. package/dist/elements/Status/index.js +2 -3
  187. package/dist/elements/Status/index.js.map +1 -1
  188. package/dist/elements/StepNav/index.d.ts.map +1 -1
  189. package/dist/elements/StepNav/index.js +10 -14
  190. package/dist/elements/StepNav/index.js.map +1 -1
  191. package/dist/elements/StepNav/types.d.ts +0 -6
  192. package/dist/elements/StepNav/types.d.ts.map +1 -1
  193. package/dist/elements/StepNav/types.js.map +1 -1
  194. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +7 -5
  195. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  196. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +3 -14
  197. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  198. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  199. package/dist/elements/Table/OrderableTable.js +2 -3
  200. package/dist/elements/Table/OrderableTable.js.map +1 -1
  201. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  202. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  203. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  204. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  205. package/dist/elements/UnpublishButton/index.js +3 -4
  206. package/dist/elements/UnpublishButton/index.js.map +1 -1
  207. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  208. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  209. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  210. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  211. package/dist/elements/UserMenu/LanguageMenu/index.js +39 -83
  212. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  213. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  214. package/dist/elements/UserMenu/SettingsMenu/index.js +21 -57
  215. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  216. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  217. package/dist/elements/UserMenu/ThemeMenu/index.js +39 -83
  218. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  219. package/dist/elements/UserMenu/index.css +2 -32
  220. package/dist/elements/UserMenu/index.d.ts +0 -1
  221. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  222. package/dist/elements/UserMenu/index.js +51 -77
  223. package/dist/elements/UserMenu/index.js.map +1 -1
  224. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  225. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  226. package/dist/exports/client/index.d.ts +0 -4
  227. package/dist/exports/client/index.d.ts.map +1 -1
  228. package/dist/exports/client/index.js +1 -1
  229. package/dist/exports/client/index.js.map +3 -3
  230. package/dist/fields/Array/index.d.ts.map +1 -1
  231. package/dist/fields/Array/index.js +2 -3
  232. package/dist/fields/Array/index.js.map +1 -1
  233. package/dist/fields/Blocks/index.d.ts.map +1 -1
  234. package/dist/fields/Blocks/index.js +2 -3
  235. package/dist/fields/Blocks/index.js.map +1 -1
  236. package/dist/fields/Checkbox/Input.d.ts +2 -2
  237. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  238. package/dist/fields/Checkbox/Input.js +152 -134
  239. package/dist/fields/Checkbox/Input.js.map +1 -1
  240. package/dist/fields/Checkbox/index.css +155 -168
  241. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  242. package/dist/fields/FieldLabel/index.js +4 -5
  243. package/dist/fields/FieldLabel/index.js.map +1 -1
  244. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  245. package/dist/fields/Relationship/Input.js +8 -27
  246. package/dist/fields/Relationship/Input.js.map +1 -1
  247. package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
  248. package/dist/fields/Relationship/optionsReducer.js +0 -2
  249. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  250. package/dist/fields/Relationship/types.d.ts +0 -24
  251. package/dist/fields/Relationship/types.d.ts.map +1 -1
  252. package/dist/fields/Relationship/types.js.map +1 -1
  253. package/dist/fields/Slug/index.d.ts.map +1 -1
  254. package/dist/fields/Slug/index.js +2 -3
  255. package/dist/fields/Slug/index.js.map +1 -1
  256. package/dist/fields/Upload/Input.d.ts.map +1 -1
  257. package/dist/fields/Upload/Input.js +2 -3
  258. package/dist/fields/Upload/Input.js.map +1 -1
  259. package/dist/fields/Upload/Input.spec.js +2 -1
  260. package/dist/fields/Upload/Input.spec.js.map +1 -1
  261. package/dist/fields/shared/index.d.ts +1 -1
  262. package/dist/fields/shared/index.d.ts.map +1 -1
  263. package/dist/fields/shared/index.js.map +1 -1
  264. package/dist/forms/Form/index.d.ts.map +1 -1
  265. package/dist/forms/Form/index.js +2 -3
  266. package/dist/forms/Form/index.js.map +1 -1
  267. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  268. package/dist/forms/NullifyField/index.js +2 -3
  269. package/dist/forms/NullifyField/index.js.map +1 -1
  270. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  271. package/dist/hooks/usePayloadAPI.js +2 -3
  272. package/dist/hooks/usePayloadAPI.js.map +1 -1
  273. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  274. package/dist/providers/DocumentInfo/index.js +2 -3
  275. package/dist/providers/DocumentInfo/index.js.map +1 -1
  276. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  277. package/dist/providers/Hierarchy/index.js +24 -53
  278. package/dist/providers/Hierarchy/index.js.map +1 -1
  279. package/dist/providers/Hierarchy/types.d.ts +0 -2
  280. package/dist/providers/Hierarchy/types.d.ts.map +1 -1
  281. package/dist/providers/Hierarchy/types.js.map +1 -1
  282. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  283. package/dist/providers/LivePreview/index.js +13 -6
  284. package/dist/providers/LivePreview/index.js.map +1 -1
  285. package/dist/providers/Locale/index.d.ts +1 -5
  286. package/dist/providers/Locale/index.d.ts.map +1 -1
  287. package/dist/providers/Locale/index.js +61 -139
  288. package/dist/providers/Locale/index.js.map +1 -1
  289. package/dist/providers/Selection/index.d.ts.map +1 -1
  290. package/dist/providers/Selection/index.js +2 -3
  291. package/dist/providers/Selection/index.js.map +1 -1
  292. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  293. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  294. package/dist/providers/ServerFunctions/index.js +15 -0
  295. package/dist/providers/ServerFunctions/index.js.map +1 -1
  296. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  297. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  298. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  299. package/dist/styles.css +1 -1
  300. package/dist/templates/Default/Wrapper/index.css +1 -2
  301. package/dist/templates/Default/Wrapper/index.d.ts +0 -2
  302. package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
  303. package/dist/templates/Default/Wrapper/index.js +6 -12
  304. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  305. package/dist/templates/Default/index.css +1 -3
  306. package/dist/templates/Default/index.d.ts.map +1 -1
  307. package/dist/templates/Default/index.js +15 -17
  308. package/dist/templates/Default/index.js.map +1 -1
  309. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  310. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  311. package/dist/utilities/formatAbsoluteURL.js +18 -8
  312. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  313. package/dist/utilities/formatAbsoluteURL.spec.js +27 -0
  314. package/dist/utilities/formatAbsoluteURL.spec.js.map +1 -0
  315. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  316. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  317. package/dist/utilities/getHasScheduledPublish.js +2 -5
  318. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  319. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  320. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  321. package/dist/utilities/isAbsoluteURL.js +15 -0
  322. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  323. package/dist/utilities/isAbsoluteURL.spec.js +11 -0
  324. package/dist/utilities/isAbsoluteURL.spec.js.map +1 -0
  325. package/dist/utilities/isHttpURL.d.ts +3 -0
  326. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  327. package/dist/utilities/isHttpURL.js +12 -0
  328. package/dist/utilities/isHttpURL.js.map +1 -0
  329. package/dist/utilities/isHttpURL.spec.js +25 -0
  330. package/dist/utilities/isHttpURL.spec.js.map +1 -0
  331. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  332. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  333. package/dist/utilities/schedulePublishHandler.js +68 -4
  334. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  335. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  336. package/dist/utilities/serverFunctionRegistry.js +2 -1
  337. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  338. package/dist/utilities/slugify.d.ts.map +1 -1
  339. package/dist/utilities/slugify.js +2 -0
  340. package/dist/utilities/slugify.js.map +1 -1
  341. package/dist/views/API/index.client.d.ts.map +1 -1
  342. package/dist/views/API/index.client.js +2 -3
  343. package/dist/views/API/index.client.js.map +1 -1
  344. package/dist/views/Document/index.d.ts.map +1 -1
  345. package/dist/views/Document/index.js +1 -2
  346. package/dist/views/Document/index.js.map +1 -1
  347. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  348. package/dist/views/HierarchyList/DocumentListSelection/index.js +105 -100
  349. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  350. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +1 -6
  351. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -1
  352. package/dist/views/HierarchyList/HierarchyListHeader/index.js +8 -10
  353. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  354. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
  355. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +10 -11
  356. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  357. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
  358. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +6 -3
  359. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
  360. package/dist/views/HierarchyList/HierarchyTable/index.css +0 -51
  361. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +1 -13
  362. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  363. package/dist/views/HierarchyList/HierarchyTable/index.js +38 -156
  364. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  365. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -6
  366. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -1
  367. package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -1
  368. package/dist/views/HierarchyList/index.d.ts.map +1 -1
  369. package/dist/views/HierarchyList/index.js +20 -103
  370. package/dist/views/HierarchyList/index.js.map +1 -1
  371. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  372. package/dist/views/List/ListSelection/index.js +122 -138
  373. package/dist/views/List/ListSelection/index.js.map +1 -1
  374. package/dist/views/List/handleHierarchy.d.ts +1 -6
  375. package/dist/views/List/handleHierarchy.d.ts.map +1 -1
  376. package/dist/views/List/handleHierarchy.js +3 -34
  377. package/dist/views/List/handleHierarchy.js.map +1 -1
  378. package/dist/views/List/index.client.d.ts.map +1 -1
  379. package/dist/views/List/index.client.js +5 -129
  380. package/dist/views/List/index.client.js.map +1 -1
  381. package/dist/views/List/index.d.ts.map +1 -1
  382. package/dist/views/List/index.js +16 -27
  383. package/dist/views/List/index.js.map +1 -1
  384. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  385. package/dist/views/Root/getRouteData.js +2 -8
  386. package/dist/views/Root/getRouteData.js.map +1 -1
  387. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  388. package/dist/views/Version/Default/SetStepNav.js +10 -13
  389. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  390. package/dist/views/Version/Default/index.d.ts.map +1 -1
  391. package/dist/views/Version/Default/index.js +12 -13
  392. package/dist/views/Version/Default/index.js.map +1 -1
  393. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  394. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  395. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  396. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  397. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  398. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  399. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  400. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js +258 -0
  401. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js.map +1 -0
  402. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  403. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  404. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  405. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  406. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  407. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  408. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +56 -2
  409. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  410. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  411. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  412. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  413. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  414. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +3 -13
  415. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  416. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  417. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  418. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  419. package/package.json +6 -5
  420. package/dist/elements/Hierarchy/CreateNewButton/index.css +0 -9
  421. package/dist/elements/Hierarchy/CreateNewButton/index.d.ts +0 -9
  422. package/dist/elements/Hierarchy/CreateNewButton/index.d.ts.map +0 -1
  423. package/dist/elements/Hierarchy/CreateNewButton/index.js +0 -111
  424. package/dist/elements/Hierarchy/CreateNewButton/index.js.map +0 -1
  425. package/dist/elements/Hierarchy/Modal/Footer/index.css +0 -45
  426. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +0 -28
  427. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +0 -1
  428. package/dist/elements/Hierarchy/Modal/Footer/index.js +0 -166
  429. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +0 -1
  430. package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts +0 -22
  431. package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts.map +0 -1
  432. package/dist/elements/Hierarchy/getFolderHierarchySlug.js +0 -17
  433. package/dist/elements/Hierarchy/getFolderHierarchySlug.js.map +0 -1
  434. package/dist/elements/Hierarchy/move/moveDocuments.d.ts +0 -34
  435. package/dist/elements/Hierarchy/move/moveDocuments.d.ts.map +0 -1
  436. package/dist/elements/Hierarchy/move/moveDocuments.js +0 -94
  437. package/dist/elements/Hierarchy/move/moveDocuments.js.map +0 -1
  438. package/dist/elements/SegmentedControl/index.css +0 -58
  439. package/dist/elements/SegmentedControl/index.d.ts +0 -19
  440. package/dist/elements/SegmentedControl/index.d.ts.map +0 -1
  441. package/dist/elements/SegmentedControl/index.js +0 -104
  442. package/dist/elements/SegmentedControl/index.js.map +0 -1
  443. package/dist/elements/StepNav/DropTarget/index.css +0 -20
  444. package/dist/elements/StepNav/DropTarget/index.d.ts +0 -16
  445. package/dist/elements/StepNav/DropTarget/index.d.ts.map +0 -1
  446. package/dist/elements/StepNav/DropTarget/index.js +0 -71
  447. package/dist/elements/StepNav/DropTarget/index.js.map +0 -1
  448. package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts +0 -18
  449. package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts.map +0 -1
  450. package/dist/elements/UserMenu/HoverSubmenuGroup.js +0 -38
  451. package/dist/elements/UserMenu/HoverSubmenuGroup.js.map +0 -1
  452. package/dist/elements/UserMenu/useHoverSubmenu.d.ts +0 -21
  453. package/dist/elements/UserMenu/useHoverSubmenu.d.ts.map +0 -1
  454. package/dist/elements/UserMenu/useHoverSubmenu.js +0 -260
  455. package/dist/elements/UserMenu/useHoverSubmenu.js.map +0 -1
  456. package/dist/elements/ViewModeToggle/index.d.ts +0 -8
  457. package/dist/elements/ViewModeToggle/index.d.ts.map +0 -1
  458. package/dist/elements/ViewModeToggle/index.js +0 -29
  459. package/dist/elements/ViewModeToggle/index.js.map +0 -1
  460. package/dist/icons/CollapseLayers/index.css +0 -5
  461. package/dist/icons/CollapseLayers/index.d.ts +0 -7
  462. package/dist/icons/CollapseLayers/index.d.ts.map +0 -1
  463. package/dist/icons/CollapseLayers/index.js +0 -23
  464. package/dist/icons/CollapseLayers/index.js.map +0 -1
  465. package/dist/icons/Table/index.css +0 -5
  466. package/dist/icons/Table/index.d.ts +0 -7
  467. package/dist/icons/Table/index.d.ts.map +0 -1
  468. package/dist/icons/Table/index.js +0 -25
  469. package/dist/icons/Table/index.js.map +0 -1
  470. package/dist/providers/HierarchyDnd/index.css +0 -51
  471. package/dist/providers/HierarchyDnd/index.d.ts +0 -21
  472. package/dist/providers/HierarchyDnd/index.d.ts.map +0 -1
  473. package/dist/providers/HierarchyDnd/index.js +0 -163
  474. package/dist/providers/HierarchyDnd/index.js.map +0 -1
  475. package/dist/providers/HierarchyDnd/types.d.ts +0 -56
  476. package/dist/providers/HierarchyDnd/types.d.ts.map +0 -1
  477. package/dist/providers/HierarchyDnd/types.js +0 -21
  478. package/dist/providers/HierarchyDnd/types.js.map +0 -1
  479. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.css +0 -216
  480. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts +0 -20
  481. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts.map +0 -1
  482. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js +0 -182
  483. package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js.map +0 -1
  484. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.css +0 -38
  485. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts +0 -15
  486. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts.map +0 -1
  487. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js +0 -85
  488. package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js.map +0 -1
  489. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.css +0 -98
  490. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts +0 -27
  491. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts.map +0 -1
  492. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js +0 -84
  493. package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js.map +0 -1
  494. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts +0 -19
  495. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts.map +0 -1
  496. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js +0 -100
  497. package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js.map +0 -1
  498. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts +0 -53
  499. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts.map +0 -1
  500. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js +0 -145
  501. package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js.map +0 -1
  502. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts +0 -8
  503. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts.map +0 -1
  504. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js +0 -21
  505. package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js.map +0 -1
  506. package/dist/views/HierarchyList/HierarchyCards/index.css +0 -115
  507. package/dist/views/HierarchyList/HierarchyCards/index.d.ts +0 -80
  508. package/dist/views/HierarchyList/HierarchyCards/index.d.ts.map +0 -1
  509. package/dist/views/HierarchyList/HierarchyCards/index.js +0 -457
  510. package/dist/views/HierarchyList/HierarchyCards/index.js.map +0 -1
@@ -1,10 +1,9 @@
1
1
  @layer payload-default {
2
2
  .template-default {
3
- height: 100vh;
3
+ min-height: 100vh;
4
4
  display: grid;
5
5
  position: relative;
6
6
  isolation: isolate;
7
- overflow: hidden;
8
7
  }
9
8
 
10
9
  @media (min-width: 1441px) {
@@ -1,10 +1,8 @@
1
- import type { ViewTypes } from 'payload';
2
1
  import React from 'react';
3
2
  import './index.css';
4
3
  export declare const Wrapper: React.FC<{
5
4
  baseClass?: string;
6
5
  children?: React.ReactNode;
7
6
  className?: string;
8
- viewType?: ViewTypes;
9
7
  }>;
10
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/templates/Default/Wrapper/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAyBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/templates/Default/Wrapper/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAkBA,CAAA"}
@@ -4,15 +4,13 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import React from 'react';
6
6
  import { useNav } from '../../../elements/Nav/context.js';
7
- import { HierarchyDndProvider } from '../../../providers/HierarchyDnd/index.js';
8
7
  import './index.css';
9
8
  export const Wrapper = props => {
10
- const $ = _c(9);
9
+ const $ = _c(8);
11
10
  const {
12
11
  baseClass,
13
12
  children,
14
- className,
15
- viewType
13
+ className
16
14
  } = props;
17
15
  const {
18
16
  hydrated,
@@ -33,20 +31,16 @@ export const Wrapper = props => {
33
31
  }
34
32
  const t3 = t2.join(" ");
35
33
  let t4;
36
- if ($[5] !== children || $[6] !== t3 || $[7] !== viewType) {
37
- const content = _jsx("div", {
34
+ if ($[5] !== children || $[6] !== t3) {
35
+ t4 = _jsx("div", {
38
36
  className: t3,
39
37
  children
40
38
  });
41
- t4 = viewType === "hierarchy" ? _jsx(HierarchyDndProvider, {
42
- children: content
43
- }) : content;
44
39
  $[5] = children;
45
40
  $[6] = t3;
46
- $[7] = viewType;
47
- $[8] = t4;
41
+ $[7] = t4;
48
42
  } else {
49
- t4 = $[8];
43
+ t4 = $[7];
50
44
  }
51
45
  return t4;
52
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useNav","HierarchyDndProvider","Wrapper","props","$","baseClass","children","className","viewType","hydrated","navOpen","t0","t1","t2","filter","Boolean","t3","join","t4","content","_jsx"],"sources":["../../../../src/templates/Default/Wrapper/index.tsx"],"sourcesContent":["'use client'\nimport type { ViewTypes } from 'payload'\n\nimport React from 'react'\n\nimport { useNav } from '../../../elements/Nav/context.js'\nimport { HierarchyDndProvider } from '../../../providers/HierarchyDnd/index.js'\nimport './index.css'\n\nexport const Wrapper: React.FC<{\n baseClass?: string\n children?: React.ReactNode\n className?: string\n viewType?: ViewTypes\n}> = (props) => {\n const { baseClass, children, className, viewType } = props\n const { hydrated, navOpen } = useNav()\n\n const content = (\n <div\n className={[\n baseClass,\n className,\n navOpen && `${baseClass}--nav-open`,\n hydrated && `${baseClass}--nav-hydrated`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {children}\n </div>\n )\n\n /*\n * The hierarchy drag context has to enclose both the nav and the view, since the sidebar tree is\n * a drop target. It is mounted only on the hierarchy view so it never wraps the field-level drag\n * contexts that array and blocks rows set up on document views.\n */\n return viewType === 'hierarchy' ? <HierarchyDndProvider>{content}</HierarchyDndProvider> : content\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,oBAAoB,QAAQ;AACrC,OAAO;AAEP,OAAO,MAAMC,OAAA,GAKRC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EACH;IAAAO,SAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC;EAAA,IAAqDL,KAAA;EACrD;IAAAM,QAAA;IAAAC;EAAA,IAA8BV,MAAA;EAOxB,MAAAW,EAAA,GAAAD,OAAA,IAAW,GAAGL,SAAA,YAAqB;EACnC,MAAAO,EAAA,GAAAH,QAAA,IAAY,GAAGJ,SAAA,gBAAyB;EAAA,IAAAQ,EAAA;EAAA,IAAAT,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAO,EAAA,IAAAP,CAAA,QAAAQ,EAAA;IAJ/BC,EAAA,IACTR,SAAA,EACAE,SAAA,EACAI,EAAmC,EACnCC,EAAwC,EAAAE,MAAA,CAAAC,OAEhC;IAAAX,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;IAAAR,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EANC,MAAAY,EAAA,GAAAH,EAMD,CAAAI,IAAA,CACF;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAY,EAAA,IAAAZ,CAAA,QAAAI,QAAA;IATZ,MAAAW,OAAA,GACEC,IAAA,CAAC;MAAAb,SAAA,EACYS,EAOH;MAAAV;IAAA,C;IAWLY,EAAA,GAAAV,QAAA,KAAa,cAAcY,IAAA,CAAAnB,oBAAA;MAAAK,QAAA,EAAuBa;IAAA,C,IAAkCA,OAAA;IAAAf,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAI,QAAA;IAAAJ,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,OAApFc,EAAoF;AAAA,CAC7F","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useNav","Wrapper","props","$","baseClass","children","className","hydrated","navOpen","t0","t1","t2","filter","Boolean","t3","join","t4","_jsx"],"sources":["../../../../src/templates/Default/Wrapper/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useNav } from '../../../elements/Nav/context.js'\nimport './index.css'\n\nexport const Wrapper: React.FC<{\n baseClass?: string\n children?: React.ReactNode\n className?: string\n}> = (props) => {\n const { baseClass, children, className } = props\n const { hydrated, navOpen } = useNav()\n\n return (\n <div\n className={[\n baseClass,\n className,\n navOpen && `${baseClass}--nav-open`,\n hydrated && `${baseClass}--nav-hydrated`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,OAAO,MAAMC,OAAA,GAIRC,KAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACH;IAAAM,SAAA;IAAAC,QAAA;IAAAC;EAAA,IAA2CJ,KAAA;EAC3C;IAAAK,QAAA;IAAAC;EAAA,IAA8BR,MAAA;EAOxB,MAAAS,EAAA,GAAAD,OAAA,IAAW,GAAGJ,SAAA,YAAqB;EACnC,MAAAM,EAAA,GAAAH,QAAA,IAAY,GAAGH,SAAA,gBAAyB;EAAA,IAAAO,EAAA;EAAA,IAAAR,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAM,EAAA,IAAAN,CAAA,QAAAO,EAAA;IAJ/BC,EAAA,IACTP,SAAA,EACAE,SAAA,EACAG,EAAmC,EACnCC,EAAwC,EAAAE,MAAA,CAAAC,OAEhC;IAAAV,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EANC,MAAAW,EAAA,GAAAH,EAMD,CAAAI,IAAA,CACF;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAW,EAAA;IARVE,EAAA,GAAAC,IAAA,CAAC;MAAAX,SAAA,EACYQ,EAOH;MAAAT;IAAA,C;;;;;;;SARVW,E;CAaJ","ignoreList":[]}
@@ -7,14 +7,12 @@
7
7
  .template-default__wrap {
8
8
  min-width: 0;
9
9
  width: 100%;
10
- height: 100%;
11
10
  flex-grow: 1;
12
11
  position: relative;
13
12
  display: flex;
14
13
  flex-direction: column;
15
14
  background-color: var(--color-bg);
16
- min-height: 0;
17
- overflow: scroll;
15
+
18
16
  }
19
17
 
20
18
  @media (max-width: 768px) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAA;AAKhB,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,MAAM,OAAO,CAAA;AAmBzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE/B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqL1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAA;AAKhB,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,MAAM,OAAO,CAAA;AAmBzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE/B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAuL1D,CAAA"}
@@ -126,21 +126,7 @@ export const DefaultTemplate = ({
126
126
  Component: CustomNav,
127
127
  Fallback: DefaultNav,
128
128
  importMap: payload.importMap,
129
- serverProps: {
130
- ...serverProps,
131
- CustomAvatar: avatar !== 'gravatar' && avatar !== 'default' ? RenderServerComponent({
132
- Component: avatar.Component,
133
- importMap: payload.importMap,
134
- serverProps
135
- }) : undefined,
136
- CustomLogoutButton: components?.logout?.Button ? RenderServerComponent({
137
- clientProps,
138
- Component: components.logout.Button,
139
- importMap: payload.importMap,
140
- serverProps
141
- }) : undefined,
142
- settingsItemGroups
143
- }
129
+ serverProps
144
130
  });
145
131
  return /*#__PURE__*/_jsxs(EntityVisibilityProvider, {
146
132
  visibleEntities: visibleEntities,
@@ -161,10 +147,22 @@ export const DefaultTemplate = ({
161
147
  children: /*#__PURE__*/_jsxs(Wrapper, {
162
148
  baseClass: baseClass,
163
149
  className: className,
164
- viewType: viewType,
165
150
  children: [NavComponent, /*#__PURE__*/_jsxs("div", {
166
151
  className: `${baseClass}__wrap`,
167
- children: [/*#__PURE__*/_jsx(AppHeader, {}), children]
152
+ children: [/*#__PURE__*/_jsx(AppHeader, {
153
+ CustomAvatar: avatar !== 'gravatar' && avatar !== 'default' ? RenderServerComponent({
154
+ Component: avatar.Component,
155
+ importMap: payload.importMap,
156
+ serverProps
157
+ }) : undefined,
158
+ CustomLogoutButton: components?.logout?.Button ? RenderServerComponent({
159
+ clientProps,
160
+ Component: components.logout.Button,
161
+ importMap: payload.importMap,
162
+ serverProps
163
+ }) : undefined,
164
+ settingsItemGroups: settingsItemGroups
165
+ }), children]
168
166
  })]
169
167
  })
170
168
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","isUserMenuSettingsGroup","React","ActionsProvider","AppHeader","BulkUploadProvider","CommandPalette","EntityVisibilityProvider","DefaultTemplateWrapper","Wrapper","DefaultNav","RenderServerComponent","baseClass","DefaultTemplate","children","className","collectionSlug","docID","documentSubViewType","globalSlug","i18n","locale","params","payload","permissions","req","searchParams","user","viewActions","viewKey","viewType","visibleEntities","admin","avatar","components","header","CustomHeader","Nav","CustomNav","undefined","config","clientProps","serverProps","server","Actions","action","key","path","Component","importMap","settingsItemGroups","userMenuSettingsItems","Array","isArray","groupedItemsByLabel","Map","groupLabels","ungroupedItems","itemIndex","userMenuSettingsItem","entries","push","groupLabel","group","existingItems","get","renderedItems","items","map","groupedItem","groupedItemIndex","length","set","NavComponent","Fallback","CustomAvatar","CustomLogoutButton","logout","Button","_jsxs","_jsx","modalSlugPrefix","style","position"],"sources":["../../../src/templates/Default/index.tsx"],"sourcesContent":["import type {\n CustomComponent,\n DocumentSubViewTypes,\n PayloadRequest,\n ServerProps,\n ViewTypes,\n VisibleEntities,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isUserMenuSettingsGroup } from 'payload/shared'\n\nimport './index.css'\n\nimport React from 'react'\n\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary */\nimport {\n ActionsProvider,\n AppHeader,\n BulkUploadProvider,\n CommandPalette,\n EntityVisibilityProvider,\n DefaultTemplateWrapper as Wrapper,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport type { UserMenuSettingsGroup } from '../../elements/UserMenu/SettingsMenu/index.js'\n\nimport { DefaultNav } from '../../elements/Nav/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\nconst baseClass = 'template-default'\n\nexport type DefaultTemplateProps = {\n children?: React.ReactNode\n className?: string\n collectionSlug?: string\n docID?: number | string\n documentSubViewType?: DocumentSubViewTypes\n globalSlug?: string\n req?: PayloadRequest\n viewActions?: CustomComponent[]\n viewKey?: string\n viewType?: ViewTypes\n visibleEntities: VisibleEntities\n} & Omit<ServerProps, 'server'>\n\nexport const DefaultTemplate: React.FC<DefaultTemplateProps> = ({\n children,\n className,\n collectionSlug,\n docID,\n documentSubViewType,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n user,\n viewActions,\n viewKey,\n viewType,\n visibleEntities,\n}) => {\n const {\n admin: {\n avatar,\n components,\n components: { header: CustomHeader, Nav: CustomNav } = {\n header: undefined,\n Nav: undefined,\n },\n } = {},\n } = payload.config || {}\n\n const clientProps = {\n documentSubViewType,\n viewType,\n visibleEntities,\n }\n\n const serverProps: {\n collectionSlug: string\n docID: number | string\n globalSlug: string\n req: PayloadRequest\n } & ServerProps = {\n collectionSlug,\n docID,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n server: req?.server,\n user,\n }\n\n const Actions: Record<string, React.ReactNode> = {}\n for (const action of viewActions ?? []) {\n if (!action) {\n continue\n }\n const key = typeof action === 'object' ? action.path : action\n Actions[key] = RenderServerComponent({\n clientProps,\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n }\n\n const settingsItemGroups: UserMenuSettingsGroup[] = []\n if (components?.userMenuSettingsItems && Array.isArray(components.userMenuSettingsItems)) {\n const groupedItemsByLabel = new Map<string, React.ReactNode[]>()\n const groupLabels: string[] = []\n const ungroupedItems: React.ReactNode[] = []\n\n for (const [itemIndex, userMenuSettingsItem] of components.userMenuSettingsItems.entries()) {\n // Ungrouped items are collected as orphans rendered at the bottom\n if (!isUserMenuSettingsGroup(userMenuSettingsItem)) {\n ungroupedItems.push(\n RenderServerComponent({\n clientProps,\n Component: userMenuSettingsItem,\n importMap: payload.importMap,\n key: `user-menu-settings-ungrouped-${itemIndex}`,\n serverProps,\n }),\n )\n\n continue\n }\n\n const groupLabel = getTranslation(userMenuSettingsItem.group, i18n)\n const existingItems = groupedItemsByLabel.get(groupLabel)\n const renderedItems = userMenuSettingsItem.items.map((groupedItem, groupedItemIndex) =>\n RenderServerComponent({\n clientProps,\n Component: groupedItem,\n importMap: payload.importMap,\n key: `user-menu-settings-group-${groupLabel}-${itemIndex}-${groupedItemIndex}`,\n serverProps,\n }),\n )\n\n if (existingItems) {\n existingItems.push(...renderedItems)\n } else if (renderedItems.length > 0) {\n groupedItemsByLabel.set(groupLabel, renderedItems)\n groupLabels.push(groupLabel)\n }\n }\n\n for (const groupLabel of groupLabels) {\n const items = groupedItemsByLabel.get(groupLabel)\n if (items?.length) {\n settingsItemGroups.push({\n group: groupLabel,\n items,\n })\n }\n }\n\n if (ungroupedItems.length > 0) {\n settingsItemGroups.push({\n items: ungroupedItems,\n })\n }\n }\n\n const NavComponent = RenderServerComponent({\n clientProps,\n Component: CustomNav,\n Fallback: DefaultNav,\n importMap: payload.importMap,\n serverProps: {\n ...serverProps,\n CustomAvatar:\n avatar !== 'gravatar' && avatar !== 'default'\n ? RenderServerComponent({\n Component: avatar.Component,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined,\n CustomLogoutButton: components?.logout?.Button\n ? RenderServerComponent({\n clientProps,\n Component: components.logout.Button,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined,\n settingsItemGroups,\n },\n })\n\n return (\n <EntityVisibilityProvider visibleEntities={visibleEntities}>\n <CommandPalette />\n <BulkUploadProvider modalSlugPrefix={collectionSlug}>\n <ActionsProvider Actions={Actions} viewKey={viewKey}>\n {RenderServerComponent({\n clientProps,\n Component: CustomHeader,\n importMap: payload.importMap,\n serverProps,\n })}\n <div style={{ position: 'relative' }}>\n <Wrapper baseClass={baseClass} className={className} viewType={viewType}>\n {NavComponent}\n <div className={`${baseClass}__wrap`}>\n <AppHeader />\n {children}\n </div>\n </Wrapper>\n </div>\n </ActionsProvider>\n </BulkUploadProvider>\n </EntityVisibilityProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","isUserMenuSettingsGroup","React","ActionsProvider","AppHeader","BulkUploadProvider","CommandPalette","EntityVisibilityProvider","DefaultTemplateWrapper","Wrapper","DefaultNav","RenderServerComponent","baseClass","DefaultTemplate","children","className","collectionSlug","docID","documentSubViewType","globalSlug","i18n","locale","params","payload","permissions","req","searchParams","user","viewActions","viewKey","viewType","visibleEntities","admin","avatar","components","header","CustomHeader","Nav","CustomNav","undefined","config","clientProps","serverProps","server","Actions","action","key","path","Component","importMap","settingsItemGroups","userMenuSettingsItems","Array","isArray","groupedItemsByLabel","Map","groupLabels","ungroupedItems","itemIndex","userMenuSettingsItem","entries","push","groupLabel","group","existingItems","get","renderedItems","items","map","groupedItem","groupedItemIndex","length","set","NavComponent","Fallback","_jsxs","_jsx","modalSlugPrefix","style","position","CustomAvatar","CustomLogoutButton","logout","Button"],"sources":["../../../src/templates/Default/index.tsx"],"sourcesContent":["import type {\n CustomComponent,\n DocumentSubViewTypes,\n PayloadRequest,\n ServerProps,\n ViewTypes,\n VisibleEntities,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isUserMenuSettingsGroup } from 'payload/shared'\n\nimport './index.css'\n\nimport React from 'react'\n\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary */\nimport {\n ActionsProvider,\n AppHeader,\n BulkUploadProvider,\n CommandPalette,\n EntityVisibilityProvider,\n DefaultTemplateWrapper as Wrapper,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport type { UserMenuSettingsGroup } from '../../elements/UserMenu/SettingsMenu/index.js'\n\nimport { DefaultNav } from '../../elements/Nav/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\nconst baseClass = 'template-default'\n\nexport type DefaultTemplateProps = {\n children?: React.ReactNode\n className?: string\n collectionSlug?: string\n docID?: number | string\n documentSubViewType?: DocumentSubViewTypes\n globalSlug?: string\n req?: PayloadRequest\n viewActions?: CustomComponent[]\n viewKey?: string\n viewType?: ViewTypes\n visibleEntities: VisibleEntities\n} & Omit<ServerProps, 'server'>\n\nexport const DefaultTemplate: React.FC<DefaultTemplateProps> = ({\n children,\n className,\n collectionSlug,\n docID,\n documentSubViewType,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n user,\n viewActions,\n viewKey,\n viewType,\n visibleEntities,\n}) => {\n const {\n admin: {\n avatar,\n components,\n components: { header: CustomHeader, Nav: CustomNav } = {\n header: undefined,\n Nav: undefined,\n },\n } = {},\n } = payload.config || {}\n\n const clientProps = {\n documentSubViewType,\n viewType,\n visibleEntities,\n }\n\n const serverProps: {\n collectionSlug: string\n docID: number | string\n globalSlug: string\n req: PayloadRequest\n } & ServerProps = {\n collectionSlug,\n docID,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n server: req?.server,\n user,\n }\n\n const Actions: Record<string, React.ReactNode> = {}\n for (const action of viewActions ?? []) {\n if (!action) {\n continue\n }\n const key = typeof action === 'object' ? action.path : action\n Actions[key] = RenderServerComponent({\n clientProps,\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n }\n\n const settingsItemGroups: UserMenuSettingsGroup[] = []\n if (components?.userMenuSettingsItems && Array.isArray(components.userMenuSettingsItems)) {\n const groupedItemsByLabel = new Map<string, React.ReactNode[]>()\n const groupLabels: string[] = []\n const ungroupedItems: React.ReactNode[] = []\n\n for (const [itemIndex, userMenuSettingsItem] of components.userMenuSettingsItems.entries()) {\n // Ungrouped items are collected as orphans rendered at the bottom\n if (!isUserMenuSettingsGroup(userMenuSettingsItem)) {\n ungroupedItems.push(\n RenderServerComponent({\n clientProps,\n Component: userMenuSettingsItem,\n importMap: payload.importMap,\n key: `user-menu-settings-ungrouped-${itemIndex}`,\n serverProps,\n }),\n )\n\n continue\n }\n\n const groupLabel = getTranslation(userMenuSettingsItem.group, i18n)\n const existingItems = groupedItemsByLabel.get(groupLabel)\n const renderedItems = userMenuSettingsItem.items.map((groupedItem, groupedItemIndex) =>\n RenderServerComponent({\n clientProps,\n Component: groupedItem,\n importMap: payload.importMap,\n key: `user-menu-settings-group-${groupLabel}-${itemIndex}-${groupedItemIndex}`,\n serverProps,\n }),\n )\n\n if (existingItems) {\n existingItems.push(...renderedItems)\n } else if (renderedItems.length > 0) {\n groupedItemsByLabel.set(groupLabel, renderedItems)\n groupLabels.push(groupLabel)\n }\n }\n\n for (const groupLabel of groupLabels) {\n const items = groupedItemsByLabel.get(groupLabel)\n if (items?.length) {\n settingsItemGroups.push({\n group: groupLabel,\n items,\n })\n }\n }\n\n if (ungroupedItems.length > 0) {\n settingsItemGroups.push({\n items: ungroupedItems,\n })\n }\n }\n\n const NavComponent = RenderServerComponent({\n clientProps,\n Component: CustomNav,\n Fallback: DefaultNav,\n importMap: payload.importMap,\n serverProps,\n })\n\n return (\n <EntityVisibilityProvider visibleEntities={visibleEntities}>\n <CommandPalette />\n <BulkUploadProvider modalSlugPrefix={collectionSlug}>\n <ActionsProvider Actions={Actions} viewKey={viewKey}>\n {RenderServerComponent({\n clientProps,\n Component: CustomHeader,\n importMap: payload.importMap,\n serverProps,\n })}\n <div style={{ position: 'relative' }}>\n <Wrapper baseClass={baseClass} className={className}>\n {NavComponent}\n <div className={`${baseClass}__wrap`}>\n <AppHeader\n CustomAvatar={\n avatar !== 'gravatar' && avatar !== 'default'\n ? RenderServerComponent({\n Component: avatar.Component,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n CustomLogoutButton={\n components?.logout?.Button\n ? RenderServerComponent({\n clientProps,\n Component: components.logout.Button,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n settingsItemGroups={settingsItemGroups}\n />\n {children}\n </div>\n </Wrapper>\n </div>\n </ActionsProvider>\n </BulkUploadProvider>\n </EntityVisibilityProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,5 +4,5 @@
4
4
  * Note: This MUST be called within the client environment as it relies on the `window` object
5
5
  * to determine the absolute URL.
6
6
  */
7
- export declare const formatAbsoluteURL: (incomingURL: string) => any;
7
+ export declare const formatAbsoluteURL: (incomingURL: string) => string | undefined;
8
8
  //# sourceMappingURL=formatAbsoluteURL.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatAbsoluteURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAbsoluteURL.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,QAGpB,CAAA"}
1
+ {"version":3,"file":"formatAbsoluteURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAbsoluteURL.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,KAAG,MAAM,GAAG,SAmBhE,CAAA"}
@@ -1,15 +1,25 @@
1
- const getAbsoluteUrl = url => {
2
- try {
3
- return new URL(url, window.location.origin).href;
4
- } catch {
5
- return url;
6
- }
7
- };
1
+ import { isHttpURL } from './isHttpURL.js';
8
2
  /**
9
3
  * Ensures the provided URL is absolute. If not, it converts it to an absolute URL based
10
4
  * on the current window location.
11
5
  * Note: This MUST be called within the client environment as it relies on the `window` object
12
6
  * to determine the absolute URL.
13
7
  */
14
- export const formatAbsoluteURL = incomingURL => incomingURL?.startsWith('http://') || incomingURL?.startsWith('https://') ? incomingURL : getAbsoluteUrl(incomingURL);
8
+ export const formatAbsoluteURL = incomingURL => {
9
+ try {
10
+ // This throws for malformed URLs, e.g. `https://[wrong`.
11
+ // Preformed absolute URLs ignore `window.location.origin` when parsed.
12
+ const parsedURL = new URL(incomingURL, window.location.origin);
13
+ // If the given URL is already absolute, preserve its original format exactly, i.e. `new URL()` may have added a trailing slash
14
+ if (incomingURL.startsWith('http://') || incomingURL.startsWith('https://')) {
15
+ return incomingURL;
16
+ }
17
+ if (isHttpURL(parsedURL)) {
18
+ return parsedURL.href;
19
+ }
20
+ return undefined;
21
+ } catch {
22
+ return undefined;
23
+ }
24
+ };
15
25
  //# sourceMappingURL=formatAbsoluteURL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatAbsoluteURL.js","names":["getAbsoluteUrl","url","URL","window","location","origin","href","formatAbsoluteURL","incomingURL","startsWith"],"sources":["../../src/utilities/formatAbsoluteURL.ts"],"sourcesContent":["const getAbsoluteUrl = (url) => {\n try {\n return new URL(url, window.location.origin).href\n } catch {\n return url\n }\n}\n\n/**\n * Ensures the provided URL is absolute. If not, it converts it to an absolute URL based\n * on the current window location.\n * Note: This MUST be called within the client environment as it relies on the `window` object\n * to determine the absolute URL.\n */\nexport const formatAbsoluteURL = (incomingURL: string) =>\n incomingURL?.startsWith('http://') || incomingURL?.startsWith('https://')\n ? incomingURL\n : getAbsoluteUrl(incomingURL)\n"],"mappings":"AAAA,MAAMA,cAAA,GAAkBC,GAAA;EACtB,IAAI;IACF,OAAO,IAAIC,GAAA,CAAID,GAAA,EAAKE,MAAA,CAAOC,QAAQ,CAACC,MAAM,EAAEC,IAAI;EAClD,EAAE,MAAM;IACN,OAAOL,GAAA;EACT;AACF;AAEA;;;;;;AAMA,OAAO,MAAMM,iBAAA,GAAqBC,WAAA,IAChCA,WAAA,EAAaC,UAAA,CAAW,cAAcD,WAAA,EAAaC,UAAA,CAAW,cAC1DD,WAAA,GACAR,cAAA,CAAeQ,WAAA","ignoreList":[]}
1
+ {"version":3,"file":"formatAbsoluteURL.js","names":["isHttpURL","formatAbsoluteURL","incomingURL","parsedURL","URL","window","location","origin","startsWith","href","undefined"],"sources":["../../src/utilities/formatAbsoluteURL.ts"],"sourcesContent":["import { isHttpURL } from './isHttpURL.js'\n\n/**\n * Ensures the provided URL is absolute. If not, it converts it to an absolute URL based\n * on the current window location.\n * Note: This MUST be called within the client environment as it relies on the `window` object\n * to determine the absolute URL.\n */\nexport const formatAbsoluteURL = (incomingURL: string): string | undefined => {\n try {\n // This throws for malformed URLs, e.g. `https://[wrong`.\n // Preformed absolute URLs ignore `window.location.origin` when parsed.\n const parsedURL = new URL(incomingURL, window.location.origin)\n\n // If the given URL is already absolute, preserve its original format exactly, i.e. `new URL()` may have added a trailing slash\n if (incomingURL.startsWith('http://') || incomingURL.startsWith('https://')) {\n return incomingURL\n }\n\n if (isHttpURL(parsedURL)) {\n return parsedURL.href\n }\n\n return undefined\n } catch {\n return undefined\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ;AAE1B;;;;;;AAMA,OAAO,MAAMC,iBAAA,GAAqBC,WAAA;EAChC,IAAI;IACF;IACA;IACA,MAAMC,SAAA,GAAY,IAAIC,GAAA,CAAIF,WAAA,EAAaG,MAAA,CAAOC,QAAQ,CAACC,MAAM;IAE7D;IACA,IAAIL,WAAA,CAAYM,UAAU,CAAC,cAAcN,WAAA,CAAYM,UAAU,CAAC,aAAa;MAC3E,OAAON,WAAA;IACT;IAEA,IAAIF,SAAA,CAAUG,SAAA,GAAY;MACxB,OAAOA,SAAA,CAAUM,IAAI;IACvB;IAEA,OAAOC,SAAA;EACT,EAAE,MAAM;IACN,OAAOA,SAAA;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { formatAbsoluteURL } from './formatAbsoluteURL.js';
3
+ describe('formatAbsoluteURL', () => {
4
+ beforeEach(() => {
5
+ vi.stubGlobal('window', {
6
+ location: {
7
+ origin: 'https://admin.example.com'
8
+ }
9
+ });
10
+ });
11
+ afterEach(() => {
12
+ vi.unstubAllGlobals();
13
+ });
14
+ it.each([['/preview', 'https://admin.example.com/preview'], ['preview?draft=true', 'https://admin.example.com/preview?draft=true'], ['../preview', 'https://admin.example.com/preview'], ['?draft=true', 'https://admin.example.com/?draft=true'], ['#preview', 'https://admin.example.com/#preview'], ['//preview.example.com/page', 'https://preview.example.com/page'], ['', 'https://admin.example.com/']])('should resolve relative URL %s against the admin origin', (input, expected) => {
15
+ expect(formatAbsoluteURL(input)).toBe(expected);
16
+ });
17
+ it.each(['http://preview.example.com', 'https://preview.example.com', 'https://preview.example.com:443/one/../two?draft=true#preview'])('should preserve absolute HTTP(S) URL %s', input => {
18
+ expect(formatAbsoluteURL(input)).toBe(input);
19
+ });
20
+ it.each(['mailto:editor@example.com', 'file:///preview.html'])('should return undefined for unsupported URL %s', input => {
21
+ expect(formatAbsoluteURL(input)).toBeUndefined();
22
+ });
23
+ it.each(['http://', 'https://', 'https://[invalid'])('should return undefined for invalid URL %s', input => {
24
+ expect(formatAbsoluteURL(input)).toBeUndefined();
25
+ });
26
+ });
27
+ //# sourceMappingURL=formatAbsoluteURL.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatAbsoluteURL.spec.js","names":["afterEach","beforeEach","describe","expect","it","vi","formatAbsoluteURL","stubGlobal","location","origin","unstubAllGlobals","each","input","expected","toBe","toBeUndefined"],"sources":["../../src/utilities/formatAbsoluteURL.spec.ts"],"sourcesContent":["import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport { formatAbsoluteURL } from './formatAbsoluteURL.js'\n\ndescribe('formatAbsoluteURL', () => {\n beforeEach(() => {\n vi.stubGlobal('window', {\n location: { origin: 'https://admin.example.com' },\n })\n })\n\n afterEach(() => {\n vi.unstubAllGlobals()\n })\n\n it.each([\n ['/preview', 'https://admin.example.com/preview'],\n ['preview?draft=true', 'https://admin.example.com/preview?draft=true'],\n ['../preview', 'https://admin.example.com/preview'],\n ['?draft=true', 'https://admin.example.com/?draft=true'],\n ['#preview', 'https://admin.example.com/#preview'],\n ['//preview.example.com/page', 'https://preview.example.com/page'],\n ['', 'https://admin.example.com/'],\n ])('should resolve relative URL %s against the admin origin', (input, expected) => {\n expect(formatAbsoluteURL(input)).toBe(expected)\n })\n\n it.each([\n 'http://preview.example.com',\n 'https://preview.example.com',\n 'https://preview.example.com:443/one/../two?draft=true#preview',\n ])('should preserve absolute HTTP(S) URL %s', (input) => {\n expect(formatAbsoluteURL(input)).toBe(input)\n })\n\n it.each(['mailto:editor@example.com', 'file:///preview.html'])(\n 'should return undefined for unsupported URL %s',\n (input) => {\n expect(formatAbsoluteURL(input)).toBeUndefined()\n },\n )\n\n it.each(['http://', 'https://', 'https://[invalid'])(\n 'should return undefined for invalid URL %s',\n (input) => {\n expect(formatAbsoluteURL(input)).toBeUndefined()\n },\n )\n})\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ;AAEhE,SAASC,iBAAiB,QAAQ;AAElCJ,QAAA,CAAS,qBAAqB;EAC5BD,UAAA,CAAW;IACTI,EAAA,CAAGE,UAAU,CAAC,UAAU;MACtBC,QAAA,EAAU;QAAEC,MAAA,EAAQ;MAA4B;IAClD;EACF;EAEAT,SAAA,CAAU;IACRK,EAAA,CAAGK,gBAAgB;EACrB;EAEAN,EAAA,CAAGO,IAAI,CAAC,CACN,CAAC,YAAY,oCAAoC,EACjD,CAAC,sBAAsB,+CAA+C,EACtE,CAAC,cAAc,oCAAoC,EACnD,CAAC,eAAe,wCAAwC,EACxD,CAAC,YAAY,qCAAqC,EAClD,CAAC,8BAA8B,mCAAmC,EAClE,CAAC,IAAI,6BAA6B,CACnC,EAAE,2DAA2D,CAACC,KAAA,EAAOC,QAAA;IACpEV,MAAA,CAAOG,iBAAA,CAAkBM,KAAA,GAAQE,IAAI,CAACD,QAAA;EACxC;EAEAT,EAAA,CAAGO,IAAI,CAAC,CACN,8BACA,+BACA,gEACD,EAAE,2CAA4CC,KAAA;IAC7CT,MAAA,CAAOG,iBAAA,CAAkBM,KAAA,GAAQE,IAAI,CAACF,KAAA;EACxC;EAEAR,EAAA,CAAGO,IAAI,CAAC,CAAC,6BAA6B,uBAAuB,EAC3D,kDACCC,KAAA;IACCT,MAAA,CAAOG,iBAAA,CAAkBM,KAAA,GAAQG,aAAa;EAChD;EAGFX,EAAA,CAAGO,IAAI,CAAC,CAAC,WAAW,YAAY,mBAAmB,EACjD,8CACCC,KAAA;IACCT,MAAA,CAAOG,iBAAA,CAAkBM,KAAA,GAAQG,aAAa;EAChD;AAEJ","ignoreList":[]}
@@ -1,12 +1,11 @@
1
- import type { Payload, SanitizedCollectionConfig, SanitizedGlobalConfig, User } from 'payload';
1
+ import type { Payload, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload';
2
2
  type Args = {
3
3
  collectionConfig?: SanitizedCollectionConfig;
4
4
  globalConfig?: SanitizedGlobalConfig;
5
5
  hasPublishPermission?: boolean;
6
6
  id?: number | string;
7
7
  payload: Payload;
8
- user: User;
9
8
  };
10
- export declare const getHasScheduledPublish: ({ id: idArg, collectionConfig, globalConfig, hasPublishPermission, payload, user, }: Args) => Promise<boolean>;
9
+ export declare const getHasScheduledPublish: ({ id: idArg, collectionConfig, globalConfig, hasPublishPermission, payload, }: Args) => Promise<boolean>;
11
10
  export {};
12
11
  //# sourceMappingURL=getHasScheduledPublish.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getHasScheduledPublish.d.ts","sourceRoot":"","sources":["../../src/utilities/getHasScheduledPublish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAO9F,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,eAAO,MAAM,sBAAsB,wFAOhC,IAAI,KAAG,OAAO,CAAC,OAAO,CA4BxB,CAAA"}
1
+ {"version":3,"file":"getHasScheduledPublish.d.ts","sourceRoot":"","sources":["../../src/utilities/getHasScheduledPublish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAOxF,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,sBAAsB,kFAMhC,IAAI,KAAG,OAAO,CAAC,OAAO,CA0BxB,CAAA"}
@@ -6,8 +6,7 @@ export const getHasScheduledPublish = async ({
6
6
  collectionConfig,
7
7
  globalConfig,
8
8
  hasPublishPermission,
9
- payload,
10
- user
9
+ payload
11
10
  }) => {
12
11
  const entityConfig = collectionConfig || globalConfig;
13
12
  const id = sanitizeID(idArg);
@@ -20,10 +19,8 @@ export const getHasScheduledPublish = async ({
20
19
  try {
21
20
  const {
22
21
  totalDocs
23
- } = await payload.count({
22
+ } = await payload.db.count({
24
23
  collection: 'payload-jobs',
25
- overrideAccess: false,
26
- user,
27
24
  where: buildUpcomingScheduleWhere({
28
25
  id,
29
26
  collectionSlug,
@@ -1 +1 @@
1
- {"version":3,"file":"getHasScheduledPublish.js","names":["hasScheduledPublishEnabled","buildUpcomingScheduleWhere","sanitizeID","getHasScheduledPublish","id","idArg","collectionConfig","globalConfig","hasPublishPermission","payload","user","entityConfig","collectionSlug","slug","globalSlug","canSchedulePublish","Boolean","totalDocs","count","collection","overrideAccess","where"],"sources":["../../src/utilities/getHasScheduledPublish.ts"],"sourcesContent":["import type { Payload, SanitizedCollectionConfig, SanitizedGlobalConfig, User } from 'payload'\n\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { sanitizeID } from './sanitizeID.js'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasPublishPermission?: boolean\n id?: number | string\n payload: Payload\n user: User\n}\n\nexport const getHasScheduledPublish = async ({\n id: idArg,\n collectionConfig,\n globalConfig,\n hasPublishPermission,\n payload,\n user,\n}: Args): Promise<boolean> => {\n const entityConfig = collectionConfig || globalConfig\n const id = sanitizeID(idArg)\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const canSchedulePublish = Boolean(\n hasScheduledPublishEnabled(entityConfig) &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)),\n )\n\n if (!canSchedulePublish) {\n return false\n }\n\n try {\n const { totalDocs } = await payload.count({\n collection: 'payload-jobs',\n overrideAccess: false,\n user,\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return totalDocs > 0\n } catch {\n return false\n }\n}\n"],"mappings":"AAEA,SAASA,0BAA0B,QAAQ;AAE3C,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,UAAU,QAAQ;AAW3B,OAAO,MAAMC,sBAAA,GAAyB,MAAAA,CAAO;EAC3CC,EAAA,EAAIC,KAAK;EACTC,gBAAgB;EAChBC,YAAY;EACZC,oBAAoB;EACpBC,OAAO;EACPC;AAAI,CACC;EACL,MAAMC,YAAA,GAAeL,gBAAA,IAAoBC,YAAA;EACzC,MAAMH,EAAA,GAAKF,UAAA,CAAWG,KAAA;EACtB,MAAMO,cAAA,GAAiBN,gBAAA,EAAkBO,IAAA;EACzC,MAAMC,UAAA,GAAaP,YAAA,EAAcM,IAAA;EAEjC,MAAME,kBAAA,GAAqBC,OAAA,CACzBhB,0BAAA,CAA2BW,YAAA,KACzBH,oBAAA,KACCM,UAAA,IAAeF,cAAA,IAAkBR,EAAE;EAGxC,IAAI,CAACW,kBAAA,EAAoB;IACvB,OAAO;EACT;EAEA,IAAI;IACF,MAAM;MAAEE;IAAS,CAAE,GAAG,MAAMR,OAAA,CAAQS,KAAK,CAAC;MACxCC,UAAA,EAAY;MACZC,cAAA,EAAgB;MAChBV,IAAA;MACAW,KAAA,EAAOpB,0BAAA,CAA2B;QAAEG,EAAA;QAAIQ,cAAA;QAAgBE;MAAW;IACrE;IAEA,OAAOG,SAAA,GAAY;EACrB,EAAE,MAAM;IACN,OAAO;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getHasScheduledPublish.js","names":["hasScheduledPublishEnabled","buildUpcomingScheduleWhere","sanitizeID","getHasScheduledPublish","id","idArg","collectionConfig","globalConfig","hasPublishPermission","payload","entityConfig","collectionSlug","slug","globalSlug","canSchedulePublish","Boolean","totalDocs","db","count","collection","where"],"sources":["../../src/utilities/getHasScheduledPublish.ts"],"sourcesContent":["import type { Payload, SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { sanitizeID } from './sanitizeID.js'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasPublishPermission?: boolean\n id?: number | string\n payload: Payload\n}\n\nexport const getHasScheduledPublish = async ({\n id: idArg,\n collectionConfig,\n globalConfig,\n hasPublishPermission,\n payload,\n}: Args): Promise<boolean> => {\n const entityConfig = collectionConfig || globalConfig\n const id = sanitizeID(idArg)\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const canSchedulePublish = Boolean(\n hasScheduledPublishEnabled(entityConfig) &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)),\n )\n\n if (!canSchedulePublish) {\n return false\n }\n\n try {\n const { totalDocs } = await payload.db.count({\n collection: 'payload-jobs',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return totalDocs > 0\n } catch {\n return false\n }\n}\n"],"mappings":"AAEA,SAASA,0BAA0B,QAAQ;AAE3C,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,UAAU,QAAQ;AAU3B,OAAO,MAAMC,sBAAA,GAAyB,MAAAA,CAAO;EAC3CC,EAAA,EAAIC,KAAK;EACTC,gBAAgB;EAChBC,YAAY;EACZC,oBAAoB;EACpBC;AAAO,CACF;EACL,MAAMC,YAAA,GAAeJ,gBAAA,IAAoBC,YAAA;EACzC,MAAMH,EAAA,GAAKF,UAAA,CAAWG,KAAA;EACtB,MAAMM,cAAA,GAAiBL,gBAAA,EAAkBM,IAAA;EACzC,MAAMC,UAAA,GAAaN,YAAA,EAAcK,IAAA;EAEjC,MAAME,kBAAA,GAAqBC,OAAA,CACzBf,0BAAA,CAA2BU,YAAA,KACzBF,oBAAA,KACCK,UAAA,IAAeF,cAAA,IAAkBP,EAAE;EAGxC,IAAI,CAACU,kBAAA,EAAoB;IACvB,OAAO;EACT;EAEA,IAAI;IACF,MAAM;MAAEE;IAAS,CAAE,GAAG,MAAMP,OAAA,CAAQQ,EAAE,CAACC,KAAK,CAAC;MAC3CC,UAAA,EAAY;MACZC,KAAA,EAAOnB,0BAAA,CAA2B;QAAEG,EAAA;QAAIO,cAAA;QAAgBE;MAAW;IACrE;IAEA,OAAOG,SAAA,GAAY;EACrB,EAAE,MAAM;IACN,OAAO;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ /** Checks whether a URL is absolute or relative. */
2
+ export declare const isAbsoluteURL: (incomingURL?: string | URL) => boolean;
3
+ //# sourceMappingURL=isAbsoluteURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAbsoluteURL.d.ts","sourceRoot":"","sources":["../../src/utilities/isAbsoluteURL.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,aAAa,iBAAkB,MAAM,GAAG,GAAG,KAAG,OAe1D,CAAA"}
@@ -0,0 +1,15 @@
1
+ /** Checks whether a URL is absolute or relative. */export const isAbsoluteURL = incomingURL => {
2
+ if (!incomingURL) {
3
+ return false;
4
+ }
5
+ if (incomingURL instanceof URL) {
6
+ return true;
7
+ }
8
+ try {
9
+ new URL(incomingURL);
10
+ return true;
11
+ } catch {
12
+ return false;
13
+ }
14
+ };
15
+ //# sourceMappingURL=isAbsoluteURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAbsoluteURL.js","names":["isAbsoluteURL","incomingURL","URL"],"sources":["../../src/utilities/isAbsoluteURL.ts"],"sourcesContent":["/** Checks whether a URL is absolute or relative. */\nexport const isAbsoluteURL = (incomingURL?: string | URL): boolean => {\n if (!incomingURL) {\n return false\n }\n\n if (incomingURL instanceof URL) {\n return true\n }\n\n try {\n new URL(incomingURL)\n return true\n } catch {\n return false\n }\n}\n"],"mappings":"AAAA,oDACA,OAAO,MAAMA,aAAA,GAAiBC,WAAA;EAC5B,IAAI,CAACA,WAAA,EAAa;IAChB,OAAO;EACT;EAEA,IAAIA,WAAA,YAAuBC,GAAA,EAAK;IAC9B,OAAO;EACT;EAEA,IAAI;IACF,IAAIA,GAAA,CAAID,WAAA;IACR,OAAO;EACT,EAAE,MAAM;IACN,OAAO;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { isAbsoluteURL } from './isAbsoluteURL.js';
3
+ describe('isAbsoluteURL', () => {
4
+ it.each(['http://example.com', 'https://example.com/preview', 'mailto:editor@example.com', 'file:///preview.html', new URL('https://example.com/preview')])('should accept absolute URL %s', input => {
5
+ expect(isAbsoluteURL(input)).toBe(true);
6
+ });
7
+ it.each([undefined, '', '/preview', '../preview', 'preview?draft=true', '?draft=true', '#preview', '//example.com/preview', 'https://', 'https://[invalid'])('should reject relative, absent, or invalid URL %s', input => {
8
+ expect(isAbsoluteURL(input)).toBe(false);
9
+ });
10
+ });
11
+ //# sourceMappingURL=isAbsoluteURL.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAbsoluteURL.spec.js","names":["describe","expect","it","isAbsoluteURL","each","URL","input","toBe","undefined"],"sources":["../../src/utilities/isAbsoluteURL.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { isAbsoluteURL } from './isAbsoluteURL.js'\n\ndescribe('isAbsoluteURL', () => {\n it.each([\n 'http://example.com',\n 'https://example.com/preview',\n 'mailto:editor@example.com',\n 'file:///preview.html',\n new URL('https://example.com/preview'),\n ])('should accept absolute URL %s', (input) => {\n expect(isAbsoluteURL(input)).toBe(true)\n })\n\n it.each([\n undefined,\n '',\n '/preview',\n '../preview',\n 'preview?draft=true',\n '?draft=true',\n '#preview',\n '//example.com/preview',\n 'https://',\n 'https://[invalid',\n ])('should reject relative, absent, or invalid URL %s', (input) => {\n expect(isAbsoluteURL(input)).toBe(false)\n })\n})\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ;AAErC,SAASC,aAAa,QAAQ;AAE9BH,QAAA,CAAS,iBAAiB;EACxBE,EAAA,CAAGE,IAAI,CAAC,CACN,sBACA,+BACA,6BACA,wBACA,IAAIC,GAAA,CAAI,+BACT,EAAE,iCAAkCC,KAAA;IACnCL,MAAA,CAAOE,aAAA,CAAcG,KAAA,GAAQC,IAAI,CAAC;EACpC;EAEAL,EAAA,CAAGE,IAAI,CAAC,CACNI,SAAA,EACA,IACA,YACA,cACA,sBACA,eACA,YACA,yBACA,YACA,mBACD,EAAE,qDAAsDF,KAAA;IACvDL,MAAA,CAAOE,aAAA,CAAcG,KAAA,GAAQC,IAAI,CAAC;EACpC;AACF","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ /** Allows only HTTP(S) URLs, e.g. `http://` or `https://`. */
2
+ export declare const isHttpURL: (incomingURL?: string | URL) => boolean;
3
+ //# sourceMappingURL=isHttpURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHttpURL.d.ts","sourceRoot":"","sources":["../../src/utilities/isHttpURL.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,eAAO,MAAM,SAAS,iBAAkB,MAAM,GAAG,GAAG,KAAG,OAatD,CAAA"}
@@ -0,0 +1,12 @@
1
+ /** Allows only HTTP(S) URLs, e.g. `http://` or `https://`. */export const isHttpURL = incomingURL => {
2
+ if (!incomingURL) {
3
+ return false;
4
+ }
5
+ try {
6
+ const url = typeof incomingURL === 'string' ? new URL(incomingURL, window.location.origin) : incomingURL;
7
+ return url.protocol === 'http:' || url.protocol === 'https:';
8
+ } catch {
9
+ return false;
10
+ }
11
+ };
12
+ //# sourceMappingURL=isHttpURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHttpURL.js","names":["isHttpURL","incomingURL","url","URL","window","location","origin","protocol"],"sources":["../../src/utilities/isHttpURL.ts"],"sourcesContent":["/** Allows only HTTP(S) URLs, e.g. `http://` or `https://`. */\nexport const isHttpURL = (incomingURL?: string | URL): boolean => {\n if (!incomingURL) {\n return false\n }\n\n try {\n const url =\n typeof incomingURL === 'string' ? new URL(incomingURL, window.location.origin) : incomingURL\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n } catch {\n return false\n }\n}\n"],"mappings":"AAAA,8DACA,OAAO,MAAMA,SAAA,GAAaC,WAAA;EACxB,IAAI,CAACA,WAAA,EAAa;IAChB,OAAO;EACT;EAEA,IAAI;IACF,MAAMC,GAAA,GACJ,OAAOD,WAAA,KAAgB,WAAW,IAAIE,GAAA,CAAIF,WAAA,EAAaG,MAAA,CAAOC,QAAQ,CAACC,MAAM,IAAIL,WAAA;IAEnF,OAAOC,GAAA,CAAIK,QAAQ,KAAK,WAAWL,GAAA,CAAIK,QAAQ,KAAK;EACtD,EAAE,MAAM;IACN,OAAO;EACT;AACF","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { isHttpURL } from './isHttpURL.js';
3
+ describe('isHttpURL', () => {
4
+ beforeEach(() => {
5
+ vi.stubGlobal('window', {
6
+ location: {
7
+ origin: 'https://admin.example.com'
8
+ }
9
+ });
10
+ });
11
+ afterEach(() => {
12
+ vi.unstubAllGlobals();
13
+ });
14
+ it.each([['https://preview.example.com', true], ['mailto:editor@example.com', false]])('should validate parsed URL %s without the client environment', (input, expected) => {
15
+ vi.stubGlobal('window', undefined);
16
+ expect(isHttpURL(new URL(input))).toBe(expected);
17
+ });
18
+ it.each(['http://preview.example.com', 'https://preview.example.com', '/preview', 'preview?draft=true', '../preview', '?draft=true', '#preview', '//preview.example.com/page'])('should accept HTTP(S) or relative URL %s', input => {
19
+ expect(isHttpURL(input)).toBe(true);
20
+ });
21
+ it.each([undefined, '', 'mailto:editor@example.com', 'file:///preview.html', 'https://[invalid', 'http://'])('should reject absent, unsupported, or invalid URL %s', input => {
22
+ expect(isHttpURL(input)).toBe(false);
23
+ });
24
+ });
25
+ //# sourceMappingURL=isHttpURL.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHttpURL.spec.js","names":["afterEach","beforeEach","describe","expect","it","vi","isHttpURL","stubGlobal","location","origin","unstubAllGlobals","each","input","expected","undefined","URL","toBe"],"sources":["../../src/utilities/isHttpURL.spec.ts"],"sourcesContent":["import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport { isHttpURL } from './isHttpURL.js'\n\ndescribe('isHttpURL', () => {\n beforeEach(() => {\n vi.stubGlobal('window', {\n location: { origin: 'https://admin.example.com' },\n })\n })\n\n afterEach(() => {\n vi.unstubAllGlobals()\n })\n\n it.each([\n ['https://preview.example.com', true],\n ['mailto:editor@example.com', false],\n ] as const)('should validate parsed URL %s without the client environment', (input, expected) => {\n vi.stubGlobal('window', undefined)\n\n expect(isHttpURL(new URL(input))).toBe(expected)\n })\n\n it.each([\n 'http://preview.example.com',\n 'https://preview.example.com',\n '/preview',\n 'preview?draft=true',\n '../preview',\n '?draft=true',\n '#preview',\n '//preview.example.com/page',\n ])('should accept HTTP(S) or relative URL %s', (input) => {\n expect(isHttpURL(input)).toBe(true)\n })\n\n it.each([\n undefined,\n '',\n 'mailto:editor@example.com',\n 'file:///preview.html',\n 'https://[invalid',\n 'http://',\n ])('should reject absent, unsupported, or invalid URL %s', (input) => {\n expect(isHttpURL(input)).toBe(false)\n })\n})\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ;AAEhE,SAASC,SAAS,QAAQ;AAE1BJ,QAAA,CAAS,aAAa;EACpBD,UAAA,CAAW;IACTI,EAAA,CAAGE,UAAU,CAAC,UAAU;MACtBC,QAAA,EAAU;QAAEC,MAAA,EAAQ;MAA4B;IAClD;EACF;EAEAT,SAAA,CAAU;IACRK,EAAA,CAAGK,gBAAgB;EACrB;EAEAN,EAAA,CAAGO,IAAI,CAAC,CACN,CAAC,+BAA+B,KAAK,EACrC,CAAC,6BAA6B,MAAM,CACrC,EAAW,gEAAgE,CAACC,KAAA,EAAOC,QAAA;IAClFR,EAAA,CAAGE,UAAU,CAAC,UAAUO,SAAA;IAExBX,MAAA,CAAOG,SAAA,CAAU,IAAIS,GAAA,CAAIH,KAAA,IAASI,IAAI,CAACH,QAAA;EACzC;EAEAT,EAAA,CAAGO,IAAI,CAAC,CACN,8BACA,+BACA,YACA,sBACA,cACA,eACA,YACA,6BACD,EAAE,4CAA6CC,KAAA;IAC9CT,MAAA,CAAOG,SAAA,CAAUM,KAAA,GAAQI,IAAI,CAAC;EAChC;EAEAZ,EAAA,CAAGO,IAAI,CAAC,CACNG,SAAA,EACA,IACA,6BACA,wBACA,oBACA,UACD,EAAE,wDAAyDF,KAAA;IAC1DT,MAAA,CAAOG,SAAA,CAAUM,KAAA,GAAQI,IAAI,CAAC;EAChC;AACF","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { type SchedulePublishTaskInput, type ServerFunction } from 'payload';
1
+ import type { SchedulePublishTaskInput, ServerFunction } from 'payload';
2
+ import type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js';
2
3
  export type SchedulePublishHandlerArgs = {
3
4
  date?: Date;
4
5
  /**
@@ -8,5 +9,11 @@ export type SchedulePublishHandlerArgs = {
8
9
  localeToPublish?: string;
9
10
  timezone?: string;
10
11
  } & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>;
12
+ export type GetUpcomingScheduledPublishHandlerArgs = {
13
+ collectionSlug?: string;
14
+ globalSlug?: string;
15
+ id?: number | string;
16
+ };
17
+ export declare const getUpcomingScheduledPublishHandler: ServerFunction<GetUpcomingScheduledPublishHandlerArgs, Promise<UpcomingEvent[]>>;
11
18
  export declare const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs>;
12
19
  //# sourceMappingURL=schedulePublishHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,wBAAwB,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAE5F,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CAuD7E,CAAA"}
1
+ {"version":3,"file":"schedulePublishHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/schedulePublishHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAA;AAKtF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,IAAI,CAAA;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAE7D,MAAM,MAAM,sCAAsC,GAAG;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kCAAkC,EAAE,cAAc,CAC7D,sCAAsC,EACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAiDzB,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,cAAc,CAAC,0BAA0B,CAyD7E,CAAA"}
@@ -1,4 +1,62 @@
1
- import { canAccessAdmin } from 'payload';
1
+ import { canAccessAdmin, Forbidden } from 'payload';
2
+ import { hasScheduledPublishEnabled } from 'payload/shared';
3
+ import { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js';
4
+ import { getDocumentPermissions } from './getDocumentPermissions.js';
5
+ export const getUpcomingScheduledPublishHandler = async ({
6
+ id,
7
+ collectionSlug,
8
+ globalSlug,
9
+ req
10
+ }) => {
11
+ const {
12
+ payload
13
+ } = req;
14
+ await canAccessAdmin({
15
+ req
16
+ });
17
+ const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined;
18
+ const globalConfig = globalSlug ? payload.config.globals.find(({
19
+ slug
20
+ }) => slug === globalSlug) : undefined;
21
+ const entityConfig = collectionConfig || globalConfig;
22
+ const hasValidTarget = Boolean(entityConfig && hasScheduledPublishEnabled(entityConfig) && (collectionConfig && id !== undefined && !globalSlug || globalConfig && !collectionSlug));
23
+ if (!hasValidTarget) {
24
+ throw new Forbidden(req.t);
25
+ }
26
+ const {
27
+ hasPublishPermission
28
+ } = await getDocumentPermissions({
29
+ id,
30
+ collectionConfig,
31
+ data: {},
32
+ globalConfig,
33
+ req
34
+ });
35
+ if (!hasPublishPermission) {
36
+ throw new Forbidden(req.t);
37
+ }
38
+ const {
39
+ docs
40
+ } = await payload.db.find({
41
+ collection: 'payload-jobs',
42
+ limit: 0,
43
+ sort: 'waitUntil',
44
+ where: buildUpcomingScheduleWhere({
45
+ id,
46
+ collectionSlug,
47
+ globalSlug
48
+ })
49
+ });
50
+ return docs.map(job => ({
51
+ id: job.id,
52
+ input: {
53
+ type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',
54
+ locale: job.input?.locale,
55
+ timezone: job.input?.timezone
56
+ },
57
+ waitUntil: job.waitUntil
58
+ }));
59
+ };
2
60
  export const schedulePublishHandler = async ({
3
61
  type,
4
62
  date,
@@ -23,9 +81,15 @@ export const schedulePublishHandler = async ({
23
81
  collection: 'payload-jobs',
24
82
  req,
25
83
  where: {
26
- id: {
27
- equals: deleteID
28
- }
84
+ and: [{
85
+ id: {
86
+ equals: deleteID
87
+ }
88
+ }, {
89
+ taskSlug: {
90
+ equals: 'schedulePublish'
91
+ }
92
+ }]
29
93
  }
30
94
  });
31
95
  }