@payloadcms/ui 3.80.0-internal.0311fce → 3.80.0-internal.60d6f94

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 (522) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +12 -0
  3. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  4. package/dist/elements/Button/index.d.ts.map +1 -1
  5. package/dist/elements/Button/index.js +3 -5
  6. package/dist/elements/Button/index.js.map +1 -1
  7. package/dist/elements/Button/index.scss +5 -38
  8. package/dist/elements/Button/types.d.ts +1 -1
  9. package/dist/elements/Button/types.d.ts.map +1 -1
  10. package/dist/elements/Button/types.js.map +1 -1
  11. package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
  12. package/dist/elements/CheckboxPopup/index.js +1 -0
  13. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  14. package/dist/elements/CheckboxPopup/index.scss +0 -1
  15. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  16. package/dist/elements/DefaultListViewTabs/index.js +54 -28
  17. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  18. package/dist/elements/DocumentControls/index.d.ts +0 -1
  19. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  20. package/dist/elements/DocumentControls/index.js +10 -6
  21. package/dist/elements/DocumentControls/index.js.map +1 -1
  22. package/dist/elements/DocumentControls/index.scss +1 -1
  23. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentDrawer/index.js +141 -54
  25. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  26. package/dist/elements/DocumentDrawer/types.d.ts +1 -7
  27. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  29. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  30. package/dist/elements/DrawerActionHeader/index.js +0 -2
  31. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  32. package/dist/elements/DrawerActionHeader/index.scss +2 -2
  33. package/dist/elements/FolderView/Breadcrumbs/index.d.ts +19 -0
  34. package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -0
  35. package/dist/elements/FolderView/Breadcrumbs/index.js +96 -0
  36. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -0
  37. package/dist/elements/FolderView/Breadcrumbs/index.scss +56 -0
  38. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +6 -0
  39. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -0
  40. package/dist/elements/FolderView/BrowseByFolderButton/index.js +40 -0
  41. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -0
  42. package/dist/elements/FolderView/BrowseByFolderButton/index.scss +30 -0
  43. package/dist/elements/FolderView/Cell/index.client.d.ts +13 -0
  44. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -0
  45. package/dist/elements/FolderView/Cell/index.client.js +95 -0
  46. package/dist/elements/FolderView/Cell/index.client.js.map +1 -0
  47. package/dist/elements/FolderView/Cell/index.server.d.ts +4 -0
  48. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -0
  49. package/dist/elements/FolderView/Cell/index.server.js +18 -0
  50. package/dist/elements/FolderView/Cell/index.server.js.map +1 -0
  51. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +3 -0
  52. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +1 -0
  53. package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -0
  54. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -0
  55. package/dist/elements/FolderView/ColoredFolderIcon/index.scss +5 -0
  56. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +7 -0
  57. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -0
  58. package/dist/elements/FolderView/CurrentFolderActions/index.js +162 -0
  59. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -0
  60. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +11 -0
  61. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -0
  62. package/dist/elements/FolderView/DragOverlaySelection/index.js +62 -0
  63. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -0
  64. package/dist/elements/FolderView/DragOverlaySelection/index.scss +35 -0
  65. package/dist/elements/FolderView/DraggableTableRow/index.d.ts +18 -0
  66. package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -0
  67. package/dist/elements/FolderView/DraggableTableRow/index.js +63 -0
  68. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -0
  69. package/dist/elements/FolderView/DraggableTableRow/index.scss +135 -0
  70. package/dist/elements/FolderView/DraggableWithClick/index.d.ts +15 -0
  71. package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -0
  72. package/dist/elements/FolderView/DraggableWithClick/index.js +86 -0
  73. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -0
  74. package/dist/elements/FolderView/DraggableWithClick/index.scss +5 -0
  75. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +7 -0
  76. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
  77. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +39 -0
  78. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
  79. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +37 -0
  80. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -0
  81. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +609 -0
  82. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -0
  83. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +30 -0
  84. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
  85. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
  86. package/dist/elements/FolderView/FilterFolderTypePill/index.js +102 -0
  87. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
  88. package/dist/elements/FolderView/FilterFolderTypePill/index.scss +16 -0
  89. package/dist/elements/FolderView/FolderField/index.scss +12 -0
  90. package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
  91. package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
  92. package/dist/elements/FolderView/FolderField/index.server.js +16 -0
  93. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
  94. package/dist/elements/FolderView/FolderFileCard/index.d.ts +30 -0
  95. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -0
  96. package/dist/elements/FolderView/FolderFileCard/index.js +209 -0
  97. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -0
  98. package/dist/elements/FolderView/FolderFileCard/index.scss +247 -0
  99. package/dist/elements/FolderView/FolderFileTable/index.d.ts +8 -0
  100. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -0
  101. package/dist/elements/FolderView/FolderFileTable/index.js +284 -0
  102. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -0
  103. package/dist/elements/FolderView/FolderFileTable/index.scss +11 -0
  104. package/dist/elements/FolderView/FolderTypeField/index.d.ts +4 -0
  105. package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
  106. package/dist/elements/FolderView/FolderTypeField/index.js +123 -0
  107. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
  108. package/dist/elements/FolderView/ItemCardGrid/index.d.ts +16 -0
  109. package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -0
  110. package/dist/elements/FolderView/ItemCardGrid/index.js +34 -0
  111. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -0
  112. package/dist/elements/FolderView/ItemCardGrid/index.scss +16 -0
  113. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +37 -0
  114. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -0
  115. package/dist/elements/FolderView/MoveDocToFolder/index.js +292 -0
  116. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -0
  117. package/dist/elements/{HierarchyButton → FolderView/MoveDocToFolder}/index.scss +1 -7
  118. package/dist/elements/FolderView/SimpleTable/index.d.ts +19 -0
  119. package/dist/elements/FolderView/SimpleTable/index.d.ts.map +1 -0
  120. package/dist/elements/FolderView/SimpleTable/index.js +95 -0
  121. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -0
  122. package/dist/elements/FolderView/SimpleTable/index.scss +59 -0
  123. package/dist/elements/FolderView/SortByPill/index.d.ts +4 -0
  124. package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -0
  125. package/dist/elements/FolderView/SortByPill/index.js +112 -0
  126. package/dist/elements/FolderView/SortByPill/index.js.map +1 -0
  127. package/dist/elements/FolderView/SortByPill/index.scss +16 -0
  128. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +8 -0
  129. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +1 -0
  130. package/dist/elements/FolderView/ToggleViewButtons/index.js +31 -0
  131. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -0
  132. package/dist/elements/FolderView/ToggleViewButtons/index.scss +17 -0
  133. package/dist/elements/Link/index.d.ts +0 -4
  134. package/dist/elements/Link/index.d.ts.map +1 -1
  135. package/dist/elements/Link/index.js +0 -5
  136. package/dist/elements/Link/index.js.map +1 -1
  137. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +15 -0
  138. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -0
  139. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +182 -0
  140. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -0
  141. package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
  142. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  143. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  144. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  145. package/dist/elements/ListHeader/index.js +2 -2
  146. package/dist/elements/ListHeader/index.js.map +1 -1
  147. package/dist/elements/ListSelection/index.scss +1 -2
  148. package/dist/elements/Locked/index.scss +1 -1
  149. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  150. package/dist/elements/RelationshipTable/index.js +17 -12
  151. package/dist/elements/RelationshipTable/index.js.map +1 -1
  152. package/dist/elements/StepNav/index.d.ts.map +1 -1
  153. package/dist/elements/StepNav/index.js +1 -10
  154. package/dist/elements/StepNav/index.js.map +1 -1
  155. package/dist/elements/StepNav/types.d.ts +0 -1
  156. package/dist/elements/StepNav/types.d.ts.map +1 -1
  157. package/dist/elements/StepNav/types.js.map +1 -1
  158. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  159. package/dist/elements/Table/DefaultCell/index.js +0 -20
  160. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  161. package/dist/elements/Tooltip/index.js +1 -1
  162. package/dist/elements/Tooltip/index.js.map +1 -1
  163. package/dist/elements/Tooltip/index.scss +15 -1
  164. package/dist/elements/withMergedProps/index.d.ts +1 -1
  165. package/dist/elements/withMergedProps/index.js +1 -1
  166. package/dist/elements/withMergedProps/index.js.map +1 -1
  167. package/dist/exports/client/index.d.ts +9 -30
  168. package/dist/exports/client/index.d.ts.map +1 -1
  169. package/dist/exports/client/index.js +12 -14
  170. package/dist/exports/client/index.js.map +4 -4
  171. package/dist/exports/rsc/index.d.ts +3 -3
  172. package/dist/exports/rsc/index.d.ts.map +1 -1
  173. package/dist/exports/rsc/index.js +3 -3
  174. package/dist/exports/rsc/index.js.map +1 -1
  175. package/dist/exports/shared/index.js.map +1 -1
  176. package/dist/fields/Join/index.d.ts.map +1 -1
  177. package/dist/fields/Join/index.js +1 -1
  178. package/dist/fields/Join/index.js.map +1 -1
  179. package/dist/icons/Chevron/index.d.ts.map +1 -1
  180. package/dist/icons/Chevron/index.js +1 -5
  181. package/dist/icons/Chevron/index.js.map +1 -1
  182. package/dist/icons/Document/index.d.ts +1 -3
  183. package/dist/icons/Document/index.d.ts.map +1 -1
  184. package/dist/icons/Document/index.js +2 -4
  185. package/dist/icons/Document/index.js.map +1 -1
  186. package/dist/icons/Document/index.scss +0 -4
  187. package/dist/icons/Folder/index.d.ts +2 -4
  188. package/dist/icons/Folder/index.d.ts.map +1 -1
  189. package/dist/icons/Folder/index.js +2 -4
  190. package/dist/icons/Folder/index.js.map +1 -1
  191. package/dist/icons/Folder/index.scss +0 -8
  192. package/dist/icons/Lock/index.scss +1 -1
  193. package/dist/icons/Plus/index.d.ts.map +1 -1
  194. package/dist/icons/Plus/index.js +1 -2
  195. package/dist/icons/Plus/index.js.map +1 -1
  196. package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
  197. package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
  198. package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
  199. package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
  200. package/dist/providers/Folders/index.d.ts +143 -0
  201. package/dist/providers/Folders/index.d.ts.map +1 -0
  202. package/dist/providers/Folders/index.js +641 -0
  203. package/dist/providers/Folders/index.js.map +1 -0
  204. package/dist/providers/Root/index.d.ts.map +1 -1
  205. package/dist/providers/Root/index.js +15 -18
  206. package/dist/providers/Root/index.js.map +1 -1
  207. package/dist/providers/ServerFunctions/index.d.ts +6 -1
  208. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  209. package/dist/providers/ServerFunctions/index.js +18 -0
  210. package/dist/providers/ServerFunctions/index.js.map +1 -1
  211. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +1 -2
  212. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  213. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -34
  214. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  215. package/dist/styles.css +1 -1
  216. package/dist/utilities/getFolderResultsComponentAndData.d.ts +25 -0
  217. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
  218. package/dist/utilities/getFolderResultsComponentAndData.js +135 -0
  219. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
  220. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  221. package/dist/utilities/renderTable.d.ts +1 -3
  222. package/dist/utilities/renderTable.d.ts.map +1 -1
  223. package/dist/utilities/renderTable.js +3 -9
  224. package/dist/utilities/renderTable.js.map +1 -1
  225. package/dist/views/BrowseByFolder/index.d.ts +5 -0
  226. package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
  227. package/dist/views/BrowseByFolder/index.js +342 -0
  228. package/dist/views/BrowseByFolder/index.js.map +1 -0
  229. package/dist/views/BrowseByFolder/index.scss +174 -0
  230. package/dist/views/CollectionFolder/ListSelection/index.d.ts +9 -0
  231. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -0
  232. package/dist/views/CollectionFolder/ListSelection/index.js +180 -0
  233. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -0
  234. package/dist/views/CollectionFolder/index.d.ts +5 -0
  235. package/dist/views/CollectionFolder/index.d.ts.map +1 -0
  236. package/dist/views/CollectionFolder/index.js +325 -0
  237. package/dist/views/CollectionFolder/index.js.map +1 -0
  238. package/dist/views/CollectionFolder/index.scss +162 -0
  239. package/dist/views/Edit/index.d.ts +1 -1
  240. package/dist/views/Edit/index.d.ts.map +1 -1
  241. package/dist/views/Edit/index.js +1 -3
  242. package/dist/views/Edit/index.js.map +1 -1
  243. package/dist/views/List/index.d.ts.map +1 -1
  244. package/dist/views/List/index.js +7 -51
  245. package/dist/views/List/index.js.map +1 -1
  246. package/package.json +5 -5
  247. package/dist/elements/CreateDocumentButton/index.d.ts +0 -26
  248. package/dist/elements/CreateDocumentButton/index.d.ts.map +0 -1
  249. package/dist/elements/CreateDocumentButton/index.js +0 -182
  250. package/dist/elements/CreateDocumentButton/index.js.map +0 -1
  251. package/dist/elements/DelayedSpinner/index.d.ts +0 -23
  252. package/dist/elements/DelayedSpinner/index.d.ts.map +0 -1
  253. package/dist/elements/DelayedSpinner/index.js +0 -61
  254. package/dist/elements/DelayedSpinner/index.js.map +0 -1
  255. package/dist/elements/HierarchyButton/index.d.ts +0 -11
  256. package/dist/elements/HierarchyButton/index.d.ts.map +0 -1
  257. package/dist/elements/HierarchyButton/index.js +0 -126
  258. package/dist/elements/HierarchyButton/index.js.map +0 -1
  259. package/dist/elements/HierarchyButton/index.server.d.ts +0 -10
  260. package/dist/elements/HierarchyButton/index.server.d.ts.map +0 -1
  261. package/dist/elements/HierarchyButton/index.server.js +0 -34
  262. package/dist/elements/HierarchyButton/index.server.js.map +0 -1
  263. package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts +0 -5
  264. package/dist/elements/HierarchyColumnBrowser/Column/index.d.ts.map +0 -1
  265. package/dist/elements/HierarchyColumnBrowser/Column/index.js +0 -166
  266. package/dist/elements/HierarchyColumnBrowser/Column/index.js.map +0 -1
  267. package/dist/elements/HierarchyColumnBrowser/Column/index.scss +0 -63
  268. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts +0 -5
  269. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.d.ts.map +0 -1
  270. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js +0 -161
  271. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.js.map +0 -1
  272. package/dist/elements/HierarchyColumnBrowser/ColumnItem/index.scss +0 -105
  273. package/dist/elements/HierarchyColumnBrowser/index.d.ts +0 -8
  274. package/dist/elements/HierarchyColumnBrowser/index.d.ts.map +0 -1
  275. package/dist/elements/HierarchyColumnBrowser/index.js +0 -470
  276. package/dist/elements/HierarchyColumnBrowser/index.js.map +0 -1
  277. package/dist/elements/HierarchyColumnBrowser/index.scss +0 -20
  278. package/dist/elements/HierarchyColumnBrowser/types.d.ts +0 -103
  279. package/dist/elements/HierarchyColumnBrowser/types.d.ts.map +0 -1
  280. package/dist/elements/HierarchyColumnBrowser/types.js +0 -2
  281. package/dist/elements/HierarchyColumnBrowser/types.js.map +0 -1
  282. package/dist/elements/HierarchyDrawer/Drawer/index.d.ts +0 -20
  283. package/dist/elements/HierarchyDrawer/Drawer/index.d.ts.map +0 -1
  284. package/dist/elements/HierarchyDrawer/Drawer/index.js +0 -289
  285. package/dist/elements/HierarchyDrawer/Drawer/index.js.map +0 -1
  286. package/dist/elements/HierarchyDrawer/Drawer/index.scss +0 -81
  287. package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts +0 -15
  288. package/dist/elements/HierarchyDrawer/fetchAncestorPath.d.ts.map +0 -1
  289. package/dist/elements/HierarchyDrawer/fetchAncestorPath.js +0 -60
  290. package/dist/elements/HierarchyDrawer/fetchAncestorPath.js.map +0 -1
  291. package/dist/elements/HierarchyDrawer/index.d.ts +0 -30
  292. package/dist/elements/HierarchyDrawer/index.d.ts.map +0 -1
  293. package/dist/elements/HierarchyDrawer/index.js +0 -146
  294. package/dist/elements/HierarchyDrawer/index.js.map +0 -1
  295. package/dist/elements/HierarchyDrawer/types.d.ts +0 -65
  296. package/dist/elements/HierarchyDrawer/types.d.ts.map +0 -1
  297. package/dist/elements/HierarchyDrawer/types.js +0 -3
  298. package/dist/elements/HierarchyDrawer/types.js.map +0 -1
  299. package/dist/elements/HierarchyField/SelectedHierarchies.d.ts +0 -13
  300. package/dist/elements/HierarchyField/SelectedHierarchies.d.ts.map +0 -1
  301. package/dist/elements/HierarchyField/SelectedHierarchies.js +0 -194
  302. package/dist/elements/HierarchyField/SelectedHierarchies.js.map +0 -1
  303. package/dist/elements/HierarchyField/SelectedHierarchies.scss +0 -78
  304. package/dist/elements/HierarchyField/index.client.d.ts +0 -8
  305. package/dist/elements/HierarchyField/index.client.d.ts.map +0 -1
  306. package/dist/elements/HierarchyField/index.client.js +0 -198
  307. package/dist/elements/HierarchyField/index.client.js.map +0 -1
  308. package/dist/elements/HierarchyField/index.scss +0 -35
  309. package/dist/elements/HierarchyField/index.server.d.ts +0 -3
  310. package/dist/elements/HierarchyField/index.server.d.ts.map +0 -1
  311. package/dist/elements/HierarchyField/index.server.js +0 -30
  312. package/dist/elements/HierarchyField/index.server.js.map +0 -1
  313. package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts +0 -18
  314. package/dist/elements/HierarchySearch/HierarchySearchInput.d.ts.map +0 -1
  315. package/dist/elements/HierarchySearch/HierarchySearchInput.js +0 -115
  316. package/dist/elements/HierarchySearch/HierarchySearchInput.js.map +0 -1
  317. package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts +0 -13
  318. package/dist/elements/HierarchySearch/HierarchySearchResultItem.d.ts.map +0 -1
  319. package/dist/elements/HierarchySearch/HierarchySearchResultItem.js +0 -88
  320. package/dist/elements/HierarchySearch/HierarchySearchResultItem.js.map +0 -1
  321. package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts +0 -17
  322. package/dist/elements/HierarchySearch/HierarchySearchResults.d.ts.map +0 -1
  323. package/dist/elements/HierarchySearch/HierarchySearchResults.js +0 -85
  324. package/dist/elements/HierarchySearch/HierarchySearchResults.js.map +0 -1
  325. package/dist/elements/HierarchySearch/index.d.ts +0 -10
  326. package/dist/elements/HierarchySearch/index.d.ts.map +0 -1
  327. package/dist/elements/HierarchySearch/index.js +0 -144
  328. package/dist/elements/HierarchySearch/index.js.map +0 -1
  329. package/dist/elements/HierarchySearch/index.scss +0 -212
  330. package/dist/elements/HierarchySearch/types.d.ts +0 -21
  331. package/dist/elements/HierarchySearch/types.d.ts.map +0 -1
  332. package/dist/elements/HierarchySearch/types.js +0 -2
  333. package/dist/elements/HierarchySearch/types.js.map +0 -1
  334. package/dist/elements/HierarchySearch/useHierarchySearch.d.ts +0 -20
  335. package/dist/elements/HierarchySearch/useHierarchySearch.d.ts.map +0 -1
  336. package/dist/elements/HierarchySearch/useHierarchySearch.js +0 -122
  337. package/dist/elements/HierarchySearch/useHierarchySearch.js.map +0 -1
  338. package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts +0 -20
  339. package/dist/elements/HierarchyTree/HierarchySidebarTab.d.ts.map +0 -1
  340. package/dist/elements/HierarchyTree/HierarchySidebarTab.js +0 -159
  341. package/dist/elements/HierarchyTree/HierarchySidebarTab.js.map +0 -1
  342. package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts +0 -7
  343. package/dist/elements/HierarchyTree/HierarchySidebarTab.server.d.ts.map +0 -1
  344. package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js +0 -167
  345. package/dist/elements/HierarchyTree/HierarchySidebarTab.server.js.map +0 -1
  346. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts +0 -8
  347. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.d.ts.map +0 -1
  348. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js +0 -36
  349. package/dist/elements/HierarchyTree/LoadMore/LoadMoreButton.js.map +0 -1
  350. package/dist/elements/HierarchyTree/LoadMore/index.d.ts +0 -12
  351. package/dist/elements/HierarchyTree/LoadMore/index.d.ts.map +0 -1
  352. package/dist/elements/HierarchyTree/LoadMore/index.js +0 -29
  353. package/dist/elements/HierarchyTree/LoadMore/index.js.map +0 -1
  354. package/dist/elements/HierarchyTree/LoadMore/index.scss +0 -26
  355. package/dist/elements/HierarchyTree/TreeConnector.d.ts +0 -7
  356. package/dist/elements/HierarchyTree/TreeConnector.d.ts.map +0 -1
  357. package/dist/elements/HierarchyTree/TreeConnector.js +0 -23
  358. package/dist/elements/HierarchyTree/TreeConnector.js.map +0 -1
  359. package/dist/elements/HierarchyTree/TreeFocusContext.d.ts +0 -28
  360. package/dist/elements/HierarchyTree/TreeFocusContext.d.ts.map +0 -1
  361. package/dist/elements/HierarchyTree/TreeFocusContext.js +0 -140
  362. package/dist/elements/HierarchyTree/TreeFocusContext.js.map +0 -1
  363. package/dist/elements/HierarchyTree/TreeNode/index.d.ts +0 -5
  364. package/dist/elements/HierarchyTree/TreeNode/index.d.ts.map +0 -1
  365. package/dist/elements/HierarchyTree/TreeNode/index.js +0 -201
  366. package/dist/elements/HierarchyTree/TreeNode/index.js.map +0 -1
  367. package/dist/elements/HierarchyTree/TreeNode/index.scss +0 -99
  368. package/dist/elements/HierarchyTree/index.d.ts +0 -4
  369. package/dist/elements/HierarchyTree/index.d.ts.map +0 -1
  370. package/dist/elements/HierarchyTree/index.js +0 -68
  371. package/dist/elements/HierarchyTree/index.js.map +0 -1
  372. package/dist/elements/HierarchyTree/index.scss +0 -42
  373. package/dist/elements/HierarchyTree/types.d.ts +0 -57
  374. package/dist/elements/HierarchyTree/types.d.ts.map +0 -1
  375. package/dist/elements/HierarchyTree/types.js +0 -2
  376. package/dist/elements/HierarchyTree/types.js.map +0 -1
  377. package/dist/elements/HierarchyTree/useChildren.d.ts +0 -26
  378. package/dist/elements/HierarchyTree/useChildren.d.ts.map +0 -1
  379. package/dist/elements/HierarchyTree/useChildren.js +0 -150
  380. package/dist/elements/HierarchyTree/useChildren.js.map +0 -1
  381. package/dist/elements/HierarchyTree/useTreeState.d.ts +0 -9
  382. package/dist/elements/HierarchyTree/useTreeState.d.ts.map +0 -1
  383. package/dist/elements/HierarchyTree/useTreeState.js +0 -50
  384. package/dist/elements/HierarchyTree/useTreeState.js.map +0 -1
  385. package/dist/elements/HydrateHierarchyProvider/index.d.ts +0 -4
  386. package/dist/elements/HydrateHierarchyProvider/index.d.ts.map +0 -1
  387. package/dist/elements/HydrateHierarchyProvider/index.js +0 -70
  388. package/dist/elements/HydrateHierarchyProvider/index.js.map +0 -1
  389. package/dist/elements/LoadMoreRow/index.d.ts +0 -15
  390. package/dist/elements/LoadMoreRow/index.d.ts.map +0 -1
  391. package/dist/elements/LoadMoreRow/index.js +0 -75
  392. package/dist/elements/LoadMoreRow/index.js.map +0 -1
  393. package/dist/elements/LoadMoreRow/index.scss +0 -42
  394. package/dist/elements/MoveMany/index.d.ts +0 -22
  395. package/dist/elements/MoveMany/index.d.ts.map +0 -1
  396. package/dist/elements/MoveMany/index.js +0 -278
  397. package/dist/elements/MoveMany/index.js.map +0 -1
  398. package/dist/elements/MoveMany/index.scss +0 -7
  399. package/dist/elements/Spinner/index.d.ts +0 -16
  400. package/dist/elements/Spinner/index.d.ts.map +0 -1
  401. package/dist/elements/Spinner/index.js +0 -49
  402. package/dist/elements/Spinner/index.js.map +0 -1
  403. package/dist/elements/Spinner/index.scss +0 -39
  404. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +0 -6
  405. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +0 -1
  406. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +0 -187
  407. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +0 -1
  408. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +0 -29
  409. package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
  410. package/dist/elements/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
  411. package/dist/elements/Tree/LoadMore/LoadMoreButton.js +0 -36
  412. package/dist/elements/Tree/LoadMore/LoadMoreButton.js.map +0 -1
  413. package/dist/elements/Tree/LoadMore/index.d.ts +0 -12
  414. package/dist/elements/Tree/LoadMore/index.d.ts.map +0 -1
  415. package/dist/elements/Tree/LoadMore/index.js +0 -29
  416. package/dist/elements/Tree/LoadMore/index.js.map +0 -1
  417. package/dist/elements/Tree/LoadMore/index.scss +0 -26
  418. package/dist/elements/Tree/TreeConnector.d.ts +0 -7
  419. package/dist/elements/Tree/TreeConnector.d.ts.map +0 -1
  420. package/dist/elements/Tree/TreeConnector.js +0 -23
  421. package/dist/elements/Tree/TreeConnector.js.map +0 -1
  422. package/dist/elements/Tree/TreeFocusContext.d.ts +0 -28
  423. package/dist/elements/Tree/TreeFocusContext.d.ts.map +0 -1
  424. package/dist/elements/Tree/TreeFocusContext.js +0 -140
  425. package/dist/elements/Tree/TreeFocusContext.js.map +0 -1
  426. package/dist/elements/Tree/TreeNode/index.d.ts +0 -5
  427. package/dist/elements/Tree/TreeNode/index.d.ts.map +0 -1
  428. package/dist/elements/Tree/TreeNode/index.js +0 -218
  429. package/dist/elements/Tree/TreeNode/index.js.map +0 -1
  430. package/dist/elements/Tree/TreeNode/index.scss +0 -110
  431. package/dist/elements/Tree/index.d.ts +0 -5
  432. package/dist/elements/Tree/index.d.ts.map +0 -1
  433. package/dist/elements/Tree/index.js +0 -258
  434. package/dist/elements/Tree/index.js.map +0 -1
  435. package/dist/elements/Tree/index.scss +0 -63
  436. package/dist/elements/Tree/types.d.ts +0 -69
  437. package/dist/elements/Tree/types.d.ts.map +0 -1
  438. package/dist/elements/Tree/types.js +0 -2
  439. package/dist/elements/Tree/types.js.map +0 -1
  440. package/dist/elements/Tree/useChildren.d.ts +0 -25
  441. package/dist/elements/Tree/useChildren.d.ts.map +0 -1
  442. package/dist/elements/Tree/useChildren.js +0 -213
  443. package/dist/elements/Tree/useChildren.js.map +0 -1
  444. package/dist/fields/Null/index.d.ts +0 -11
  445. package/dist/fields/Null/index.d.ts.map +0 -1
  446. package/dist/fields/Null/index.js +0 -13
  447. package/dist/fields/Null/index.js.map +0 -1
  448. package/dist/icons/Filter/index.d.ts +0 -4
  449. package/dist/icons/Filter/index.d.ts.map +0 -1
  450. package/dist/icons/Filter/index.js +0 -15
  451. package/dist/icons/Filter/index.js.map +0 -1
  452. package/dist/icons/Filter/index.scss +0 -13
  453. package/dist/icons/Tag/index.d.ts +0 -8
  454. package/dist/icons/Tag/index.d.ts.map +0 -1
  455. package/dist/icons/Tag/index.js +0 -22
  456. package/dist/icons/Tag/index.js.map +0 -1
  457. package/dist/icons/Tag/index.scss +0 -14
  458. package/dist/providers/DocumentSelection/index.d.ts +0 -8
  459. package/dist/providers/DocumentSelection/index.d.ts.map +0 -1
  460. package/dist/providers/DocumentSelection/index.js +0 -239
  461. package/dist/providers/DocumentSelection/index.js.map +0 -1
  462. package/dist/providers/DocumentSelection/types.d.ts +0 -122
  463. package/dist/providers/DocumentSelection/types.d.ts.map +0 -1
  464. package/dist/providers/DocumentSelection/types.js +0 -5
  465. package/dist/providers/DocumentSelection/types.js.map +0 -1
  466. package/dist/providers/Hierarchy/index.d.ts +0 -5
  467. package/dist/providers/Hierarchy/index.d.ts.map +0 -1
  468. package/dist/providers/Hierarchy/index.js +0 -346
  469. package/dist/providers/Hierarchy/index.js.map +0 -1
  470. package/dist/providers/Hierarchy/types.d.ts +0 -105
  471. package/dist/providers/Hierarchy/types.d.ts.map +0 -1
  472. package/dist/providers/Hierarchy/types.js +0 -2
  473. package/dist/providers/Hierarchy/types.js.map +0 -1
  474. package/dist/utilities/isSuperset.d.ts +0 -6
  475. package/dist/utilities/isSuperset.d.ts.map +0 -1
  476. package/dist/utilities/isSuperset.js +0 -10
  477. package/dist/utilities/isSuperset.js.map +0 -1
  478. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +0 -10
  479. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +0 -1
  480. package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -135
  481. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +0 -1
  482. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +0 -21
  483. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +0 -1
  484. package/dist/views/HierarchyList/HierarchyListHeader/index.js +0 -67
  485. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +0 -1
  486. package/dist/views/HierarchyList/HierarchyListHeader/index.scss +0 -9
  487. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +0 -4
  488. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +0 -1
  489. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +0 -104
  490. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +0 -1
  491. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +0 -4
  492. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +0 -1
  493. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +0 -53
  494. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +0 -1
  495. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +0 -4
  496. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +0 -1
  497. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +0 -128
  498. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +0 -1
  499. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +0 -99
  500. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +0 -1
  501. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +0 -118
  502. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +0 -1
  503. package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +0 -214
  504. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +0 -23
  505. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
  506. package/dist/views/HierarchyList/HierarchyTable/index.js +0 -387
  507. package/dist/views/HierarchyList/HierarchyTable/index.js.map +0 -1
  508. package/dist/views/HierarchyList/HierarchyTable/index.scss +0 -148
  509. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -20
  510. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +0 -1
  511. package/dist/views/HierarchyList/HierarchyTable/types.js +0 -2
  512. package/dist/views/HierarchyList/HierarchyTable/types.js.map +0 -1
  513. package/dist/views/HierarchyList/TypeFilter/index.d.ts +0 -15
  514. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +0 -1
  515. package/dist/views/HierarchyList/TypeFilter/index.js +0 -37
  516. package/dist/views/HierarchyList/TypeFilter/index.js.map +0 -1
  517. package/dist/views/HierarchyList/TypeFilter/index.scss +0 -32
  518. package/dist/views/HierarchyList/index.d.ts +0 -5
  519. package/dist/views/HierarchyList/index.d.ts.map +0 -1
  520. package/dist/views/HierarchyList/index.js +0 -303
  521. package/dist/views/HierarchyList/index.js.map +0 -1
  522. package/dist/views/HierarchyList/index.scss +0 -72
