@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 +1 @@
1
- {"version":3,"file":"useHierarchySearch.js","names":["formatAdminURL","qs","useCallback","useState","useConfig","useLocale","useHierarchySearch","collectionSlug","limit","parentFieldName","titleField","titlePathField","results","setResults","isLoading","setIsLoading","hasNextPage","setHasNextPage","totalDocs","setTotalDocs","page","setPage","currentQuery","setCurrentQuery","config","routes","api","serverURL","code","locale","fetchResults","append","pageToFetch","query","queryString","stringify","computeHierarchyPaths","select","where","contains","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","Error","data","json","docs","map","doc","prev","search","loadMore","clearResults"],"sources":["../../../../src/elements/Hierarchy/Search/useHierarchySearch.ts"],"sourcesContent":["'use client'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport { useCallback, useState } from 'react'\n\nimport type { SearchResult } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\n\ntype UseHierarchySearchArgs = {\n collectionSlug: string\n limit?: number\n parentFieldName?: string\n titleField: string\n titlePathField?: string\n}\n\ntype UseHierarchySearchReturn = {\n clearResults: () => void\n hasNextPage: boolean\n isLoading: boolean\n loadMore: () => Promise<void>\n results: SearchResult[]\n search: (query: string) => Promise<void>\n totalDocs: number\n}\n\nexport const useHierarchySearch = ({\n collectionSlug,\n limit = 15,\n parentFieldName = 'parent',\n titleField,\n titlePathField = '_h_titlePath',\n}: UseHierarchySearchArgs): UseHierarchySearchReturn => {\n const [results, setResults] = useState<SearchResult[]>([])\n const [isLoading, setIsLoading] = useState(false)\n const [hasNextPage, setHasNextPage] = useState(false)\n const [totalDocs, setTotalDocs] = useState(0)\n const [page, setPage] = useState(1)\n const [currentQuery, setCurrentQuery] = useState('')\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { code: locale } = useLocale()\n\n const fetchResults = useCallback(\n async ({\n append,\n pageToFetch,\n query,\n }: {\n append: boolean\n pageToFetch: number\n query: string\n }) => {\n setIsLoading(true)\n\n try {\n const queryString = qs.stringify(\n {\n computeHierarchyPaths: true,\n limit,\n locale,\n page: pageToFetch,\n select: {\n [parentFieldName]: true,\n [titleField]: true,\n [titlePathField]: true,\n },\n where: {\n [titleField]: { contains: query },\n },\n },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n throw new Error('Search failed')\n }\n\n const data = await response.json()\n const docs: SearchResult[] = (data.docs || []).map((doc: Record<string, unknown>) => ({\n ...doc,\n path: doc[titlePathField] || '',\n }))\n\n setResults(append ? (prev) => [...prev, ...docs] : docs)\n setHasNextPage(data.hasNextPage || false)\n setTotalDocs(data.totalDocs || 0)\n setPage(pageToFetch)\n setCurrentQuery(query)\n } catch {\n if (!append) {\n setResults([])\n setHasNextPage(false)\n setTotalDocs(0)\n }\n } finally {\n setIsLoading(false)\n }\n },\n [api, collectionSlug, limit, locale, parentFieldName, serverURL, titleField, titlePathField],\n )\n\n const search = useCallback(\n async (query: string) => {\n await fetchResults({ append: false, pageToFetch: 1, query })\n },\n [fetchResults],\n )\n\n const loadMore = useCallback(async () => {\n if (isLoading || !hasNextPage || !currentQuery) {\n return\n }\n\n await fetchResults({ append: true, pageToFetch: page + 1, query: currentQuery })\n }, [isLoading, hasNextPage, currentQuery, page, fetchResults])\n\n const clearResults = useCallback(() => {\n setResults([])\n setHasNextPage(false)\n setTotalDocs(0)\n setPage(1)\n setCurrentQuery('')\n }, [])\n\n return {\n clearResults,\n hasNextPage,\n isLoading,\n loadMore,\n results,\n search,\n totalDocs,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useHierarchySearch.js","names":["formatAdminURL","qs","useCallback","useState","useConfig","useLocale","useHierarchySearch","collectionSlug","limit","parentFieldName","titleField","titlePathField","results","setResults","isLoading","setIsLoading","hasNextPage","setHasNextPage","totalDocs","setTotalDocs","page","setPage","currentQuery","setCurrentQuery","config","routes","api","serverURL","currentLocale","locale","code","fetchResults","append","pageToFetch","query","queryString","stringify","computeHierarchyPaths","select","where","contains","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","Error","data","json","docs","map","doc","prev","search","loadMore","clearResults"],"sources":["../../../../src/elements/Hierarchy/Search/useHierarchySearch.ts"],"sourcesContent":["'use client'\n\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport { useCallback, useState } from 'react'\n\nimport type { SearchResult } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\n\ntype UseHierarchySearchArgs = {\n collectionSlug: string\n limit?: number\n parentFieldName?: string\n titleField: string\n titlePathField?: string\n}\n\ntype UseHierarchySearchReturn = {\n clearResults: () => void\n hasNextPage: boolean\n isLoading: boolean\n loadMore: () => Promise<void>\n results: SearchResult[]\n search: (query: string) => Promise<void>\n totalDocs: number\n}\n\nexport const useHierarchySearch = ({\n collectionSlug,\n limit = 15,\n parentFieldName = 'parent',\n titleField,\n titlePathField = '_h_titlePath',\n}: UseHierarchySearchArgs): UseHierarchySearchReturn => {\n const [results, setResults] = useState<SearchResult[]>([])\n const [isLoading, setIsLoading] = useState(false)\n const [hasNextPage, setHasNextPage] = useState(false)\n const [totalDocs, setTotalDocs] = useState(0)\n const [page, setPage] = useState(1)\n const [currentQuery, setCurrentQuery] = useState('')\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n\n const fetchResults = useCallback(\n async ({\n append,\n pageToFetch,\n query,\n }: {\n append: boolean\n pageToFetch: number\n query: string\n }) => {\n setIsLoading(true)\n\n try {\n const queryString = qs.stringify(\n {\n computeHierarchyPaths: true,\n limit,\n locale,\n page: pageToFetch,\n select: {\n [parentFieldName]: true,\n [titleField]: true,\n [titlePathField]: true,\n },\n where: {\n [titleField]: { contains: query },\n },\n },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, { credentials: 'include' })\n\n if (!response.ok) {\n throw new Error('Search failed')\n }\n\n const data = await response.json()\n const docs: SearchResult[] = (data.docs || []).map((doc: Record<string, unknown>) => ({\n ...doc,\n path: doc[titlePathField] || '',\n }))\n\n setResults(append ? (prev) => [...prev, ...docs] : docs)\n setHasNextPage(data.hasNextPage || false)\n setTotalDocs(data.totalDocs || 0)\n setPage(pageToFetch)\n setCurrentQuery(query)\n } catch {\n if (!append) {\n setResults([])\n setHasNextPage(false)\n setTotalDocs(0)\n }\n } finally {\n setIsLoading(false)\n }\n },\n [api, collectionSlug, limit, locale, parentFieldName, serverURL, titleField, titlePathField],\n )\n\n const search = useCallback(\n async (query: string) => {\n await fetchResults({ append: false, pageToFetch: 1, query })\n },\n [fetchResults],\n )\n\n const loadMore = useCallback(async () => {\n if (isLoading || !hasNextPage || !currentQuery) {\n return\n }\n\n await fetchResults({ append: true, pageToFetch: page + 1, query: currentQuery })\n }, [isLoading, hasNextPage, currentQuery, page, fetchResults])\n\n const clearResults = useCallback(() => {\n setResults([])\n setHasNextPage(false)\n setTotalDocs(0)\n setPage(1)\n setCurrentQuery('')\n }, [])\n\n return {\n clearResults,\n hasNextPage,\n isLoading,\n loadMore,\n results,\n search,\n totalDocs,\n }\n}\n"],"mappings":"AAAA;;AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AACpB,SAASC,WAAW,EAAEC,QAAQ,QAAQ;AAItC,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAoB1B,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,cAAc;EACdC,KAAA,GAAQ,EAAE;EACVC,eAAA,GAAkB,QAAQ;EAC1BC,UAAU;EACVC,cAAA,GAAiB;AAAc,CACR;EACvB,MAAM,CAACC,OAAA,EAASC,UAAA,CAAW,GAAGV,QAAA,CAAyB,EAAE;EACzD,MAAM,CAACW,SAAA,EAAWC,YAAA,CAAa,GAAGZ,QAAA,CAAS;EAC3C,MAAM,CAACa,WAAA,EAAaC,cAAA,CAAe,GAAGd,QAAA,CAAS;EAC/C,MAAM,CAACe,SAAA,EAAWC,YAAA,CAAa,GAAGhB,QAAA,CAAS;EAC3C,MAAM,CAACiB,IAAA,EAAMC,OAAA,CAAQ,GAAGlB,QAAA,CAAS;EACjC,MAAM,CAACmB,YAAA,EAAcC,eAAA,CAAgB,GAAGpB,QAAA,CAAS;EAEjD,MAAM;IACJqB,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGvB,SAAA;EACJ,MAAMwB,aAAA,GAAgBvB,SAAA;EACtB,MAAMwB,MAAA,GAASD,aAAA,EAAeE,IAAA;EAE9B,MAAMC,YAAA,GAAe7B,WAAA,CACnB,OAAO;IACL8B,MAAM;IACNC,WAAW;IACXC;EAAK,CAKN;IACCnB,YAAA,CAAa;IAEb,IAAI;MACF,MAAMoB,WAAA,GAAclC,EAAA,CAAGmC,SAAS,CAC9B;QACEC,qBAAA,EAAuB;QACvB7B,KAAA;QACAqB,MAAA;QACAT,IAAA,EAAMa,WAAA;QACNK,MAAA,EAAQ;UACN,CAAC7B,eAAA,GAAkB;UACnB,CAACC,UAAA,GAAa;UACd,CAACC,cAAA,GAAiB;QACpB;QACA4B,KAAA,EAAO;UACL,CAAC7B,UAAA,GAAa;YAAE8B,QAAA,EAAUN;UAAM;QAClC;MACF,GACA;QAAEO,cAAA,EAAgB;MAAK;MAGzB,MAAMC,GAAA,GAAM1C,cAAA,CAAe;QACzB2C,QAAA,EAAUjB,GAAA;QACVkB,IAAA,EAAM,IAAIrC,cAAA,GAAiB4B,WAAA,EAAa;QACxCR;MACF;MAEA,MAAMkB,QAAA,GAAW,MAAMC,KAAA,CAAMJ,GAAA,EAAK;QAAEK,WAAA,EAAa;MAAU;MAE3D,IAAI,CAACF,QAAA,CAASG,EAAE,EAAE;QAChB,MAAM,IAAIC,KAAA,CAAM;MAClB;MAEA,MAAMC,IAAA,GAAO,MAAML,QAAA,CAASM,IAAI;MAChC,MAAMC,IAAA,GAAuB,CAACF,IAAA,CAAKE,IAAI,IAAI,EAAE,EAAEC,GAAG,CAAEC,GAAA,KAAkC;QACpF,GAAGA,GAAG;QACNV,IAAA,EAAMU,GAAG,CAAC3C,cAAA,CAAe,IAAI;MAC/B;MAEAE,UAAA,CAAWmB,MAAA,GAAUuB,IAAA,IAAS,C,GAAIA,IAAA,E,GAASH,IAAA,CAAK,GAAGA,IAAA;MACnDnC,cAAA,CAAeiC,IAAA,CAAKlC,WAAW,IAAI;MACnCG,YAAA,CAAa+B,IAAA,CAAKhC,SAAS,IAAI;MAC/BG,OAAA,CAAQY,WAAA;MACRV,eAAA,CAAgBW,KAAA;IAClB,EAAE,MAAM;MACN,IAAI,CAACF,MAAA,EAAQ;QACXnB,UAAA,CAAW,EAAE;QACbI,cAAA,CAAe;QACfE,YAAA,CAAa;MACf;IACF,UAAU;MACRJ,YAAA,CAAa;IACf;EACF,GACA,CAACW,GAAA,EAAKnB,cAAA,EAAgBC,KAAA,EAAOqB,MAAA,EAAQpB,eAAA,EAAiBkB,SAAA,EAAWjB,UAAA,EAAYC,cAAA,CAAe;EAG9F,MAAM6C,MAAA,GAAStD,WAAA,CACb,MAAOgC,OAAA;IACL,MAAMH,YAAA,CAAa;MAAEC,MAAA,EAAQ;MAAOC,WAAA,EAAa;MAAGC,KAAA,EAAAA;IAAM;EAC5D,GACA,CAACH,YAAA,CAAa;EAGhB,MAAM0B,QAAA,GAAWvD,WAAA,CAAY;IAC3B,IAAIY,SAAA,IAAa,CAACE,WAAA,IAAe,CAACM,YAAA,EAAc;MAC9C;IACF;IAEA,MAAMS,YAAA,CAAa;MAAEC,MAAA,EAAQ;MAAMC,WAAA,EAAab,IAAA,GAAO;MAAGc,KAAA,EAAOZ;IAAa;EAChF,GAAG,CAACR,SAAA,EAAWE,WAAA,EAAaM,YAAA,EAAcF,IAAA,EAAMW,YAAA,CAAa;EAE7D,MAAM2B,YAAA,GAAexD,WAAA,CAAY;IAC/BW,UAAA,CAAW,EAAE;IACbI,cAAA,CAAe;IACfE,YAAA,CAAa;IACbE,OAAA,CAAQ;IACRE,eAAA,CAAgB;EAClB,GAAG,EAAE;EAEL,OAAO;IACLmC,YAAA;IACA1C,WAAA;IACAF,SAAA;IACA2C,QAAA;IACA7C,OAAA;IACA4C,MAAA;IACAtC;EACF;AACF","ignoreList":[]}
@@ -3,6 +3,10 @@ import React from 'react';
3
3
  import type { HierarchyInitialData } from './types.js';
4
4
  export declare const HierarchySidebarTab: React.FC<{
5
5
  baseFilter?: Record<string, unknown>;
6
+ collectionSpecificOptions?: {
7
+ label: string;
8
+ value: string;
9
+ }[];
6
10
  hierarchyCollectionSlug: string;
7
11
  icon?: React.ReactNode;
8
12
  initialData?: HierarchyInitialData | null;
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySidebarTab.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAYtD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CACxC;IACE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACzC,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1C,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,qBAAqB,CA2I1B,CAAA"}
1
+ {"version":3,"file":"HierarchySidebarTab.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAGpD,OAAO,KAAmD,MAAM,OAAO,CAAA;AAEvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAWtD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CACxC;IACE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,yBAAyB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9D,uBAAuB,EAAE,MAAM,CAAA;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,WAAW,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACzC,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1C,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,qBAAqB,CAmI1B,CAAA"}
@@ -1,131 +1,216 @@
1
1
  'use client';
2
2
 
3
+ import { c as _c } from "react/compiler-runtime";
3
4
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
5
  import { formatAdminURL } from 'payload/shared';
5
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
6
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
6
7
  import { useConfig } from '../../../providers/Config/index.js';
7
8
  import { useHierarchy } from '../../../providers/Hierarchy/index.js';
8
- import { usePathname, useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js';
9
+ import { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js';
9
10
  import { useRouteTransition } from '../../../providers/RouteTransition/index.js';
10
11
  import { useSidebarTabs } from '../../../providers/SidebarTabs/index.js';
11
- import { getFolderHierarchySlug } from '../getFolderHierarchySlug.js';
12
12
  import { HydrateHierarchyProvider } from '../HydrateProvider/index.js';
13
13
  import { HierarchySearch } from '../Search/index.js';
14
14
  import { HierarchyTree } from './index.js';
15
- export const HierarchySidebarTab = ({
16
- baseFilter,
17
- hierarchyCollectionSlug,
18
- icon: _icon,
19
- initialData,
20
- initialExpandedNodes,
21
- initialSelectedFilters,
22
- parentFieldName,
23
- selectedNodeId: selectedNodeIdFromServer,
24
- treeLimit,
25
- typeFieldName,
26
- useAsTitle
27
- }) => {
15
+ export const HierarchySidebarTab = t0 => {
16
+ const $ = _c(44);
17
+ const {
18
+ baseFilter,
19
+ collectionSpecificOptions,
20
+ hierarchyCollectionSlug,
21
+ icon,
22
+ initialData,
23
+ initialExpandedNodes,
24
+ initialSelectedFilters,
25
+ parentFieldName,
26
+ selectedNodeId: selectedNodeIdFromServer,
27
+ treeLimit,
28
+ typeFieldName,
29
+ useAsTitle
30
+ } = t0;
28
31
  const router = useRouter();
29
- const pathname = usePathname();
30
32
  const searchParams = useSearchParams();
31
33
  const {
32
34
  startRouteTransition
33
35
  } = useRouteTransition();
34
36
  const {
35
- config,
36
- config: {
37
- routes: {
38
- admin: adminRoute
39
- }
40
- }
37
+ config: t1
41
38
  } = useConfig();
39
+ const {
40
+ routes: t2
41
+ } = t1;
42
+ const {
43
+ admin: adminRoute
44
+ } = t2;
42
45
  const [isSearchActive, setIsSearchActive] = useState(false);
46
+ let t3;
47
+ if ($[0] !== initialSelectedFilters) {
48
+ t3 = initialSelectedFilters ?? [];
49
+ $[0] = initialSelectedFilters;
50
+ $[1] = t3;
51
+ } else {
52
+ t3 = $[1];
53
+ }
54
+ const [selectedFilters, setSelectedFiltersLocal] = useState(t3);
43
55
  const {
56
+ setSelectedFilters: setSelectedFiltersContext,
44
57
  treeRefreshKeys
45
58
  } = useHierarchy();
46
59
  const sidebarTabs = useSidebarTabs();
47
- const resolvedParentFieldName = parentFieldName ?? 'parent';
48
- const currentParentParam = searchParams.get(resolvedParentFieldName);
49
- // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.
50
- // Always reload regardless of active state so inactive tabs are fresh when switched to.
51
- // The render-tab server function runs with a fresh request that lacks the client's URL query,
52
- // so forward the current selected parent id — otherwise the reload can't tell which node is
53
- // being viewed and rebuilds the tree from preference state.
60
+ const resolvedParentFieldName = parentFieldName ?? "parent";
61
+ let t4;
62
+ if ($[2] !== resolvedParentFieldName || $[3] !== searchParams) {
63
+ t4 = searchParams.get(resolvedParentFieldName);
64
+ $[2] = resolvedParentFieldName;
65
+ $[3] = searchParams;
66
+ $[4] = t4;
67
+ } else {
68
+ t4 = $[4];
69
+ }
70
+ const currentParentParam = t4;
54
71
  const tabSlug = `hierarchy-${hierarchyCollectionSlug}`;
55
72
  const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug;
56
- const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0;
73
+ let t5;
74
+ if ($[5] !== hierarchyCollectionSlug || $[6] !== treeRefreshKeys) {
75
+ t5 = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0;
76
+ $[5] = hierarchyCollectionSlug;
77
+ $[6] = treeRefreshKeys;
78
+ $[7] = t5;
79
+ } else {
80
+ t5 = $[7];
81
+ }
82
+ const treeRefreshKey = t5;
57
83
  const prevTreeRefreshKeyRef = useRef(treeRefreshKey);
58
- useEffect(() => {
59
- if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {
60
- prevTreeRefreshKeyRef.current = treeRefreshKey;
61
- // Only forward the selected parent id when this tab is active. currentParentParam
62
- // reflects the global URL search params, so an inactive tab could otherwise pick up
63
- // another hierarchy collection's value if they share the same parentFieldName.
64
- sidebarTabs?.reloadTabContent(tabSlug, {
65
- searchParams: isActiveTab && currentParentParam ? {
66
- [resolvedParentFieldName]: currentParentParam
67
- } : undefined
68
- });
69
- }
70
- }, [treeRefreshKey, sidebarTabs, tabSlug, isActiveTab, currentParentParam, resolvedParentFieldName]);
71
- // Only highlight selected node when this tab is active
84
+ let t6;
85
+ let t7;
86
+ if ($[8] !== currentParentParam || $[9] !== isActiveTab || $[10] !== resolvedParentFieldName || $[11] !== sidebarTabs || $[12] !== tabSlug || $[13] !== treeRefreshKey) {
87
+ t6 = () => {
88
+ if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {
89
+ prevTreeRefreshKeyRef.current = treeRefreshKey;
90
+ sidebarTabs?.reloadTabContent(tabSlug, {
91
+ searchParams: isActiveTab && currentParentParam ? {
92
+ [resolvedParentFieldName]: currentParentParam
93
+ } : undefined
94
+ });
95
+ }
96
+ };
97
+ t7 = [treeRefreshKey, sidebarTabs, tabSlug, isActiveTab, currentParentParam, resolvedParentFieldName];
98
+ $[8] = currentParentParam;
99
+ $[9] = isActiveTab;
100
+ $[10] = resolvedParentFieldName;
101
+ $[11] = sidebarTabs;
102
+ $[12] = tabSlug;
103
+ $[13] = treeRefreshKey;
104
+ $[14] = t6;
105
+ $[15] = t7;
106
+ } else {
107
+ t6 = $[14];
108
+ t7 = $[15];
109
+ }
110
+ useEffect(t6, t7);
72
111
  const selectedNodeId = isActiveTab ? currentParentParam ?? selectedNodeIdFromServer ?? undefined : undefined;
73
- const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : '';
74
- /**
75
- * When the user is already browsing a collection by folder, clicking a folder in the tree keeps
76
- * them in that collection rather than switching to the folder collection's own view.
77
- */
78
- const browsedCollectionSlug = useMemo(() => {
79
- const routeSlug = pathname?.match(/\/collections\/([^/]+)\/hierarchy/)?.[1];
80
- if (!routeSlug || routeSlug === hierarchyCollectionSlug) {
81
- return hierarchyCollectionSlug;
82
- }
83
- // Only follow the route when it really is scoped to this tree - another hierarchy's tab must
84
- // not start linking into an unrelated collection.
85
- return getFolderHierarchySlug(config.collections, routeSlug) === hierarchyCollectionSlug ? routeSlug : hierarchyCollectionSlug;
86
- }, [config.collections, hierarchyCollectionSlug, pathname]);
87
- const handleNavigateToParent = useCallback(({
88
- id
89
- }) => {
90
- const url = formatAdminURL({
91
- adminRoute,
92
- path: `/collections/${browsedCollectionSlug}/hierarchy?${resolvedParentFieldName}=${id}`
93
- });
94
- startRouteTransition(() => {
95
- router.push(url);
96
- router.refresh();
97
- });
98
- }, [adminRoute, browsedCollectionSlug, resolvedParentFieldName, router, startRouteTransition]);
99
- return /*#__PURE__*/_jsxs(_Fragment, {
100
- children: [/*#__PURE__*/_jsx(HydrateHierarchyProvider, {
101
- baseFilter: baseFilter,
102
- collectionSlug: hierarchyCollectionSlug,
103
- expandedNodes: initialExpandedNodes,
104
- parentFieldName: parentFieldName,
105
- selectedFilters: initialSelectedFilters,
106
- treeData: initialData,
107
- treeLimit: treeLimit,
108
- typeFieldName: typeFieldName
109
- }), /*#__PURE__*/_jsxs("div", {
110
- className: "hierarchy-sidebar-tab",
111
- children: [/*#__PURE__*/_jsx(HierarchySearch, {
112
- collectionSlug: hierarchyCollectionSlug,
113
- isActive: isSearchActive,
114
- onActiveChange: setIsSearchActive,
115
- onSelect: handleNavigateToParent,
116
- parentId: selectedNodeId ?? null
117
- }), !isSearchActive && /*#__PURE__*/_jsx(HierarchyTree, {
118
- baseFilter: baseFilter,
112
+ let t8;
113
+ if ($[16] !== baseFilter) {
114
+ t8 = baseFilter ? JSON.stringify(baseFilter) : "";
115
+ $[16] = baseFilter;
116
+ $[17] = t8;
117
+ } else {
118
+ t8 = $[17];
119
+ }
120
+ const baseFilterKey = t8;
121
+ let t9;
122
+ if ($[18] !== setSelectedFiltersContext) {
123
+ t9 = filters => {
124
+ setSelectedFiltersLocal(filters);
125
+ setSelectedFiltersContext(filters);
126
+ };
127
+ $[18] = setSelectedFiltersContext;
128
+ $[19] = t9;
129
+ } else {
130
+ t9 = $[19];
131
+ }
132
+ const handleFilterChange = t9;
133
+ let t10;
134
+ if ($[20] !== adminRoute || $[21] !== hierarchyCollectionSlug || $[22] !== resolvedParentFieldName || $[23] !== router || $[24] !== startRouteTransition) {
135
+ t10 = t11 => {
136
+ const {
137
+ id
138
+ } = t11;
139
+ const url = formatAdminURL({
140
+ adminRoute,
141
+ path: `/collections/${hierarchyCollectionSlug}/hierarchy?${resolvedParentFieldName}=${id}`
142
+ });
143
+ startRouteTransition(() => {
144
+ router.push(url);
145
+ router.refresh();
146
+ });
147
+ };
148
+ $[20] = adminRoute;
149
+ $[21] = hierarchyCollectionSlug;
150
+ $[22] = resolvedParentFieldName;
151
+ $[23] = router;
152
+ $[24] = startRouteTransition;
153
+ $[25] = t10;
154
+ } else {
155
+ t10 = $[25];
156
+ }
157
+ const handleNavigateToParent = t10;
158
+ let t11;
159
+ if ($[26] !== baseFilter || $[27] !== baseFilterKey || $[28] !== collectionSpecificOptions || $[29] !== handleFilterChange || $[30] !== handleNavigateToParent || $[31] !== hierarchyCollectionSlug || $[32] !== icon || $[33] !== initialData || $[34] !== initialExpandedNodes || $[35] !== initialSelectedFilters || $[36] !== isSearchActive || $[37] !== parentFieldName || $[38] !== selectedFilters || $[39] !== selectedNodeId || $[40] !== treeLimit || $[41] !== typeFieldName || $[42] !== useAsTitle) {
160
+ t11 = _jsxs(_Fragment, {
161
+ children: [_jsx(HydrateHierarchyProvider, {
162
+ baseFilter,
119
163
  collectionSlug: hierarchyCollectionSlug,
120
- filterByCollections: initialSelectedFilters?.length ? initialSelectedFilters : undefined,
121
- icon: _icon,
122
- initialData: initialData,
123
- initialExpandedNodes: initialExpandedNodes,
124
- onNodeClick: handleNavigateToParent,
125
- selectedNodeId: selectedNodeId,
126
- useAsTitle: useAsTitle
127
- }, `${hierarchyCollectionSlug}-${baseFilterKey}`)]
128
- })]
129
- });
164
+ expandedNodes: initialExpandedNodes,
165
+ parentFieldName,
166
+ selectedFilters: initialSelectedFilters,
167
+ treeData: initialData,
168
+ treeLimit,
169
+ typeFieldName
170
+ }), _jsxs("div", {
171
+ className: "hierarchy-sidebar-tab",
172
+ children: [_jsx(HierarchySearch, {
173
+ collectionSlug: hierarchyCollectionSlug,
174
+ collectionSpecificOptions,
175
+ isActive: isSearchActive,
176
+ onActiveChange: setIsSearchActive,
177
+ onFilterChange: handleFilterChange,
178
+ onSelect: handleNavigateToParent,
179
+ selectedFilters
180
+ }), !isSearchActive && _jsx(HierarchyTree, {
181
+ baseFilter,
182
+ collectionSlug: hierarchyCollectionSlug,
183
+ filterByCollections: selectedFilters.length > 0 ? selectedFilters : undefined,
184
+ icon,
185
+ initialData,
186
+ initialExpandedNodes,
187
+ onNodeClick: handleNavigateToParent,
188
+ selectedNodeId,
189
+ useAsTitle
190
+ }, `${hierarchyCollectionSlug}-${baseFilterKey}`)]
191
+ })]
192
+ });
193
+ $[26] = baseFilter;
194
+ $[27] = baseFilterKey;
195
+ $[28] = collectionSpecificOptions;
196
+ $[29] = handleFilterChange;
197
+ $[30] = handleNavigateToParent;
198
+ $[31] = hierarchyCollectionSlug;
199
+ $[32] = icon;
200
+ $[33] = initialData;
201
+ $[34] = initialExpandedNodes;
202
+ $[35] = initialSelectedFilters;
203
+ $[36] = isSearchActive;
204
+ $[37] = parentFieldName;
205
+ $[38] = selectedFilters;
206
+ $[39] = selectedNodeId;
207
+ $[40] = treeLimit;
208
+ $[41] = typeFieldName;
209
+ $[42] = useAsTitle;
210
+ $[43] = t11;
211
+ } else {
212
+ t11 = $[43];
213
+ }
214
+ return t11;
130
215
  };
131
216
  //# sourceMappingURL=HierarchySidebarTab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySidebarTab.js","names":["formatAdminURL","React","useCallback","useEffect","useMemo","useRef","useState","useConfig","useHierarchy","usePathname","useRouter","useSearchParams","useRouteTransition","useSidebarTabs","getFolderHierarchySlug","HydrateHierarchyProvider","HierarchySearch","HierarchyTree","HierarchySidebarTab","baseFilter","hierarchyCollectionSlug","icon","_icon","initialData","initialExpandedNodes","initialSelectedFilters","parentFieldName","selectedNodeId","selectedNodeIdFromServer","treeLimit","typeFieldName","useAsTitle","router","pathname","searchParams","startRouteTransition","config","routes","admin","adminRoute","isSearchActive","setIsSearchActive","treeRefreshKeys","sidebarTabs","resolvedParentFieldName","currentParentParam","get","tabSlug","isActiveTab","activeTabSlug","treeRefreshKey","prevTreeRefreshKeyRef","current","reloadTabContent","undefined","baseFilterKey","JSON","stringify","browsedCollectionSlug","routeSlug","match","collections","handleNavigateToParent","id","url","path","push","refresh","_jsxs","_Fragment","_jsx","collectionSlug","expandedNodes","selectedFilters","treeData","className","isActive","onActiveChange","onSelect","parentId","filterByCollections","length","onNodeClick"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { usePathname, useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useSidebarTabs } from '../../../providers/SidebarTabs/index.js'\nimport { getFolderHierarchySlug } from '../getFolderHierarchySlug.js'\nimport { HydrateHierarchyProvider } from '../HydrateProvider/index.js'\nimport { HierarchySearch } from '../Search/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n baseFilter?: Record<string, unknown>\n hierarchyCollectionSlug: string\n icon?: React.ReactNode\n initialData?: HierarchyInitialData | null\n initialExpandedNodes?: (number | string)[]\n initialSelectedFilters?: string[]\n parentFieldName?: string\n selectedNodeId?: null | string\n treeLimit?: number\n typeFieldName?: string\n useAsTitle?: string\n } & SidebarTabClientProps\n> = ({\n baseFilter,\n hierarchyCollectionSlug,\n icon: _icon,\n initialData,\n initialExpandedNodes,\n initialSelectedFilters,\n parentFieldName,\n selectedNodeId: selectedNodeIdFromServer,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const router = useRouter()\n const pathname = usePathname()\n const searchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const {\n config,\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const [isSearchActive, setIsSearchActive] = useState(false)\n const { treeRefreshKeys } = useHierarchy()\n const sidebarTabs = useSidebarTabs()\n\n const resolvedParentFieldName = parentFieldName ?? 'parent'\n const currentParentParam = searchParams.get(resolvedParentFieldName)\n\n // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.\n // Always reload regardless of active state so inactive tabs are fresh when switched to.\n // The render-tab server function runs with a fresh request that lacks the client's URL query,\n // so forward the current selected parent id — otherwise the reload can't tell which node is\n // being viewed and rebuilds the tree from preference state.\n const tabSlug = `hierarchy-${hierarchyCollectionSlug}`\n const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug\n const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0\n const prevTreeRefreshKeyRef = useRef(treeRefreshKey)\n useEffect(() => {\n if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {\n prevTreeRefreshKeyRef.current = treeRefreshKey\n // Only forward the selected parent id when this tab is active. currentParentParam\n // reflects the global URL search params, so an inactive tab could otherwise pick up\n // another hierarchy collection's value if they share the same parentFieldName.\n sidebarTabs?.reloadTabContent(tabSlug, {\n searchParams:\n isActiveTab && currentParentParam\n ? { [resolvedParentFieldName]: currentParentParam }\n : undefined,\n })\n }\n }, [\n treeRefreshKey,\n sidebarTabs,\n tabSlug,\n isActiveTab,\n currentParentParam,\n resolvedParentFieldName,\n ])\n\n // Only highlight selected node when this tab is active\n const selectedNodeId = isActiveTab\n ? (currentParentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\n\n /**\n * When the user is already browsing a collection by folder, clicking a folder in the tree keeps\n * them in that collection rather than switching to the folder collection's own view.\n */\n const browsedCollectionSlug = useMemo(() => {\n const routeSlug = pathname?.match(/\\/collections\\/([^/]+)\\/hierarchy/)?.[1]\n\n if (!routeSlug || routeSlug === hierarchyCollectionSlug) {\n return hierarchyCollectionSlug\n }\n\n // Only follow the route when it really is scoped to this tree - another hierarchy's tab must\n // not start linking into an unrelated collection.\n return getFolderHierarchySlug(config.collections, routeSlug) === hierarchyCollectionSlug\n ? routeSlug\n : hierarchyCollectionSlug\n }, [config.collections, hierarchyCollectionSlug, pathname])\n\n const handleNavigateToParent = useCallback(\n ({ id }: { id: number | string }) => {\n const url = formatAdminURL({\n adminRoute,\n path: `/collections/${browsedCollectionSlug}/hierarchy?${resolvedParentFieldName}=${id}`,\n })\n startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, browsedCollectionSlug, resolvedParentFieldName, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={initialData}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n />\n <div className=\"hierarchy-sidebar-tab\">\n <HierarchySearch\n collectionSlug={hierarchyCollectionSlug}\n isActive={isSearchActive}\n onActiveChange={setIsSearchActive}\n onSelect={handleNavigateToParent}\n parentId={selectedNodeId ?? null}\n />\n {!isSearchActive && (\n <HierarchyTree\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={\n initialSelectedFilters?.length ? initialSelectedFilters : undefined\n }\n icon={_icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n key={`${hierarchyCollectionSlug}-${baseFilterKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAIzE,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,WAAW,EAAEC,SAAS,EAAEC,eAAe,QAAQ;AACxD,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,wBAAwB,QAAQ;AACzC,SAASC,eAAe,QAAQ;AAChC,SAASC,aAAa,QAAQ;AAE9B,OAAO,MAAMC,mBAAA,GAcTA,CAAC;EACHC,UAAU;EACVC,uBAAuB;EACvBC,IAAA,EAAMC,KAAK;EACXC,WAAW;EACXC,oBAAoB;EACpBC,sBAAsB;EACtBC,eAAe;EACfC,cAAA,EAAgBC,wBAAwB;EACxCC,SAAS;EACTC,aAAa;EACbC;AAAU,CACX;EACC,MAAMC,MAAA,GAAStB,SAAA;EACf,MAAMuB,QAAA,GAAWxB,WAAA;EACjB,MAAMyB,YAAA,GAAevB,eAAA;EACrB,MAAM;IAAEwB;EAAoB,CAAE,GAAGvB,kBAAA;EACjC,MAAM;IACJwB,MAAM;IACNA,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,KAAA,EAAOC;MAAU;IAAE;EAC9B,CACF,GAAGhC,SAAA;EACJ,MAAM,CAACiC,cAAA,EAAgBC,iBAAA,CAAkB,GAAGnC,QAAA,CAAS;EACrD,MAAM;IAAEoC;EAAe,CAAE,GAAGlC,YAAA;EAC5B,MAAMmC,WAAA,GAAc9B,cAAA;EAEpB,MAAM+B,uBAAA,GAA0BlB,eAAA,IAAmB;EACnD,MAAMmB,kBAAA,GAAqBX,YAAA,CAAaY,GAAG,CAACF,uBAAA;EAE5C;EACA;EACA;EACA;EACA;EACA,MAAMG,OAAA,GAAU,aAAa3B,uBAAA,EAAyB;EACtD,MAAM4B,WAAA,GAAcL,WAAA,EAAaM,aAAA,KAAkBF,OAAA;EACnD,MAAMG,cAAA,GAAiBR,eAAA,CAAgBI,GAAG,CAAC1B,uBAAA,KAA4B;EACvE,MAAM+B,qBAAA,GAAwB9C,MAAA,CAAO6C,cAAA;EACrC/C,SAAA,CAAU;IACR,IAAIgD,qBAAA,CAAsBC,OAAO,KAAKF,cAAA,EAAgB;MACpDC,qBAAA,CAAsBC,OAAO,GAAGF,cAAA;MAChC;MACA;MACA;MACAP,WAAA,EAAaU,gBAAA,CAAiBN,OAAA,EAAS;QACrCb,YAAA,EACEc,WAAA,IAAeH,kBAAA,GACX;UAAE,CAACD,uBAAA,GAA0BC;QAAmB,IAChDS;MACR;IACF;EACF,GAAG,CACDJ,cAAA,EACAP,WAAA,EACAI,OAAA,EACAC,WAAA,EACAH,kBAAA,EACAD,uBAAA,CACD;EAED;EACA,MAAMjB,cAAA,GAAiBqB,WAAA,GAClBH,kBAAA,IAAsBjB,wBAAA,IAA4B0B,SAAA,GACnDA,SAAA;EAEJ,MAAMC,aAAA,GAAgBpC,UAAA,GAAaqC,IAAA,CAAKC,SAAS,CAACtC,UAAA,IAAc;EAEhE;;;;EAIA,MAAMuC,qBAAA,GAAwBtD,OAAA,CAAQ;IACpC,MAAMuD,SAAA,GAAY1B,QAAA,EAAU2B,KAAA,CAAM,uCAAuC,EAAE;IAE3E,IAAI,CAACD,SAAA,IAAaA,SAAA,KAAcvC,uBAAA,EAAyB;MACvD,OAAOA,uBAAA;IACT;IAEA;IACA;IACA,OAAON,sBAAA,CAAuBsB,MAAA,CAAOyB,WAAW,EAAEF,SAAA,MAAevC,uBAAA,GAC7DuC,SAAA,GACAvC,uBAAA;EACN,GAAG,CAACgB,MAAA,CAAOyB,WAAW,EAAEzC,uBAAA,EAAyBa,QAAA,CAAS;EAE1D,MAAM6B,sBAAA,GAAyB5D,WAAA,CAC7B,CAAC;IAAE6D;EAAE,CAA2B;IAC9B,MAAMC,GAAA,GAAMhE,cAAA,CAAe;MACzBuC,UAAA;MACA0B,IAAA,EAAM,gBAAgBP,qBAAA,cAAmCd,uBAAA,IAA2BmB,EAAA;IACtF;IACA5B,oBAAA,CAAqB;MACnBH,MAAA,CAAOkC,IAAI,CAACF,GAAA;MACZhC,MAAA,CAAOmC,OAAO;IAChB;EACF,GACA,CAAC5B,UAAA,EAAYmB,qBAAA,EAAuBd,uBAAA,EAAyBZ,MAAA,EAAQG,oBAAA,CAAqB;EAE5F,oBACEiC,KAAA,CAAAC,SAAA;4BACEC,IAAA,CAACvD,wBAAA;MACCI,UAAA,EAAYA,UAAA;MACZoD,cAAA,EAAgBnD,uBAAA;MAChBoD,aAAA,EAAehD,oBAAA;MACfE,eAAA,EAAiBA,eAAA;MACjB+C,eAAA,EAAiBhD,sBAAA;MACjBiD,QAAA,EAAUnD,WAAA;MACVM,SAAA,EAAWA,SAAA;MACXC,aAAA,EAAeA;qBAEjBsC,KAAA,CAAC;MAAIO,SAAA,EAAU;8BACbL,IAAA,CAACtD,eAAA;QACCuD,cAAA,EAAgBnD,uBAAA;QAChBwD,QAAA,EAAUpC,cAAA;QACVqC,cAAA,EAAgBpC,iBAAA;QAChBqC,QAAA,EAAUhB,sBAAA;QACViB,QAAA,EAAUpD,cAAA,IAAkB;UAE7B,CAACa,cAAA,iBACA8B,IAAA,CAACrD,aAAA;QACCE,UAAA,EAAYA,UAAA;QACZoD,cAAA,EAAgBnD,uBAAA;QAChB4D,mBAAA,EACEvD,sBAAA,EAAwBwD,MAAA,GAASxD,sBAAA,GAAyB6B,SAAA;QAE5DjC,IAAA,EAAMC,KAAA;QACNC,WAAA,EAAaA,WAAA;QACbC,oBAAA,EAAsBA,oBAAA;QAEtB0D,WAAA,EAAapB,sBAAA;QACbnC,cAAA,EAAgBA,cAAA;QAChBI,UAAA,EAAYA;SAHP,GAAGX,uBAAA,IAA2BmC,aAAA,EAAe;;;AAS9D","ignoreList":[]}
1
+ {"version":3,"file":"HierarchySidebarTab.js","names":["c","_c","formatAdminURL","React","useCallback","useEffect","useRef","useState","useConfig","useHierarchy","useRouter","useSearchParams","useRouteTransition","useSidebarTabs","HydrateHierarchyProvider","HierarchySearch","HierarchyTree","HierarchySidebarTab","t0","$","baseFilter","collectionSpecificOptions","hierarchyCollectionSlug","icon","initialData","initialExpandedNodes","initialSelectedFilters","parentFieldName","selectedNodeId","selectedNodeIdFromServer","treeLimit","typeFieldName","useAsTitle","router","searchParams","startRouteTransition","config","t1","routes","t2","admin","adminRoute","isSearchActive","setIsSearchActive","t3","selectedFilters","setSelectedFiltersLocal","setSelectedFilters","setSelectedFiltersContext","treeRefreshKeys","sidebarTabs","resolvedParentFieldName","t4","get","currentParentParam","tabSlug","isActiveTab","activeTabSlug","t5","treeRefreshKey","prevTreeRefreshKeyRef","t6","t7","current","reloadTabContent","undefined","t8","JSON","stringify","baseFilterKey","t9","filters","handleFilterChange","t10","t11","id","url","path","push","refresh","handleNavigateToParent","_jsxs","_Fragment","children","_jsx","collectionSlug","expandedNodes","treeData","className","isActive","onActiveChange","onFilterChange","onSelect","filterByCollections","length","onNodeClick"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.tsx"],"sourcesContent":["'use client'\n\nimport type { SidebarTabClientProps } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { HierarchyInitialData } from './types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useSidebarTabs } from '../../../providers/SidebarTabs/index.js'\nimport { HydrateHierarchyProvider } from '../HydrateProvider/index.js'\nimport { HierarchySearch } from '../Search/index.js'\nimport { HierarchyTree } from './index.js'\n\nexport const HierarchySidebarTab: React.FC<\n {\n baseFilter?: Record<string, unknown>\n collectionSpecificOptions?: { label: string; value: string }[]\n hierarchyCollectionSlug: string\n icon?: React.ReactNode\n initialData?: HierarchyInitialData | null\n initialExpandedNodes?: (number | string)[]\n initialSelectedFilters?: string[]\n parentFieldName?: string\n selectedNodeId?: null | string\n treeLimit?: number\n typeFieldName?: string\n useAsTitle?: string\n } & SidebarTabClientProps\n> = ({\n baseFilter,\n collectionSpecificOptions,\n hierarchyCollectionSlug,\n icon,\n initialData,\n initialExpandedNodes,\n initialSelectedFilters,\n parentFieldName,\n selectedNodeId: selectedNodeIdFromServer,\n treeLimit,\n typeFieldName,\n useAsTitle,\n}) => {\n const router = useRouter()\n const searchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const [isSearchActive, setIsSearchActive] = useState(false)\n const [selectedFilters, setSelectedFiltersLocal] = useState<string[]>(\n initialSelectedFilters ?? [],\n )\n const { setSelectedFilters: setSelectedFiltersContext, treeRefreshKeys } = useHierarchy()\n const sidebarTabs = useSidebarTabs()\n\n const resolvedParentFieldName = parentFieldName ?? 'parent'\n const currentParentParam = searchParams.get(resolvedParentFieldName)\n\n // When refreshTree(slug) is called from the list view (e.g. after mutations), reload this tab.\n // Always reload regardless of active state so inactive tabs are fresh when switched to.\n // The render-tab server function runs with a fresh request that lacks the client's URL query,\n // so forward the current selected parent id — otherwise the reload can't tell which node is\n // being viewed and rebuilds the tree from preference state.\n const tabSlug = `hierarchy-${hierarchyCollectionSlug}`\n const isActiveTab = sidebarTabs?.activeTabSlug === tabSlug\n const treeRefreshKey = treeRefreshKeys.get(hierarchyCollectionSlug) ?? 0\n const prevTreeRefreshKeyRef = useRef(treeRefreshKey)\n useEffect(() => {\n if (prevTreeRefreshKeyRef.current !== treeRefreshKey) {\n prevTreeRefreshKeyRef.current = treeRefreshKey\n // Only forward the selected parent id when this tab is active. currentParentParam\n // reflects the global URL search params, so an inactive tab could otherwise pick up\n // another hierarchy collection's value if they share the same parentFieldName.\n sidebarTabs?.reloadTabContent(tabSlug, {\n searchParams:\n isActiveTab && currentParentParam\n ? { [resolvedParentFieldName]: currentParentParam }\n : undefined,\n })\n }\n }, [\n treeRefreshKey,\n sidebarTabs,\n tabSlug,\n isActiveTab,\n currentParentParam,\n resolvedParentFieldName,\n ])\n\n // Only highlight selected node when this tab is active\n const selectedNodeId = isActiveTab\n ? (currentParentParam ?? selectedNodeIdFromServer ?? undefined)\n : undefined\n\n const baseFilterKey = baseFilter ? JSON.stringify(baseFilter) : ''\n\n const handleFilterChange = useCallback(\n (filters: string[]) => {\n setSelectedFiltersLocal(filters)\n setSelectedFiltersContext(filters)\n },\n [setSelectedFiltersContext],\n )\n\n const handleNavigateToParent = useCallback(\n ({ id }: { id: number | string }) => {\n const url = formatAdminURL({\n adminRoute,\n path: `/collections/${hierarchyCollectionSlug}/hierarchy?${resolvedParentFieldName}=${id}`,\n })\n startRouteTransition(() => {\n router.push(url)\n router.refresh()\n })\n },\n [adminRoute, hierarchyCollectionSlug, resolvedParentFieldName, router, startRouteTransition],\n )\n return (\n <>\n <HydrateHierarchyProvider\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n expandedNodes={initialExpandedNodes}\n parentFieldName={parentFieldName}\n selectedFilters={initialSelectedFilters}\n treeData={initialData}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n />\n <div className=\"hierarchy-sidebar-tab\">\n <HierarchySearch\n collectionSlug={hierarchyCollectionSlug}\n collectionSpecificOptions={collectionSpecificOptions}\n isActive={isSearchActive}\n onActiveChange={setIsSearchActive}\n onFilterChange={handleFilterChange}\n onSelect={handleNavigateToParent}\n selectedFilters={selectedFilters}\n />\n {!isSearchActive && (\n <HierarchyTree\n baseFilter={baseFilter}\n collectionSlug={hierarchyCollectionSlug}\n filterByCollections={selectedFilters.length > 0 ? selectedFilters : undefined}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n key={`${hierarchyCollectionSlug}-${baseFilterKey}`}\n onNodeClick={handleNavigateToParent}\n selectedNodeId={selectedNodeId}\n useAsTitle={useAsTitle}\n />\n )}\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySidebarTab.server.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAS,MAAM,SAAS,CAAA;AAI3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,uBAAuB,EAAE,MAAM,CAAA;CAChC,GAAG,qBAAqB,CAAA;AAEzB,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CA4K9E,CAAA"}
1
+ {"version":3,"file":"HierarchySidebarTab.server.d.ts","sourceRoot":"","sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAS,MAAM,SAAS,CAAA;AAK3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,uBAAuB,EAAE,MAAM,CAAA;CAChC,GAAG,qBAAqB,CAAA;AAEzB,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CA+L9E,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getTranslation } from '@payloadcms/translations';
2
3
  import { DEFAULT_HIERARCHY_TREE_LIMIT, getInitialTreeData } from 'payload';
3
4
  import { PREFERENCE_KEYS } from 'payload/shared';
4
5
  import React from 'react';
@@ -8,6 +9,7 @@ import { TagIcon } from '../../../icons/Tag/index.js';
8
9
  import { RenderServerComponent } from '../../RenderServerComponent/index.js';
9
10
  export const HierarchySidebarTabServer = async ({
10
11
  hierarchyCollectionSlug,
12
+ i18n,
11
13
  payload,
12
14
  req,
13
15
  searchParams,
@@ -24,16 +26,22 @@ export const HierarchySidebarTabServer = async ({
24
26
  let treeLimit;
25
27
  let typeFieldName;
26
28
  let useAsTitle;
29
+ let collectionSpecificOptions = [];
27
30
  let baseFilter = null;
28
31
  // Get collection config and render icon (outside try block - doesn't need async)
29
32
  const collectionConfig = payload.collections[hierarchyCollectionSlug]?.config;
30
33
  const hierarchyConfig = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
31
34
  const IconComponent = hierarchyConfig?.admin?.components?.SmallIcon;
32
35
  const icon = IconComponent ? RenderServerComponent({
36
+ clientProps: {
37
+ size: 16
38
+ },
33
39
  Component: IconComponent,
34
40
  importMap: payload.importMap,
35
41
  key: `hierarchy-sidebar-icon-${hierarchyCollectionSlug}`
36
- }) : /*#__PURE__*/_jsx(TagIcon, {});
42
+ }) : /*#__PURE__*/_jsx(TagIcon, {
43
+ size: 16
44
+ });
37
45
  try {
38
46
  // Get parentFieldName from config first (needed for URL parsing)
39
47
  parentFieldName = hierarchyConfig?.parentFieldName ?? 'parent';
@@ -76,6 +84,17 @@ export const HierarchySidebarTabServer = async ({
76
84
  treeLimit = hierarchyConfig?.admin?.treeLimit;
77
85
  typeFieldName = hierarchyConfig?.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object' ? hierarchyConfig.collectionSpecific.fieldName : undefined;
78
86
  useAsTitle = collectionConfig?.admin?.useAsTitle;
87
+ // STEP 2.5: Build collection-specific options from related collections
88
+ if (hierarchyConfig.collectionSpecific && hierarchyConfig?.relatedCollections) {
89
+ collectionSpecificOptions = Object.keys(hierarchyConfig.relatedCollections).map(slug => {
90
+ const relatedConfig = payload.collections[slug]?.config;
91
+ const label = relatedConfig?.labels?.plural ?? slug;
92
+ return {
93
+ label: getTranslation(label, i18n),
94
+ value: slug
95
+ };
96
+ }).sort((a, b) => a.label.localeCompare(b.label));
97
+ }
79
98
  // Track the immediate parent of the selected node (for ensuring siblings are loaded)
80
99
  let selectedNodeParentId = null;
81
100
  // If there's a selected node, ensure its ancestor chain is expanded
@@ -149,6 +168,7 @@ export const HierarchySidebarTabServer = async ({
149
168
  }
150
169
  return /*#__PURE__*/_jsx(HierarchySidebarTab, {
151
170
  baseFilter: baseFilter,
171
+ collectionSpecificOptions: collectionSpecificOptions,
152
172
  hierarchyCollectionSlug: hierarchyCollectionSlug,
153
173
  icon: icon,
154
174
  initialData: initialData,
@@ -1 +1 @@
1
- {"version":3,"file":"HierarchySidebarTab.server.js","names":["DEFAULT_HIERARCHY_TREE_LIMIT","getInitialTreeData","PREFERENCE_KEYS","React","HierarchySidebarTab","TagIcon","RenderServerComponent","HierarchySidebarTabServer","hierarchyCollectionSlug","payload","req","searchParams","user","initialData","initialExpandedNodes","initialSelectedFilters","selectedNodeId","parentFieldName","treeLimit","typeFieldName","useAsTitle","baseFilter","collectionConfig","collections","config","hierarchyConfig","hierarchy","undefined","IconComponent","admin","components","SmallIcon","icon","Component","importMap","key","_jsx","selectedNodeParam","String","preferenceKey","HIERARCHY_TREE","docs","preferenceDocs","find","collection","limit","overrideAccess","where","and","equals","id","preferences","value","expandedNodes","selectedFilters","collectionSpecific","fieldName","selectedNodeParentId","ancestorIds","currentNodeId","isFirstIteration","node","findByID","depth","parentId","push","expandedSet","Set","forEach","add","Array","from","baseFilterFn","baseListFilter","page","sort","collectionSlug","expandedNodeIds","length","filterByCollections","error","logger","warn","err","msg"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.server.tsx"],"sourcesContent":["import type { SidebarTabServerProps, Where } from 'payload'\n\nimport { DEFAULT_HIERARCHY_TREE_LIMIT, getInitialTreeData } from 'payload'\nimport { PREFERENCE_KEYS } from 'payload/shared'\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { HierarchySidebarTab } from '../../../exports/client/index.js'\nimport { TagIcon } from '../../../icons/Tag/index.js'\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\n\nexport type HierarchySidebarTabServerProps = {\n hierarchyCollectionSlug: string\n} & SidebarTabServerProps\n\nexport const HierarchySidebarTabServer: React.FC<HierarchySidebarTabServerProps> = async ({\n hierarchyCollectionSlug,\n payload,\n req,\n searchParams,\n user,\n}) => {\n if (!user) {\n return null\n }\n\n let initialData = null\n let initialExpandedNodes: (number | string)[] = []\n let initialSelectedFilters: string[] = []\n let selectedNodeId: null | string = null\n let parentFieldName = 'parent'\n let treeLimit: number | undefined\n let typeFieldName: string | undefined\n let useAsTitle: string | undefined\n let baseFilter: null | Where = null\n\n // Get collection config and render icon (outside try block - doesn't need async)\n const collectionConfig = payload.collections[hierarchyCollectionSlug]?.config\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n\n const IconComponent = hierarchyConfig?.admin?.components?.SmallIcon\n const icon = IconComponent ? (\n RenderServerComponent({\n Component: IconComponent,\n importMap: payload.importMap,\n key: `hierarchy-sidebar-icon-${hierarchyCollectionSlug}`,\n })\n ) : (\n <TagIcon />\n )\n\n try {\n // Get parentFieldName from config first (needed for URL parsing)\n parentFieldName = hierarchyConfig?.parentFieldName ?? 'parent'\n\n // Get selected node from URL (?<parentFieldName>=<id>)\n const selectedNodeParam = searchParams?.[parentFieldName]\n selectedNodeId = selectedNodeParam ? String(selectedNodeParam) : null\n\n // STEP 1: Load user's expanded node preferences\n const preferenceKey = `${PREFERENCE_KEYS.HIERARCHY_TREE}-${hierarchyCollectionSlug}`\n\n const { docs: preferenceDocs } = await payload.find({\n collection: 'payload-preferences',\n limit: 1,\n overrideAccess: false,\n user,\n where: {\n and: [\n { key: { equals: preferenceKey } },\n { 'user.value': { equals: user.id } },\n { 'user.relationTo': { equals: user.collection } },\n ],\n },\n })\n\n const preferences = preferenceDocs[0]\n\n if (preferences?.value?.expandedNodes) {\n initialExpandedNodes = preferences.value.expandedNodes\n }\n\n if (preferences?.value?.selectedFilters) {\n initialSelectedFilters = preferences.value.selectedFilters\n }\n\n // STEP 2: Get remaining config values\n treeLimit = hierarchyConfig?.admin?.treeLimit\n typeFieldName =\n hierarchyConfig?.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object'\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n useAsTitle = collectionConfig?.admin?.useAsTitle\n\n // Track the immediate parent of the selected node (for ensuring siblings are loaded)\n let selectedNodeParentId: null | number | string = null\n\n // If there's a selected node, ensure its ancestor chain is expanded\n if (selectedNodeId) {\n // Walk up the parent chain to root\n const ancestorIds: (number | string)[] = []\n let currentNodeId: null | number | string = selectedNodeId\n let isFirstIteration = true\n\n while (currentNodeId) {\n try {\n const node = await payload.findByID({\n id: currentNodeId,\n collection: hierarchyCollectionSlug,\n depth: 0,\n overrideAccess: false,\n user,\n })\n\n const parentId = node?.[parentFieldName]\n\n // Capture the immediate parent of the selected node\n if (isFirstIteration) {\n selectedNodeParentId = parentId ?? null\n isFirstIteration = false\n }\n\n if (parentId) {\n ancestorIds.push(parentId)\n currentNodeId = parentId\n } else {\n currentNodeId = null\n }\n } catch {\n // Node not found or access denied\n break\n }\n }\n\n // Merge ancestor IDs with existing expanded nodes\n const expandedSet = new Set(initialExpandedNodes)\n ancestorIds.forEach((id) => expandedSet.add(id))\n // Include the selected node itself so its own children are loaded.\n expandedSet.add(selectedNodeId)\n initialExpandedNodes = Array.from(expandedSet)\n }\n\n const baseFilterFn =\n collectionConfig?.admin?.baseFilter ?? collectionConfig?.admin?.baseListFilter\n if (baseFilterFn && req) {\n baseFilter =\n (await baseFilterFn({ limit: DEFAULT_HIERARCHY_TREE_LIMIT, page: 1, req, sort: 'id' })) ??\n null\n }\n\n initialData = await getInitialTreeData({\n baseFilter,\n collectionSlug: hierarchyCollectionSlug,\n expandedNodeIds: initialExpandedNodes,\n ...(initialSelectedFilters.length > 0 && { filterByCollections: initialSelectedFilters }),\n ...(treeLimit !== undefined && { limit: treeLimit }),\n payload,\n selectedNodeId,\n selectedNodeParentId,\n user: req.user,\n })\n } catch (error) {\n payload.logger.warn({\n err: error,\n msg: `Failed to fetch hierarchy data for ${hierarchyCollectionSlug}`,\n })\n // Fall back to client-side fetching if server fetch fails\n }\n\n return (\n <HierarchySidebarTab\n baseFilter={baseFilter}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n initialSelectedFilters={initialSelectedFilters}\n parentFieldName={parentFieldName}\n selectedNodeId={selectedNodeId}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HierarchySidebarTab.server.js","names":["getTranslation","DEFAULT_HIERARCHY_TREE_LIMIT","getInitialTreeData","PREFERENCE_KEYS","React","HierarchySidebarTab","TagIcon","RenderServerComponent","HierarchySidebarTabServer","hierarchyCollectionSlug","i18n","payload","req","searchParams","user","initialData","initialExpandedNodes","initialSelectedFilters","selectedNodeId","parentFieldName","treeLimit","typeFieldName","useAsTitle","collectionSpecificOptions","baseFilter","collectionConfig","collections","config","hierarchyConfig","hierarchy","undefined","IconComponent","admin","components","SmallIcon","icon","clientProps","size","Component","importMap","key","_jsx","selectedNodeParam","String","preferenceKey","HIERARCHY_TREE","docs","preferenceDocs","find","collection","limit","overrideAccess","where","and","equals","id","preferences","value","expandedNodes","selectedFilters","collectionSpecific","fieldName","relatedCollections","Object","keys","map","slug","relatedConfig","label","labels","plural","sort","a","b","localeCompare","selectedNodeParentId","ancestorIds","currentNodeId","isFirstIteration","node","findByID","depth","parentId","push","expandedSet","Set","forEach","add","Array","from","baseFilterFn","baseListFilter","page","collectionSlug","expandedNodeIds","length","filterByCollections","error","logger","warn","err","msg"],"sources":["../../../../src/elements/Hierarchy/Tree/HierarchySidebarTab.server.tsx"],"sourcesContent":["import type { SidebarTabServerProps, Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { DEFAULT_HIERARCHY_TREE_LIMIT, getInitialTreeData } from 'payload'\nimport { PREFERENCE_KEYS } from 'payload/shared'\nimport React from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary\nimport { HierarchySidebarTab } from '../../../exports/client/index.js'\nimport { TagIcon } from '../../../icons/Tag/index.js'\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\n\nexport type HierarchySidebarTabServerProps = {\n hierarchyCollectionSlug: string\n} & SidebarTabServerProps\n\nexport const HierarchySidebarTabServer: React.FC<HierarchySidebarTabServerProps> = async ({\n hierarchyCollectionSlug,\n i18n,\n payload,\n req,\n searchParams,\n user,\n}) => {\n if (!user) {\n return null\n }\n\n let initialData = null\n let initialExpandedNodes: (number | string)[] = []\n let initialSelectedFilters: string[] = []\n let selectedNodeId: null | string = null\n let parentFieldName = 'parent'\n let treeLimit: number | undefined\n let typeFieldName: string | undefined\n let useAsTitle: string | undefined\n let collectionSpecificOptions: { label: string; value: string }[] = []\n let baseFilter: null | Where = null\n\n // Get collection config and render icon (outside try block - doesn't need async)\n const collectionConfig = payload.collections[hierarchyCollectionSlug]?.config\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n\n const IconComponent = hierarchyConfig?.admin?.components?.SmallIcon\n const icon = IconComponent ? (\n RenderServerComponent({\n clientProps: { size: 16 },\n Component: IconComponent,\n importMap: payload.importMap,\n key: `hierarchy-sidebar-icon-${hierarchyCollectionSlug}`,\n })\n ) : (\n <TagIcon size={16} />\n )\n\n try {\n // Get parentFieldName from config first (needed for URL parsing)\n parentFieldName = hierarchyConfig?.parentFieldName ?? 'parent'\n\n // Get selected node from URL (?<parentFieldName>=<id>)\n const selectedNodeParam = searchParams?.[parentFieldName]\n selectedNodeId = selectedNodeParam ? String(selectedNodeParam) : null\n\n // STEP 1: Load user's expanded node preferences\n const preferenceKey = `${PREFERENCE_KEYS.HIERARCHY_TREE}-${hierarchyCollectionSlug}`\n\n const { docs: preferenceDocs } = await payload.find({\n collection: 'payload-preferences',\n limit: 1,\n overrideAccess: false,\n user,\n where: {\n and: [\n { key: { equals: preferenceKey } },\n { 'user.value': { equals: user.id } },\n { 'user.relationTo': { equals: user.collection } },\n ],\n },\n })\n\n const preferences = preferenceDocs[0]\n\n if (preferences?.value?.expandedNodes) {\n initialExpandedNodes = preferences.value.expandedNodes\n }\n\n if (preferences?.value?.selectedFilters) {\n initialSelectedFilters = preferences.value.selectedFilters\n }\n\n // STEP 2: Get remaining config values\n treeLimit = hierarchyConfig?.admin?.treeLimit\n typeFieldName =\n hierarchyConfig?.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object'\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n useAsTitle = collectionConfig?.admin?.useAsTitle\n\n // STEP 2.5: Build collection-specific options from related collections\n if (hierarchyConfig.collectionSpecific && hierarchyConfig?.relatedCollections) {\n collectionSpecificOptions = Object.keys(hierarchyConfig.relatedCollections)\n .map((slug) => {\n const relatedConfig = payload.collections[slug]?.config\n const label = relatedConfig?.labels?.plural ?? slug\n\n return {\n label: getTranslation(label, i18n),\n value: slug,\n }\n })\n .sort((a, b) => a.label.localeCompare(b.label))\n }\n\n // Track the immediate parent of the selected node (for ensuring siblings are loaded)\n let selectedNodeParentId: null | number | string = null\n\n // If there's a selected node, ensure its ancestor chain is expanded\n if (selectedNodeId) {\n // Walk up the parent chain to root\n const ancestorIds: (number | string)[] = []\n let currentNodeId: null | number | string = selectedNodeId\n let isFirstIteration = true\n\n while (currentNodeId) {\n try {\n const node = await payload.findByID({\n id: currentNodeId,\n collection: hierarchyCollectionSlug,\n depth: 0,\n overrideAccess: false,\n user,\n })\n\n const parentId = node?.[parentFieldName]\n\n // Capture the immediate parent of the selected node\n if (isFirstIteration) {\n selectedNodeParentId = parentId ?? null\n isFirstIteration = false\n }\n\n if (parentId) {\n ancestorIds.push(parentId)\n currentNodeId = parentId\n } else {\n currentNodeId = null\n }\n } catch {\n // Node not found or access denied\n break\n }\n }\n\n // Merge ancestor IDs with existing expanded nodes\n const expandedSet = new Set(initialExpandedNodes)\n ancestorIds.forEach((id) => expandedSet.add(id))\n // Include the selected node itself so its own children are loaded.\n expandedSet.add(selectedNodeId)\n initialExpandedNodes = Array.from(expandedSet)\n }\n\n const baseFilterFn =\n collectionConfig?.admin?.baseFilter ?? collectionConfig?.admin?.baseListFilter\n if (baseFilterFn && req) {\n baseFilter =\n (await baseFilterFn({ limit: DEFAULT_HIERARCHY_TREE_LIMIT, page: 1, req, sort: 'id' })) ??\n null\n }\n\n initialData = await getInitialTreeData({\n baseFilter,\n collectionSlug: hierarchyCollectionSlug,\n expandedNodeIds: initialExpandedNodes,\n ...(initialSelectedFilters.length > 0 && { filterByCollections: initialSelectedFilters }),\n ...(treeLimit !== undefined && { limit: treeLimit }),\n payload,\n selectedNodeId,\n selectedNodeParentId,\n user: req.user,\n })\n } catch (error) {\n payload.logger.warn({\n err: error,\n msg: `Failed to fetch hierarchy data for ${hierarchyCollectionSlug}`,\n })\n // Fall back to client-side fetching if server fetch fails\n }\n\n return (\n <HierarchySidebarTab\n baseFilter={baseFilter}\n collectionSpecificOptions={collectionSpecificOptions}\n hierarchyCollectionSlug={hierarchyCollectionSlug}\n icon={icon}\n initialData={initialData}\n initialExpandedNodes={initialExpandedNodes}\n initialSelectedFilters={initialSelectedFilters}\n parentFieldName={parentFieldName}\n selectedNodeId={selectedNodeId}\n treeLimit={treeLimit}\n typeFieldName={typeFieldName}\n useAsTitle={useAsTitle}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,9 @@
2
2
 
3
3
  .tree__load-more.load-more-row {
4
4
  padding-top: 0;
5
- padding-inline-start: calc(
6
- (var(--tree-depth, 0) * var(--tree-indent)) + var(--spacer-3) + var(--tree-chevron-width) +
7
- var(--tree-chevron-spacing)
5
+ padding-left: calc(
6
+ (var(--tree-depth, 0) * var(--tree-indent)) + (var(--spacer-1) * var(--tree-depth)) +
7
+ var(--spacer-2-5) - 2px
8
8
  );
9
9
  height: var(--tree-node-content-height);
10
10
  position: relative;