@@ -1,470 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { getTranslation } from '@payloadcms/translations';
5
- import { DEFAULT_HIERARCHY_TREE_LIMIT, formatAdminURL } from 'payload/shared';
6
- import * as qs from 'qs-esm';
7
- import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
8
- import { useEffectEvent } from '../../hooks/useEffectEvent.js';
9
- import { useAuth } from '../../providers/Auth/index.js';
10
- import { useConfig } from '../../providers/Config/index.js';
11
- import { useTranslation } from '../../providers/Translation/index.js';
12
- import { isSuperset } from '../../utilities/isSuperset.js';
13
- import { Spinner } from '../Spinner/index.js';
14
- import { Column } from './Column/index.js';
15
- import './index.scss';
16
- const baseClass = 'hierarchy-column-browser';
17
- export const HierarchyColumnBrowser = function HierarchyColumnBrowser({
18
- ancestorsWithSelections,
19
- disabledIds,
20
- filterByCollection,
21
- hierarchyCollectionSlug,
22
- initialExpandedPath,
23
- isLoadingPath,
24
- onCreateNew,
25
- onSelect,
26
- parentFieldName,
27
- ref,
28
- selectedIds,
29
- useAsTitle = 'id'
30
- }) {
31
- const {
32
- i18n
33
- } = useTranslation();
34
- const {
35
- permissions
36
- } = useAuth();
37
- const {
38
- config: {
39
- routes: {
40
- api
41
- },
42
- serverURL
43
- },
44
- getEntityConfig
45
- } = useConfig();
46
- const collectionConfig = getEntityConfig({
47
- collectionSlug: hierarchyCollectionSlug
48
- });
49
- const hierarchyConfig = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
50
- const treeLimit = hierarchyConfig?.admin?.treeLimit ?? DEFAULT_HIERARCHY_TREE_LIMIT;
51
- const collectionLabel = collectionConfig ? getTranslation(collectionConfig.labels?.singular || hierarchyCollectionSlug, i18n) : hierarchyCollectionSlug;
52
- const canCreate = Boolean(permissions?.collections?.[hierarchyCollectionSlug]?.create);
53
- const [columns, setColumns] = useState([]);
54
- const [expandedPath, setExpandedPath] = useState([]);
55
- const containerRef = useRef(null);
56
- const lastColumnRef = useRef(null);
57
- const hasLoadedRef = useRef(false);
58
- const fetchItems = useCallback(async ({
59
- page,
60
- parentId
61
- }) => {
62
- const parentWhere = parentId === null ? {
63
- [parentFieldName]: {
64
- exists: false
65
- }
66
- } : {
67
- [parentFieldName]: {
68
- equals: parentId
69
- }
70
- };
71
- // Build the final where clause, adding collectionSpecific filtering if configured
72
- let where = parentWhere;
73
- // Filter by collection type if collectionSpecific is configured and filterByCollection is defined
74
- // - undefined: no filtering, show all folders
75
- // - [] empty: show all folders (no constraints)
76
- // - ['posts', ...]: show folders that allow ANY of these OR unrestricted
77
- // Note: Ideally we'd enforce ALL (superset) but hasMany enum fields in PG
78
- // do not support "contains all" queries easily
79
- if (hierarchyConfig?.collectionSpecific && filterByCollection !== undefined) {
80
- const typeFieldName = hierarchyConfig.collectionSpecific.fieldName;
81
- if (filterByCollection.length > 0) {
82
- // Get all possible type field values from relatedCollections
83
- // This is used to detect "unrestricted" folders (empty allowedTypes array)
84
- const allPossibleTypes = Object.keys(hierarchyConfig.relatedCollections || {});
85
- where = {
86
- and: [parentWhere, {
87
- or: [
88
- // items that allow ANY of the selected collections
89
- {
90
- [typeFieldName]: {
91
- in: filterByCollection
92
- }
93
- },
94
- // OR items that are unrestricted (no type field exists)
95
- {
96
- [typeFieldName]: {
97
- exists: false
98
- }
99
- },
100
- // OR items with empty allowedTypes array (unrestricted)
101
- // Using not_in with all possible values matches empty arrays in both MongoDB and Postgres
102
- ...(allPossibleTypes.length > 0 ? [{
103
- [typeFieldName]: {
104
- not_in: allPossibleTypes
105
- }
106
- }] : [])]
107
- }]
108
- };
109
- } else {
110
- // Empty array: show all items of this parent
111
- where = parentWhere;
112
- }
113
- }
114
- const queryString = qs.stringify({
115
- limit: treeLimit,
116
- page,
117
- sort: useAsTitle,
118
- where
119
- }, {
120
- addQueryPrefix: true
121
- });
122
- const url = formatAdminURL({
123
- apiRoute: api,
124
- path: `/${hierarchyCollectionSlug}${queryString}`,
125
- serverURL
126
- });
127
- const response = await fetch(url, {
128
- credentials: 'include'
129
- });
130
- if (!response.ok) {
131
- throw new Error('Failed to fetch items');
132
- }
133
- const data = await response.json();
134
- const typeFieldName_0 = hierarchyConfig?.collectionSpecific ? hierarchyConfig.collectionSpecific.fieldName : undefined;
135
- const allItems = (data.docs || []).map(doc => ({
136
- id: doc.id,
137
- allowedCollections: typeFieldName_0 ? doc[typeFieldName_0] : undefined,
138
- hasChildren: true,
139
- title: String(doc[useAsTitle] || doc.id)
140
- }));
141
- // Client-side filter: only show items that are a superset of required collections
142
- // Server query uses ANY (due to PG limitations), but we want ALL (superset)
143
- const items = filterByCollection && filterByCollection.length > 0 ? allItems.filter(item => isSuperset(item.allowedCollections, filterByCollection)) : allItems;
144
- return {
145
- hasNextPage: data.hasNextPage || false,
146
- items,
147
- totalDocs: data.totalDocs || 0
148
- };
149
- }, [api, filterByCollection, hierarchyConfig, parentFieldName, serverURL, hierarchyCollectionSlug, treeLimit, useAsTitle]);
150
- const refreshColumn = useCallback(async parentId_0 => {
151
- const columnIndex = columns.findIndex(col => col.parentId === parentId_0);
152
- if (columnIndex === -1) {
153
- return;
154
- }
155
- setColumns(prev => {
156
- const updated = [...prev];
157
- updated[columnIndex] = {
158
- ...updated[columnIndex],
159
- isLoading: true
160
- };
161
- return updated;
162
- });
163
- try {
164
- const {
165
- hasNextPage,
166
- items: items_0,
167
- totalDocs
168
- } = await fetchItems({
169
- page: 1,
170
- parentId: parentId_0
171
- });
172
- setColumns(prev_1 => {
173
- const updated_1 = [...prev_1];
174
- if (updated_1[columnIndex]) {
175
- updated_1[columnIndex] = {
176
- ...updated_1[columnIndex],
177
- hasNextPage,
178
- isLoading: false,
179
- items: items_0,
180
- page: 1,
181
- totalDocs
182
- };
183
- }
184
- return updated_1;
185
- });
186
- } catch {
187
- setColumns(prev_0 => {
188
- const updated_0 = [...prev_0];
189
- if (updated_0[columnIndex]) {
190
- updated_0[columnIndex] = {
191
- ...updated_0[columnIndex],
192
- isLoading: false
193
- };
194
- }
195
- return updated_0;
196
- });
197
- }
198
- }, [columns, fetchItems]);
199
- useImperativeHandle(ref, () => ({
200
- refreshColumn
201
- }), [refreshColumn]);
202
- const loadColumns = useEffectEvent(async path => {
203
- // Build list of parentIds to fetch: [null, ...path]
204
- const parentIds = [null];
205
- if (path?.length) {
206
- parentIds.push(...path);
207
- }
208
- // Set initial loading state for all columns
209
- setColumns(parentIds.map(parentId_1 => ({
210
- hasNextPage: false,
211
- isLoading: true,
212
- items: [],
213
- page: 1,
214
- parentId: parentId_1,
215
- totalDocs: 0
216
- })));
217
- // Set expanded path to match (excluding null/root)
218
- if (path?.length) {
219
- setExpandedPath(path);
220
- }
221
- // Fetch all columns in parallel
222
- const results = await Promise.all(parentIds.map(async (parentId_2, index) => {
223
- try {
224
- const {
225
- hasNextPage: hasNextPage_0,
226
- items: items_1,
227
- totalDocs: totalDocs_0
228
- } = await fetchItems({
229
- page: 1,
230
- parentId: parentId_2
231
- });
232
- let parentTitle;
233
- if (index > 0 && parentId_2 !== null) {
234
- // Will be filled in after all fetches complete
235
- }
236
- return {
237
- hasNextPage: hasNextPage_0,
238
- isLoading: false,
239
- items: items_1,
240
- page: 1,
241
- parentId: parentId_2,
242
- parentTitle,
243
- totalDocs: totalDocs_0
244
- };
245
- } catch {
246
- return {
247
- hasNextPage: false,
248
- isLoading: false,
249
- items: [],
250
- page: 1,
251
- parentId: parentId_2,
252
- parentTitle: undefined,
253
- totalDocs: 0
254
- };
255
- }
256
- }));
257
- // Fill in parent titles from previous columns
258
- const columnsWithTitles = results.map((col_0, index_0) => {
259
- if (index_0 === 0 || col_0.parentId === null) {
260
- return col_0;
261
- }
262
- const prevColumn = results[index_0 - 1];
263
- const parentItem = prevColumn?.items.find(item_0 => item_0.id === col_0.parentId);
264
- return {
265
- ...col_0,
266
- parentTitle: parentItem?.title || String(col_0.parentId)
267
- };
268
- });
269
- setColumns(columnsWithTitles);
270
- });
271
- // Load columns on mount - wait for path loading to complete
272
- useEffect(() => {
273
- if (isLoadingPath || hasLoadedRef.current) {
274
- return;
275
- }
276
- hasLoadedRef.current = true;
277
- void loadColumns(initialExpandedPath);
278
- }, [initialExpandedPath, isLoadingPath]);
279
- // Auto-scroll to the last column when columns change
280
- useEffect(() => {
281
- if (lastColumnRef.current && columns.length > 1) {
282
- lastColumnRef.current.scrollIntoView({
283
- behavior: 'smooth',
284
- inline: 'start'
285
- });
286
- }
287
- }, [columns.length]);
288
- const handleExpand = useCallback(async ({
289
- columnIndex: columnIndex_0,
290
- itemId
291
- }) => {
292
- const column = columns[columnIndex_0];
293
- if (!column) {
294
- return;
295
- }
296
- const item_1 = column.items.find(i => i.id === itemId);
297
- if (!item_1) {
298
- return;
299
- }
300
- // Update expanded path - keep path up to this column, add new item
301
- const newExpandedPath = [...expandedPath.slice(0, columnIndex_0), itemId];
302
- setExpandedPath(newExpandedPath);
303
- // Remove columns to the right and add new loading column
304
- const newColumns = columns.slice(0, columnIndex_0 + 1);
305
- newColumns.push({
306
- hasNextPage: false,
307
- isLoading: true,
308
- items: [],
309
- page: 1,
310
- parentId: itemId,
311
- parentTitle: item_1.title,
312
- totalDocs: 0
313
- });
314
- setColumns(newColumns);
315
- // Fetch children
316
- try {
317
- const {
318
- hasNextPage: hasNextPage_1,
319
- items: items_2,
320
- totalDocs: totalDocs_1
321
- } = await fetchItems({
322
- page: 1,
323
- parentId: itemId
324
- });
325
- setColumns(prev_3 => {
326
- const updated_3 = [...prev_3];
327
- const targetIndex_0 = columnIndex_0 + 1;
328
- if (updated_3[targetIndex_0]?.parentId === itemId) {
329
- updated_3[targetIndex_0] = {
330
- hasNextPage: hasNextPage_1,
331
- isLoading: false,
332
- items: items_2,
333
- page: 1,
334
- parentId: itemId,
335
- parentTitle: item_1.title,
336
- totalDocs: totalDocs_1
337
- };
338
- }
339
- return updated_3;
340
- });
341
- } catch {
342
- setColumns(prev_2 => {
343
- const updated_2 = [...prev_2];
344
- const targetIndex = columnIndex_0 + 1;
345
- if (updated_2[targetIndex]?.parentId === itemId) {
346
- updated_2[targetIndex] = {
347
- hasNextPage: false,
348
- isLoading: false,
349
- items: [],
350
- page: 1,
351
- parentId: itemId,
352
- parentTitle: item_1.title,
353
- totalDocs: 0
354
- };
355
- }
356
- return updated_2;
357
- });
358
- }
359
- }, [columns, expandedPath, fetchItems]);
360
- const handleLoadMore = useCallback(async ({
361
- columnIndex: columnIndex_1
362
- }) => {
363
- const column_0 = columns[columnIndex_1];
364
- if (!column_0 || column_0.isLoading || !column_0.hasNextPage) {
365
- return;
366
- }
367
- const nextPage = column_0.page + 1;
368
- // Set loading state
369
- setColumns(prev_4 => {
370
- const updated_4 = [...prev_4];
371
- updated_4[columnIndex_1] = {
372
- ...updated_4[columnIndex_1],
373
- isLoading: true
374
- };
375
- return updated_4;
376
- });
377
- try {
378
- const {
379
- hasNextPage: hasNextPage_2,
380
- items: newItems
381
- } = await fetchItems({
382
- page: nextPage,
383
- parentId: column_0.parentId
384
- });
385
- setColumns(prev_6 => {
386
- const updated_6 = [...prev_6];
387
- if (updated_6[columnIndex_1]) {
388
- updated_6[columnIndex_1] = {
389
- ...updated_6[columnIndex_1],
390
- hasNextPage: hasNextPage_2,
391
- isLoading: false,
392
- items: [...updated_6[columnIndex_1].items, ...newItems],
393
- page: nextPage
394
- };
395
- }
396
- return updated_6;
397
- });
398
- } catch {
399
- setColumns(prev_5 => {
400
- const updated_5 = [...prev_5];
401
- if (updated_5[columnIndex_1]) {
402
- updated_5[columnIndex_1] = {
403
- ...updated_5[columnIndex_1],
404
- isLoading: false
405
- };
406
- }
407
- return updated_5;
408
- });
409
- }
410
- }, [columns, fetchItems]);
411
- // Build path for each column based on parent info
412
- const getPathToColumn = columnIndex_2 => {
413
- const path_0 = [];
414
- for (let i_0 = 1; i_0 <= columnIndex_2; i_0++) {
415
- const col_1 = columns[i_0];
416
- if (col_1?.parentId !== null && col_1?.parentId !== undefined) {
417
- path_0.push({
418
- id: col_1.parentId,
419
- title: col_1.parentTitle || String(col_1.parentId)
420
- });
421
- }
422
- }
423
- return path_0;
424
- };
425
- return /*#__PURE__*/_jsxs("div", {
426
- className: baseClass,
427
- ref: containerRef,
428
- children: [columns.map((column_1, index_1) => {
429
- const isLastColumn = index_1 === columns.length - 1 && !isLoadingPath;
430
- const expandedId = expandedPath[index_1] ?? null;
431
- const pathToColumn = getPathToColumn(index_1);
432
- return /*#__PURE__*/_jsx("div", {
433
- className: `${baseClass}__column-wrapper`,
434
- ref: isLastColumn ? lastColumnRef : undefined,
435
- children: /*#__PURE__*/_jsx(Column, {
436
- ancestorsWithSelections: ancestorsWithSelections,
437
- canCreate: canCreate && Boolean(onCreateNew),
438
- collectionLabel: collectionLabel,
439
- disabled: isLoadingPath,
440
- disabledIds: disabledIds,
441
- expandedId: expandedId,
442
- filterByCollection: filterByCollection,
443
- hasNextPage: column_1.hasNextPage,
444
- isLoading: column_1.isLoading,
445
- items: column_1.items,
446
- onCreateNew: onCreateNew || (() => {}),
447
- onExpand: ({
448
- id
449
- }) => handleExpand({
450
- columnIndex: index_1,
451
- itemId: id
452
- }),
453
- onLoadMore: () => handleLoadMore({
454
- columnIndex: index_1
455
- }),
456
- onSelect: onSelect,
457
- parentId: column_1.parentId,
458
- parentTitle: column_1.parentTitle,
459
- pathToColumn: pathToColumn,
460
- selectedIds: selectedIds,
461
- totalDocs: column_1.totalDocs
462
- })
463
- }, `${column_1.parentId ?? 'root'}-${index_1}`);
464
- }), isLoadingPath && /*#__PURE__*/_jsx("div", {
465
- className: `${baseClass}__column-wrapper ${baseClass}__column-wrapper--loading`,
466
- children: /*#__PURE__*/_jsx(Spinner, {})
467
- })]
468
- });
469
- };
470
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","DEFAULT_HIERARCHY_TREE_LIMIT","formatAdminURL","qs","React","useCallback","useEffect","useImperativeHandle","useRef","useState","useEffectEvent","useAuth","useConfig","useTranslation","isSuperset","Spinner","Column","baseClass","HierarchyColumnBrowser","ancestorsWithSelections","disabledIds","filterByCollection","hierarchyCollectionSlug","initialExpandedPath","isLoadingPath","onCreateNew","onSelect","parentFieldName","ref","selectedIds","useAsTitle","i18n","permissions","config","routes","api","serverURL","getEntityConfig","collectionConfig","collectionSlug","hierarchyConfig","hierarchy","undefined","treeLimit","admin","collectionLabel","labels","singular","canCreate","Boolean","collections","create","columns","setColumns","expandedPath","setExpandedPath","containerRef","lastColumnRef","hasLoadedRef","fetchItems","page","parentId","parentWhere","exists","equals","where","collectionSpecific","typeFieldName","fieldName","length","allPossibleTypes","Object","keys","relatedCollections","and","or","in","not_in","queryString","stringify","limit","sort","addQueryPrefix","url","apiRoute","path","response","fetch","credentials","ok","Error","data","json","allItems","docs","map","doc","id","allowedCollections","hasChildren","title","String","items","filter","item","hasNextPage","totalDocs","refreshColumn","columnIndex","findIndex","col","prev","updated","isLoading","loadColumns","parentIds","push","results","Promise","all","index","parentTitle","columnsWithTitles","prevColumn","parentItem","find","current","scrollIntoView","behavior","inline","handleExpand","itemId","column","i","newExpandedPath","slice","newColumns","targetIndex","handleLoadMore","nextPage","newItems","getPathToColumn","_jsxs","className","isLastColumn","expandedId","pathToColumn","_jsx","disabled","onExpand","onLoadMore"],"sources":["../../../src/elements/HierarchyColumnBrowser/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { DEFAULT_HIERARCHY_TREE_LIMIT, formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport type {\n ColumnItemData,\n ColumnState,\n HierarchyColumnBrowserProps,\n HierarchyColumnBrowserRef,\n} from './types.js'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { isSuperset } from '../../utilities/isSuperset.js'\nimport { Spinner } from '../Spinner/index.js'\nimport { Column } from './Column/index.js'\nimport './index.scss'\n\nconst baseClass = 'hierarchy-column-browser'\n\nexport const HierarchyColumnBrowser = function HierarchyColumnBrowser({\n ancestorsWithSelections,\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug,\n initialExpandedPath,\n isLoadingPath,\n onCreateNew,\n onSelect,\n parentFieldName,\n ref,\n selectedIds,\n useAsTitle = 'id',\n}: { ref?: React.RefObject<HierarchyColumnBrowserRef | null> } & HierarchyColumnBrowserProps) {\n const { i18n } = useTranslation()\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const treeLimit = hierarchyConfig?.admin?.treeLimit ?? DEFAULT_HIERARCHY_TREE_LIMIT\n\n const collectionLabel = collectionConfig\n ? getTranslation(collectionConfig.labels?.singular || hierarchyCollectionSlug, i18n)\n : hierarchyCollectionSlug\n const canCreate = Boolean(permissions?.collections?.[hierarchyCollectionSlug]?.create)\n\n const [columns, setColumns] = useState<ColumnState[]>([])\n const [expandedPath, setExpandedPath] = useState<(number | string)[]>([])\n const containerRef = useRef<HTMLDivElement>(null)\n const lastColumnRef = useRef<HTMLDivElement>(null)\n const hasLoadedRef = useRef(false)\n\n const fetchItems = useCallback(\n async ({\n page,\n parentId,\n }: {\n page: number\n parentId: null | number | string\n }): Promise<{\n hasNextPage: boolean\n items: ColumnItemData[]\n totalDocs: number\n }> => {\n const parentWhere =\n parentId === null\n ? { [parentFieldName]: { exists: false } }\n : { [parentFieldName]: { equals: parentId } }\n\n // Build the final where clause, adding collectionSpecific filtering if configured\n let where: Record<string, unknown> = parentWhere\n\n // Filter by collection type if collectionSpecific is configured and filterByCollection is defined\n // - undefined: no filtering, show all folders\n // - [] empty: show all folders (no constraints)\n // - ['posts', ...]: show folders that allow ANY of these OR unrestricted\n // Note: Ideally we'd enforce ALL (superset) but hasMany enum fields in PG\n // do not support \"contains all\" queries easily\n if (hierarchyConfig?.collectionSpecific && filterByCollection !== undefined) {\n const typeFieldName = hierarchyConfig.collectionSpecific.fieldName\n\n if (filterByCollection.length > 0) {\n // Get all possible type field values from relatedCollections\n // This is used to detect \"unrestricted\" folders (empty allowedTypes array)\n const allPossibleTypes = Object.keys(hierarchyConfig.relatedCollections || {})\n\n where = {\n and: [\n parentWhere,\n {\n or: [\n // items that allow ANY of the selected collections\n { [typeFieldName]: { in: filterByCollection } },\n // OR items that are unrestricted (no type field exists)\n { [typeFieldName]: { exists: false } },\n // OR items with empty allowedTypes array (unrestricted)\n // Using not_in with all possible values matches empty arrays in both MongoDB and Postgres\n ...(allPossibleTypes.length > 0\n ? [{ [typeFieldName]: { not_in: allPossibleTypes } }]\n : []),\n ],\n },\n ],\n }\n } else {\n // Empty array: show all items of this parent\n where = parentWhere\n }\n }\n\n const queryString = qs.stringify(\n { limit: treeLimit, page, sort: useAsTitle, where },\n { addQueryPrefix: true },\n )\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${hierarchyCollectionSlug}${queryString}`,\n serverURL,\n })\n\n const response = await fetch(url, {\n credentials: 'include',\n })\n\n if (!response.ok) {\n throw new Error('Failed to fetch items')\n }\n\n const data = await response.json()\n\n const typeFieldName = hierarchyConfig?.collectionSpecific\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n\n const allItems: ColumnItemData[] = (data.docs || []).map(\n (doc: { id: number | string } & Record<string, unknown>) => ({\n id: doc.id,\n allowedCollections: typeFieldName\n ? (doc[typeFieldName] as string[] | undefined)\n : undefined,\n hasChildren: true, // Always allow expansion - empty children handled gracefully\n title: String(doc[useAsTitle] || doc.id),\n }),\n )\n\n // Client-side filter: only show items that are a superset of required collections\n // Server query uses ANY (due to PG limitations), but we want ALL (superset)\n const items =\n filterByCollection && filterByCollection.length > 0\n ? allItems.filter((item) => isSuperset(item.allowedCollections, filterByCollection))\n : allItems\n\n return {\n hasNextPage: data.hasNextPage || false,\n items,\n totalDocs: data.totalDocs || 0,\n }\n },\n [\n api,\n filterByCollection,\n hierarchyConfig,\n parentFieldName,\n serverURL,\n hierarchyCollectionSlug,\n treeLimit,\n useAsTitle,\n ],\n )\n\n const refreshColumn = useCallback(\n async (parentId: null | number | string) => {\n const columnIndex = columns.findIndex((col) => col.parentId === parentId)\n if (columnIndex === -1) {\n return\n }\n\n setColumns((prev) => {\n const updated = [...prev]\n updated[columnIndex] = { ...updated[columnIndex], isLoading: true }\n return updated\n })\n\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId })\n\n setColumns((prev) => {\n const updated = [...prev]\n if (updated[columnIndex]) {\n updated[columnIndex] = {\n ...updated[columnIndex],\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n totalDocs,\n }\n }\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n if (updated[columnIndex]) {\n updated[columnIndex] = { ...updated[columnIndex], isLoading: false }\n }\n return updated\n })\n }\n },\n [columns, fetchItems],\n )\n\n useImperativeHandle(ref, () => ({ refreshColumn }), [refreshColumn])\n\n const loadColumns = useEffectEvent(async (path?: (number | string)[]) => {\n // Build list of parentIds to fetch: [null, ...path]\n const parentIds: (null | number | string)[] = [null]\n if (path?.length) {\n parentIds.push(...path)\n }\n\n // Set initial loading state for all columns\n setColumns(\n parentIds.map((parentId) => ({\n hasNextPage: false,\n isLoading: true,\n items: [],\n page: 1,\n parentId,\n totalDocs: 0,\n })),\n )\n\n // Set expanded path to match (excluding null/root)\n if (path?.length) {\n setExpandedPath(path)\n }\n\n // Fetch all columns in parallel\n const results = await Promise.all(\n parentIds.map(async (parentId, index) => {\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId })\n let parentTitle: string | undefined\n if (index > 0 && parentId !== null) {\n // Will be filled in after all fetches complete\n }\n return {\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n parentId,\n parentTitle,\n totalDocs,\n }\n } catch {\n return {\n hasNextPage: false,\n isLoading: false,\n items: [],\n page: 1,\n parentId,\n parentTitle: undefined,\n totalDocs: 0,\n }\n }\n }),\n )\n\n // Fill in parent titles from previous columns\n const columnsWithTitles = results.map((col, index) => {\n if (index === 0 || col.parentId === null) {\n return col\n }\n const prevColumn = results[index - 1]\n const parentItem = prevColumn?.items.find((item) => item.id === col.parentId)\n return {\n ...col,\n parentTitle: parentItem?.title || String(col.parentId),\n }\n })\n\n setColumns(columnsWithTitles)\n })\n\n // Load columns on mount - wait for path loading to complete\n useEffect(() => {\n if (isLoadingPath || hasLoadedRef.current) {\n return\n }\n hasLoadedRef.current = true\n void loadColumns(initialExpandedPath)\n }, [initialExpandedPath, isLoadingPath])\n\n // Auto-scroll to the last column when columns change\n useEffect(() => {\n if (lastColumnRef.current && columns.length > 1) {\n lastColumnRef.current.scrollIntoView({ behavior: 'smooth', inline: 'start' })\n }\n }, [columns.length])\n\n const handleExpand = useCallback(\n async ({ columnIndex, itemId }: { columnIndex: number; itemId: number | string }) => {\n const column = columns[columnIndex]\n if (!column) {\n return\n }\n\n const item = column.items.find((i) => i.id === itemId)\n if (!item) {\n return\n }\n\n // Update expanded path - keep path up to this column, add new item\n const newExpandedPath = [...expandedPath.slice(0, columnIndex), itemId]\n setExpandedPath(newExpandedPath)\n\n // Remove columns to the right and add new loading column\n const newColumns = columns.slice(0, columnIndex + 1)\n newColumns.push({\n hasNextPage: false,\n isLoading: true,\n items: [],\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs: 0,\n })\n\n setColumns(newColumns)\n\n // Fetch children\n try {\n const { hasNextPage, items, totalDocs } = await fetchItems({ page: 1, parentId: itemId })\n\n setColumns((prev) => {\n const updated = [...prev]\n const targetIndex = columnIndex + 1\n\n if (updated[targetIndex]?.parentId === itemId) {\n updated[targetIndex] = {\n hasNextPage,\n isLoading: false,\n items,\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs,\n }\n }\n\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n const targetIndex = columnIndex + 1\n\n if (updated[targetIndex]?.parentId === itemId) {\n updated[targetIndex] = {\n hasNextPage: false,\n isLoading: false,\n items: [],\n page: 1,\n parentId: itemId,\n parentTitle: item.title,\n totalDocs: 0,\n }\n }\n\n return updated\n })\n }\n },\n [columns, expandedPath, fetchItems],\n )\n\n const handleLoadMore = useCallback(\n async ({ columnIndex }: { columnIndex: number }) => {\n const column = columns[columnIndex]\n if (!column || column.isLoading || !column.hasNextPage) {\n return\n }\n\n const nextPage = column.page + 1\n\n // Set loading state\n setColumns((prev) => {\n const updated = [...prev]\n updated[columnIndex] = { ...updated[columnIndex], isLoading: true }\n return updated\n })\n\n try {\n const { hasNextPage, items: newItems } = await fetchItems({\n page: nextPage,\n parentId: column.parentId,\n })\n\n setColumns((prev) => {\n const updated = [...prev]\n\n if (updated[columnIndex]) {\n updated[columnIndex] = {\n ...updated[columnIndex],\n hasNextPage,\n isLoading: false,\n items: [...updated[columnIndex].items, ...newItems],\n page: nextPage,\n }\n }\n\n return updated\n })\n } catch {\n setColumns((prev) => {\n const updated = [...prev]\n\n if (updated[columnIndex]) {\n updated[columnIndex] = { ...updated[columnIndex], isLoading: false }\n }\n\n return updated\n })\n }\n },\n [columns, fetchItems],\n )\n\n // Build path for each column based on parent info\n const getPathToColumn = (columnIndex: number) => {\n const path: Array<{ id: number | string; title: string }> = []\n\n for (let i = 1; i <= columnIndex; i++) {\n const col = columns[i]\n if (col?.parentId !== null && col?.parentId !== undefined) {\n path.push({\n id: col.parentId,\n title: col.parentTitle || String(col.parentId),\n })\n }\n }\n\n return path\n }\n\n return (\n <div className={baseClass} ref={containerRef}>\n {columns.map((column, index) => {\n const isLastColumn = index === columns.length - 1 && !isLoadingPath\n const expandedId = expandedPath[index] ?? null\n const pathToColumn = getPathToColumn(index)\n\n return (\n <div\n className={`${baseClass}__column-wrapper`}\n key={`${column.parentId ?? 'root'}-${index}`}\n ref={isLastColumn ? lastColumnRef : undefined}\n >\n <Column\n ancestorsWithSelections={ancestorsWithSelections}\n canCreate={canCreate && Boolean(onCreateNew)}\n collectionLabel={collectionLabel}\n disabled={isLoadingPath}\n disabledIds={disabledIds}\n expandedId={expandedId}\n filterByCollection={filterByCollection}\n hasNextPage={column.hasNextPage}\n isLoading={column.isLoading}\n items={column.items}\n onCreateNew={onCreateNew || (() => {})}\n onExpand={({ id }) => handleExpand({ columnIndex: index, itemId: id })}\n onLoadMore={() => handleLoadMore({ columnIndex: index })}\n onSelect={onSelect}\n parentId={column.parentId}\n parentTitle={column.parentTitle}\n pathToColumn={pathToColumn}\n selectedIds={selectedIds}\n totalDocs={column.totalDocs}\n />\n </div>\n )\n })}\n {isLoadingPath && (\n <div className={`${baseClass}__column-wrapper ${baseClass}__column-wrapper--loading`}>\n <Spinner />\n </div>\n )}\n </div>\n )\n}\n\nexport type {\n ColumnItemData,\n HierarchyColumnBrowserProps,\n HierarchyColumnBrowserRef,\n PathSegment,\n} from './types.js'\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +0,0 @@
1
- .hierarchy-column-browser {
2
- display: flex;
3
- flex: 1;
4
- overflow-x: auto;
5
- // scroll-snap-type: x proximity;
6
-
7
- &__column-wrapper {
8
- // scroll-snap-align: start;
9
- flex-shrink: 0;
10
-
11
- &:first-child {
12
- margin-left: var(--gutter-h);
13
- border-left: 1px solid var(--theme-elevation-100);
14
- }
15
- }
16
-
17
- &__column-wrapper--loading {
18
- padding: calc(var(--base) * 0.8) var(--base);
19
- }
20
- }
@@ -1,103 +0,0 @@
1
- export type ColumnItemData = {
2
- /** For folders with collectionSpecific config, the allowed collection slugs */
3
- allowedCollections?: string[];
4
- hasChildren: boolean;
5
- id: number | string;
6
- title: string;
7
- };
8
- export type PathSegment = {
9
- id: number | string;
10
- title: string;
11
- };
12
- export type ColumnItemProps = {
13
- disabled?: boolean;
14
- /** Required collections that the folder must allow (for superset check) */
15
- filterByCollection?: string[];
16
- hasSelectedDescendants: boolean;
17
- isExpanded: boolean;
18
- isSelected: boolean;
19
- item: ColumnItemData;
20
- onExpand: (params: {
21
- id: number | string;
22
- }) => void;
23
- onSelect: (params: {
24
- id: number | string;
25
- }) => void;
26
- };
27
- export type ColumnProps = {
28
- ancestorsWithSelections: Set<number | string>;
29
- /** Whether user can create new documents */
30
- canCreate: boolean;
31
- /** Label for the collection (e.g., "Folder") */
32
- collectionLabel: string;
33
- disabled?: boolean;
34
- /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */
35
- disabledIds?: Set<number | string>;
36
- expandedId: null | number | string;
37
- /** Required collections for superset check (passed to ColumnItem) */
38
- filterByCollection?: string[];
39
- hasNextPage: boolean;
40
- isLoading: boolean;
41
- items: ColumnItemData[];
42
- /** Called when user clicks "New" button - parent should open drawer with parentId */
43
- onCreateNew: (params: {
44
- parentId: null | number | string;
45
- }) => void;
46
- onExpand: (params: {
47
- id: number | string;
48
- }) => void;
49
- onLoadMore: () => void;
50
- onSelect: (params: {
51
- id: number | string;
52
- path: PathSegment[];
53
- }) => void;
54
- parentId: null | number | string;
55
- parentTitle?: string;
56
- pathToColumn: PathSegment[];
57
- selectedIds: Set<number | string>;
58
- totalDocs: number;
59
- };
60
- export type ColumnState = {
61
- hasNextPage: boolean;
62
- isLoading: boolean;
63
- items: ColumnItemData[];
64
- page: number;
65
- parentId: null | number | string;
66
- parentTitle?: string;
67
- totalDocs: number;
68
- };
69
- export type HierarchyColumnBrowserRef = {
70
- /** Refetch a specific column by parentId */
71
- refreshColumn: (parentId: null | number | string) => Promise<void>;
72
- };
73
- export type HierarchyColumnBrowserProps = {
74
- ancestorsWithSelections: Set<number | string>;
75
- /** IDs that should be disabled (e.g., items being moved can't be selected as destination) */
76
- disabledIds?: Set<number | string>;
77
- /**
78
- * Filters hierarchy items based on collection type restrictions:
79
- * - `undefined`: No filtering, show all folders
80
- * - `[]` (empty array): No filtering, show all folders (no constraints)
81
- * - `['posts', ...]`: Show folders accepting ANY of these collections OR unrestricted folders
82
- *
83
- * Note: Query uses ANY semantics due to PG hasMany enum limitations.
84
- * Client-side enforcement can disable selection of folders that don't allow ALL required collections.
85
- */
86
- filterByCollection?: string[];
87
- hierarchyCollectionSlug: string;
88
- initialExpandedPath?: (number | string)[];
89
- /** Whether the initial expanded path is still being loaded */
90
- isLoadingPath?: boolean;
91
- /** Called when user clicks "New" button to create a new item */
92
- onCreateNew?: (params: {
93
- parentId: null | number | string;
94
- }) => void;
95
- onSelect: (params: {
96
- id: number | string;
97
- path: PathSegment[];
98
- }) => void;
99
- parentFieldName: string;
100
- selectedIds: Set<number | string>;
101
- useAsTitle?: string;
102
- };
103
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/HierarchyColumnBrowser/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map