@payloadcms/ui 3.80.0-internal.c396c15 → 3.80.0-internal.cdd7ef7

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 (518) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditForm/index.js +0 -12
  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 +5 -3
  6. package/dist/elements/Button/index.js.map +1 -1
  7. package/dist/elements/Button/index.scss +38 -5
  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 +0 -1
  13. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  14. package/dist/elements/CheckboxPopup/index.scss +1 -0
  15. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  16. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +53 -3
  17. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  18. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +541 -0
  19. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -0
  20. package/dist/elements/Combobox/index.d.ts.map +1 -1
  21. package/dist/elements/Combobox/index.js +1 -0
  22. package/dist/elements/Combobox/index.js.map +1 -1
  23. package/dist/elements/CreateDocumentButton/index.d.ts +26 -0
  24. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -0
  25. package/dist/elements/CreateDocumentButton/index.js +182 -0
  26. package/dist/elements/CreateDocumentButton/index.js.map +1 -0
  27. package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
  28. package/dist/elements/DefaultListViewTabs/index.js +28 -54
  29. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  30. package/dist/elements/DelayedSpinner/index.d.ts +23 -0
  31. package/dist/elements/DelayedSpinner/index.d.ts.map +1 -0
  32. package/dist/elements/DelayedSpinner/index.js +61 -0
  33. package/dist/elements/DelayedSpinner/index.js.map +1 -0
  34. package/dist/elements/DocumentControls/index.d.ts +1 -0
  35. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  36. package/dist/elements/DocumentControls/index.js +6 -10
  37. package/dist/elements/DocumentControls/index.js.map +1 -1
  38. package/dist/elements/DocumentControls/index.scss +1 -1
  39. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  40. package/dist/elements/DocumentDrawer/index.js +54 -141
  41. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  42. package/dist/elements/DocumentDrawer/types.d.ts +7 -1
  43. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  44. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  45. package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
  46. package/dist/elements/DrawerActionHeader/index.js +2 -0
  47. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  48. package/dist/elements/DrawerActionHeader/index.scss +2 -2
  49. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts +5 -0
  50. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -0
  51. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +166 -0
  52. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -0
  53. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.scss +63 -0
  54. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts +5 -0
  55. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -0
  56. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +161 -0
  57. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -0
  58. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.scss +105 -0
  59. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +8 -0
  60. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -0
  61. package/dist/elements/Hierarchy/ColumnBrowser/index.js +473 -0
  62. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -0
  63. package/dist/elements/Hierarchy/ColumnBrowser/index.scss +20 -0
  64. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +106 -0
  65. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -0
  66. package/dist/elements/Hierarchy/ColumnBrowser/types.js +2 -0
  67. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -0
  68. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts +11 -0
  69. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -0
  70. package/dist/elements/Hierarchy/DocHeaderButton/index.js +126 -0
  71. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -0
  72. package/dist/elements/{FolderView/MoveDocToFolder → Hierarchy/DocHeaderButton}/index.scss +7 -1
  73. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts +10 -0
  74. package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts.map +1 -0
  75. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +34 -0
  76. package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -0
  77. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts +15 -0
  78. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +1 -0
  79. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js +60 -0
  80. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +1 -0
  81. package/dist/elements/Hierarchy/Drawer/index.d.ts +20 -0
  82. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +1 -0
  83. package/dist/elements/Hierarchy/Drawer/index.js +291 -0
  84. package/dist/elements/Hierarchy/Drawer/index.js.map +1 -0
  85. package/dist/elements/Hierarchy/Drawer/index.scss +81 -0
  86. package/dist/elements/Hierarchy/Drawer/types.d.ts +68 -0
  87. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +1 -0
  88. package/dist/elements/Hierarchy/Drawer/types.js +3 -0
  89. package/dist/elements/Hierarchy/Drawer/types.js.map +1 -0
  90. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +30 -0
  91. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +1 -0
  92. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js +148 -0
  93. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +1 -0
  94. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +13 -0
  95. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -0
  96. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +185 -0
  97. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -0
  98. package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +78 -0
  99. package/dist/elements/Hierarchy/Field/index.client.d.ts +8 -0
  100. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -0
  101. package/dist/elements/Hierarchy/Field/index.client.js +186 -0
  102. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -0
  103. package/dist/elements/Hierarchy/Field/index.scss +35 -0
  104. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -0
  105. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -0
  106. package/dist/elements/Hierarchy/Field/index.server.js +30 -0
  107. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -0
  108. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts +4 -0
  109. package/dist/elements/Hierarchy/HydrateProvider/index.d.ts.map +1 -0
  110. package/dist/elements/Hierarchy/HydrateProvider/index.js +70 -0
  111. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -0
  112. package/dist/elements/Hierarchy/MoveMany/index.d.ts +22 -0
  113. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -0
  114. package/dist/elements/Hierarchy/MoveMany/index.js +278 -0
  115. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -0
  116. package/dist/elements/Hierarchy/MoveMany/index.scss +7 -0
  117. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts +18 -0
  118. package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts.map +1 -0
  119. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js +115 -0
  120. package/dist/elements/Hierarchy/Search/HierarchySearchInput.js.map +1 -0
  121. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts +13 -0
  122. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts.map +1 -0
  123. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +88 -0
  124. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -0
  125. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts +17 -0
  126. package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts.map +1 -0
  127. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js +85 -0
  128. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -0
  129. package/dist/elements/Hierarchy/Search/index.d.ts +10 -0
  130. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -0
  131. package/dist/elements/Hierarchy/Search/index.js +144 -0
  132. package/dist/elements/Hierarchy/Search/index.js.map +1 -0
  133. package/dist/elements/Hierarchy/Search/index.scss +212 -0
  134. package/dist/elements/Hierarchy/Search/types.d.ts +21 -0
  135. package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -0
  136. package/dist/elements/Hierarchy/Search/types.js +2 -0
  137. package/dist/elements/Hierarchy/Search/types.js.map +1 -0
  138. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts +20 -0
  139. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -0
  140. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +122 -0
  141. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -0
  142. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +21 -0
  143. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -0
  144. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +162 -0
  145. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -0
  146. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts +7 -0
  147. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -0
  148. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +177 -0
  149. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -0
  150. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts +8 -0
  151. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts.map +1 -0
  152. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js +36 -0
  153. package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js.map +1 -0
  154. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +12 -0
  155. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -0
  156. package/dist/elements/Hierarchy/Tree/LoadMore/index.js +29 -0
  157. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -0
  158. package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +26 -0
  159. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +7 -0
  160. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +1 -0
  161. package/dist/elements/Hierarchy/Tree/TreeConnector.js +23 -0
  162. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +1 -0
  163. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +28 -0
  164. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -0
  165. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +140 -0
  166. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -0
  167. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +5 -0
  168. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -0
  169. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +225 -0
  170. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -0
  171. package/dist/elements/Hierarchy/Tree/TreeNode/index.scss +110 -0
  172. package/dist/elements/Hierarchy/Tree/index.d.ts +5 -0
  173. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -0
  174. package/dist/elements/Hierarchy/Tree/index.js +270 -0
  175. package/dist/elements/Hierarchy/Tree/index.js.map +1 -0
  176. package/dist/elements/Hierarchy/Tree/index.scss +60 -0
  177. package/dist/elements/Hierarchy/Tree/types.d.ts +76 -0
  178. package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -0
  179. package/dist/elements/Hierarchy/Tree/types.js +2 -0
  180. package/dist/elements/Hierarchy/Tree/types.js.map +1 -0
  181. package/dist/elements/Hierarchy/Tree/useChildren.d.ts +32 -0
  182. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -0
  183. package/dist/elements/Hierarchy/Tree/useChildren.js +229 -0
  184. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -0
  185. package/dist/elements/Link/index.d.ts +4 -0
  186. package/dist/elements/Link/index.d.ts.map +1 -1
  187. package/dist/elements/Link/index.js +5 -0
  188. package/dist/elements/Link/index.js.map +1 -1
  189. package/dist/elements/ListHeader/TitleActions/index.d.ts +0 -1
  190. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  191. package/dist/elements/ListHeader/TitleActions/index.js +0 -1
  192. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  193. package/dist/elements/ListHeader/index.js +2 -2
  194. package/dist/elements/ListHeader/index.js.map +1 -1
  195. package/dist/elements/ListSelection/index.scss +2 -1
  196. package/dist/elements/LoadMoreRow/index.d.ts +15 -0
  197. package/dist/elements/LoadMoreRow/index.d.ts.map +1 -0
  198. package/dist/elements/LoadMoreRow/index.js +75 -0
  199. package/dist/elements/LoadMoreRow/index.js.map +1 -0
  200. package/dist/elements/LoadMoreRow/index.scss +42 -0
  201. package/dist/elements/Locked/index.scss +1 -1
  202. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  203. package/dist/elements/PublishButton/index.js +3 -1
  204. package/dist/elements/PublishButton/index.js.map +1 -1
  205. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  206. package/dist/elements/RelationshipTable/index.js +17 -12
  207. package/dist/elements/RelationshipTable/index.js.map +1 -1
  208. package/dist/elements/Spinner/index.d.ts +16 -0
  209. package/dist/elements/Spinner/index.d.ts.map +1 -0
  210. package/dist/elements/Spinner/index.js +49 -0
  211. package/dist/elements/Spinner/index.js.map +1 -0
  212. package/dist/elements/Spinner/index.scss +39 -0
  213. package/dist/elements/StepNav/index.d.ts.map +1 -1
  214. package/dist/elements/StepNav/index.js +10 -1
  215. package/dist/elements/StepNav/index.js.map +1 -1
  216. package/dist/elements/StepNav/types.d.ts +1 -0
  217. package/dist/elements/StepNav/types.d.ts.map +1 -1
  218. package/dist/elements/StepNav/types.js.map +1 -1
  219. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +6 -0
  220. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -0
  221. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +187 -0
  222. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -0
  223. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +29 -0
  224. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  225. package/dist/elements/Table/DefaultCell/index.js +20 -0
  226. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  227. package/dist/elements/Toasts/fieldErrors.d.ts +4 -0
  228. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  229. package/dist/elements/Toasts/fieldErrors.js +4 -2
  230. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  231. package/dist/elements/Toasts/fieldErrors.spec.js +46 -0
  232. package/dist/elements/Toasts/fieldErrors.spec.js.map +1 -0
  233. package/dist/elements/Tooltip/index.js +1 -1
  234. package/dist/elements/Tooltip/index.js.map +1 -1
  235. package/dist/elements/Tooltip/index.scss +1 -15
  236. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  237. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +8 -6
  238. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  239. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  240. package/dist/elements/WhereBuilder/field-types.js +2 -5
  241. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  242. package/dist/exports/client/{DatePicker-CL2EGBVQ.js → DatePicker-T2DMDMM5.js} +2 -2
  243. package/dist/exports/client/chunk-WDZJLNNB.js +29 -0
  244. package/dist/exports/client/{chunk-SH42NW5R.js.map → chunk-WDZJLNNB.js.map} +4 -4
  245. package/dist/exports/client/index.d.ts +26 -9
  246. package/dist/exports/client/index.d.ts.map +1 -1
  247. package/dist/exports/client/index.js +26 -24
  248. package/dist/exports/client/index.js.map +4 -4
  249. package/dist/exports/rsc/index.d.ts +3 -3
  250. package/dist/exports/rsc/index.d.ts.map +1 -1
  251. package/dist/exports/rsc/index.js +3 -3
  252. package/dist/exports/rsc/index.js.map +1 -1
  253. package/dist/fields/Join/index.d.ts.map +1 -1
  254. package/dist/fields/Join/index.js +1 -1
  255. package/dist/fields/Join/index.js.map +1 -1
  256. package/dist/fields/Null/index.d.ts +11 -0
  257. package/dist/fields/Null/index.d.ts.map +1 -0
  258. package/dist/fields/Null/index.js +13 -0
  259. package/dist/fields/Null/index.js.map +1 -0
  260. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  261. package/dist/forms/Form/mergeServerFormState.js +101 -24
  262. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  263. package/dist/icons/Chevron/index.d.ts.map +1 -1
  264. package/dist/icons/Chevron/index.js +5 -1
  265. package/dist/icons/Chevron/index.js.map +1 -1
  266. package/dist/icons/Document/index.d.ts +3 -1
  267. package/dist/icons/Document/index.d.ts.map +1 -1
  268. package/dist/icons/Document/index.js +4 -2
  269. package/dist/icons/Document/index.js.map +1 -1
  270. package/dist/icons/Document/index.scss +4 -0
  271. package/dist/icons/Filter/index.d.ts +4 -0
  272. package/dist/icons/Filter/index.d.ts.map +1 -0
  273. package/dist/icons/Filter/index.js +15 -0
  274. package/dist/icons/Filter/index.js.map +1 -0
  275. package/dist/icons/Filter/index.scss +13 -0
  276. package/dist/icons/Folder/index.d.ts +4 -2
  277. package/dist/icons/Folder/index.d.ts.map +1 -1
  278. package/dist/icons/Folder/index.js +4 -2
  279. package/dist/icons/Folder/index.js.map +1 -1
  280. package/dist/icons/Folder/index.scss +8 -0
  281. package/dist/icons/Lock/index.scss +1 -1
  282. package/dist/icons/Plus/index.d.ts.map +1 -1
  283. package/dist/icons/Plus/index.js +2 -1
  284. package/dist/icons/Plus/index.js.map +1 -1
  285. package/dist/icons/TableView/index.d.ts +3 -0
  286. package/dist/icons/TableView/index.d.ts.map +1 -0
  287. package/dist/icons/TableView/index.js +16 -0
  288. package/dist/icons/TableView/index.js.map +1 -0
  289. package/dist/icons/Tag/index.d.ts +8 -0
  290. package/dist/icons/Tag/index.d.ts.map +1 -0
  291. package/dist/icons/Tag/index.js +22 -0
  292. package/dist/icons/Tag/index.js.map +1 -0
  293. package/dist/icons/Tag/index.scss +14 -0
  294. package/dist/providers/DocumentSelection/index.d.ts +8 -0
  295. package/dist/providers/DocumentSelection/index.d.ts.map +1 -0
  296. package/dist/providers/DocumentSelection/index.js +239 -0
  297. package/dist/providers/DocumentSelection/index.js.map +1 -0
  298. package/dist/providers/DocumentSelection/types.d.ts +122 -0
  299. package/dist/providers/DocumentSelection/types.d.ts.map +1 -0
  300. package/dist/providers/DocumentSelection/types.js +5 -0
  301. package/dist/providers/DocumentSelection/types.js.map +1 -0
  302. package/dist/providers/Hierarchy/index.d.ts +5 -0
  303. package/dist/providers/Hierarchy/index.d.ts.map +1 -0
  304. package/dist/providers/Hierarchy/index.js +350 -0
  305. package/dist/providers/Hierarchy/index.js.map +1 -0
  306. package/dist/providers/Hierarchy/types.d.ts +106 -0
  307. package/dist/providers/Hierarchy/types.d.ts.map +1 -0
  308. package/dist/providers/Hierarchy/types.js +2 -0
  309. package/dist/providers/Hierarchy/types.js.map +1 -0
  310. package/dist/providers/Root/index.d.ts.map +1 -1
  311. package/dist/providers/Root/index.js +18 -15
  312. package/dist/providers/Root/index.js.map +1 -1
  313. package/dist/providers/ServerFunctions/index.d.ts +1 -6
  314. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  315. package/dist/providers/ServerFunctions/index.js +0 -18
  316. package/dist/providers/ServerFunctions/index.js.map +1 -1
  317. package/dist/providers/SidebarTabs/index.d.ts +19 -0
  318. package/dist/providers/SidebarTabs/index.d.ts.map +1 -0
  319. package/dist/providers/SidebarTabs/index.js +24 -0
  320. package/dist/providers/SidebarTabs/index.js.map +1 -0
  321. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +2 -1
  322. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  323. package/dist/providers/TableColumns/buildColumnState/renderCell.js +34 -1
  324. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  325. package/dist/styles.css +1 -1
  326. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  327. package/dist/utilities/isSuperset.d.ts +6 -0
  328. package/dist/utilities/isSuperset.d.ts.map +1 -0
  329. package/dist/utilities/isSuperset.js +10 -0
  330. package/dist/utilities/isSuperset.js.map +1 -0
  331. package/dist/utilities/renderTable.d.ts +3 -1
  332. package/dist/utilities/renderTable.d.ts.map +1 -1
  333. package/dist/utilities/renderTable.js +9 -3
  334. package/dist/utilities/renderTable.js.map +1 -1
  335. package/dist/views/Edit/index.d.ts +1 -1
  336. package/dist/views/Edit/index.d.ts.map +1 -1
  337. package/dist/views/Edit/index.js +15 -4
  338. package/dist/views/Edit/index.js.map +1 -1
  339. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +10 -0
  340. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -0
  341. package/dist/views/HierarchyList/DocumentListSelection/index.js +194 -0
  342. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -0
  343. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +21 -0
  344. package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -0
  345. package/dist/views/HierarchyList/HierarchyListHeader/index.js +67 -0
  346. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -0
  347. package/dist/views/HierarchyList/HierarchyListHeader/index.scss +9 -0
  348. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +4 -0
  349. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -0
  350. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +104 -0
  351. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -0
  352. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +4 -0
  353. package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +1 -0
  354. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +53 -0
  355. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -0
  356. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +4 -0
  357. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +1 -0
  358. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +128 -0
  359. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -0
  360. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +99 -0
  361. package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -0
  362. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +118 -0
  363. package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -0
  364. package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +214 -0
  365. package/dist/views/HierarchyList/HierarchyTable/index.d.ts +27 -0
  366. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -0
  367. package/dist/views/HierarchyList/HierarchyTable/index.js +388 -0
  368. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -0
  369. package/dist/views/HierarchyList/HierarchyTable/index.scss +148 -0
  370. package/dist/views/HierarchyList/HierarchyTable/types.d.ts +20 -0
  371. package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -0
  372. package/dist/views/HierarchyList/HierarchyTable/types.js +2 -0
  373. package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -0
  374. package/dist/views/HierarchyList/TypeFilter/index.d.ts +15 -0
  375. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -0
  376. package/dist/views/HierarchyList/TypeFilter/index.js +37 -0
  377. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -0
  378. package/dist/views/HierarchyList/TypeFilter/index.scss +32 -0
  379. package/dist/views/HierarchyList/index.d.ts +5 -0
  380. package/dist/views/HierarchyList/index.d.ts.map +1 -0
  381. package/dist/views/HierarchyList/index.js +305 -0
  382. package/dist/views/HierarchyList/index.js.map +1 -0
  383. package/dist/views/HierarchyList/index.scss +72 -0
  384. package/dist/views/List/index.d.ts.map +1 -1
  385. package/dist/views/List/index.js +51 -7
  386. package/dist/views/List/index.js.map +1 -1
  387. package/package.json +4 -4
  388. package/dist/elements/FolderView/Breadcrumbs/index.d.ts +0 -19
  389. package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +0 -1
  390. package/dist/elements/FolderView/Breadcrumbs/index.js +0 -96
  391. package/dist/elements/FolderView/Breadcrumbs/index.js.map +0 -1
  392. package/dist/elements/FolderView/Breadcrumbs/index.scss +0 -56
  393. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +0 -6
  394. package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +0 -1
  395. package/dist/elements/FolderView/BrowseByFolderButton/index.js +0 -40
  396. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +0 -1
  397. package/dist/elements/FolderView/BrowseByFolderButton/index.scss +0 -30
  398. package/dist/elements/FolderView/Cell/index.client.d.ts +0 -13
  399. package/dist/elements/FolderView/Cell/index.client.d.ts.map +0 -1
  400. package/dist/elements/FolderView/Cell/index.client.js +0 -95
  401. package/dist/elements/FolderView/Cell/index.client.js.map +0 -1
  402. package/dist/elements/FolderView/Cell/index.server.d.ts +0 -4
  403. package/dist/elements/FolderView/Cell/index.server.d.ts.map +0 -1
  404. package/dist/elements/FolderView/Cell/index.server.js +0 -18
  405. package/dist/elements/FolderView/Cell/index.server.js.map +0 -1
  406. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +0 -3
  407. package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +0 -1
  408. package/dist/elements/FolderView/ColoredFolderIcon/index.js +0 -9
  409. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +0 -1
  410. package/dist/elements/FolderView/ColoredFolderIcon/index.scss +0 -5
  411. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +0 -7
  412. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +0 -1
  413. package/dist/elements/FolderView/CurrentFolderActions/index.js +0 -162
  414. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +0 -1
  415. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +0 -11
  416. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +0 -1
  417. package/dist/elements/FolderView/DragOverlaySelection/index.js +0 -62
  418. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +0 -1
  419. package/dist/elements/FolderView/DragOverlaySelection/index.scss +0 -35
  420. package/dist/elements/FolderView/DraggableTableRow/index.d.ts +0 -18
  421. package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +0 -1
  422. package/dist/elements/FolderView/DraggableTableRow/index.js +0 -63
  423. package/dist/elements/FolderView/DraggableTableRow/index.js.map +0 -1
  424. package/dist/elements/FolderView/DraggableTableRow/index.scss +0 -135
  425. package/dist/elements/FolderView/DraggableWithClick/index.d.ts +0 -15
  426. package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +0 -1
  427. package/dist/elements/FolderView/DraggableWithClick/index.js +0 -86
  428. package/dist/elements/FolderView/DraggableWithClick/index.js.map +0 -1
  429. package/dist/elements/FolderView/DraggableWithClick/index.scss +0 -5
  430. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +0 -7
  431. package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +0 -1
  432. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +0 -39
  433. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +0 -1
  434. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +0 -37
  435. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +0 -1
  436. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +0 -609
  437. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +0 -1
  438. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +0 -30
  439. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +0 -4
  440. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +0 -1
  441. package/dist/elements/FolderView/FilterFolderTypePill/index.js +0 -102
  442. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +0 -1
  443. package/dist/elements/FolderView/FilterFolderTypePill/index.scss +0 -16
  444. package/dist/elements/FolderView/FolderField/index.scss +0 -12
  445. package/dist/elements/FolderView/FolderField/index.server.d.ts +0 -4
  446. package/dist/elements/FolderView/FolderField/index.server.d.ts.map +0 -1
  447. package/dist/elements/FolderView/FolderField/index.server.js +0 -16
  448. package/dist/elements/FolderView/FolderField/index.server.js.map +0 -1
  449. package/dist/elements/FolderView/FolderFileCard/index.d.ts +0 -30
  450. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +0 -1
  451. package/dist/elements/FolderView/FolderFileCard/index.js +0 -209
  452. package/dist/elements/FolderView/FolderFileCard/index.js.map +0 -1
  453. package/dist/elements/FolderView/FolderFileCard/index.scss +0 -247
  454. package/dist/elements/FolderView/FolderFileTable/index.d.ts +0 -8
  455. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +0 -1
  456. package/dist/elements/FolderView/FolderFileTable/index.js +0 -284
  457. package/dist/elements/FolderView/FolderFileTable/index.js.map +0 -1
  458. package/dist/elements/FolderView/FolderFileTable/index.scss +0 -11
  459. package/dist/elements/FolderView/FolderTypeField/index.d.ts +0 -4
  460. package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +0 -1
  461. package/dist/elements/FolderView/FolderTypeField/index.js +0 -123
  462. package/dist/elements/FolderView/FolderTypeField/index.js.map +0 -1
  463. package/dist/elements/FolderView/ItemCardGrid/index.d.ts +0 -16
  464. package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +0 -1
  465. package/dist/elements/FolderView/ItemCardGrid/index.js +0 -34
  466. package/dist/elements/FolderView/ItemCardGrid/index.js.map +0 -1
  467. package/dist/elements/FolderView/ItemCardGrid/index.scss +0 -16
  468. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +0 -37
  469. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +0 -1
  470. package/dist/elements/FolderView/MoveDocToFolder/index.js +0 -292
  471. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +0 -1
  472. package/dist/elements/FolderView/SimpleTable/index.d.ts +0 -19
  473. package/dist/elements/FolderView/SimpleTable/index.d.ts.map +0 -1
  474. package/dist/elements/FolderView/SimpleTable/index.js +0 -95
  475. package/dist/elements/FolderView/SimpleTable/index.js.map +0 -1
  476. package/dist/elements/FolderView/SimpleTable/index.scss +0 -59
  477. package/dist/elements/FolderView/SortByPill/index.d.ts +0 -4
  478. package/dist/elements/FolderView/SortByPill/index.d.ts.map +0 -1
  479. package/dist/elements/FolderView/SortByPill/index.js +0 -112
  480. package/dist/elements/FolderView/SortByPill/index.js.map +0 -1
  481. package/dist/elements/FolderView/SortByPill/index.scss +0 -16
  482. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +0 -8
  483. package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +0 -1
  484. package/dist/elements/FolderView/ToggleViewButtons/index.js +0 -31
  485. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +0 -1
  486. package/dist/elements/FolderView/ToggleViewButtons/index.scss +0 -17
  487. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +0 -15
  488. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +0 -1
  489. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +0 -182
  490. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +0 -1
  491. package/dist/exports/client/chunk-SH42NW5R.js +0 -29
  492. package/dist/providers/Folders/groupItemIDsByRelation.d.ts +0 -3
  493. package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +0 -1
  494. package/dist/providers/Folders/groupItemIDsByRelation.js +0 -10
  495. package/dist/providers/Folders/groupItemIDsByRelation.js.map +0 -1
  496. package/dist/providers/Folders/index.d.ts +0 -143
  497. package/dist/providers/Folders/index.d.ts.map +0 -1
  498. package/dist/providers/Folders/index.js +0 -641
  499. package/dist/providers/Folders/index.js.map +0 -1
  500. package/dist/utilities/getFolderResultsComponentAndData.d.ts +0 -25
  501. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +0 -1
  502. package/dist/utilities/getFolderResultsComponentAndData.js +0 -135
  503. package/dist/utilities/getFolderResultsComponentAndData.js.map +0 -1
  504. package/dist/views/BrowseByFolder/index.d.ts +0 -5
  505. package/dist/views/BrowseByFolder/index.d.ts.map +0 -1
  506. package/dist/views/BrowseByFolder/index.js +0 -342
  507. package/dist/views/BrowseByFolder/index.js.map +0 -1
  508. package/dist/views/BrowseByFolder/index.scss +0 -174
  509. package/dist/views/CollectionFolder/ListSelection/index.d.ts +0 -9
  510. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +0 -1
  511. package/dist/views/CollectionFolder/ListSelection/index.js +0 -180
  512. package/dist/views/CollectionFolder/ListSelection/index.js.map +0 -1
  513. package/dist/views/CollectionFolder/index.d.ts +0 -5
  514. package/dist/views/CollectionFolder/index.d.ts.map +0 -1
  515. package/dist/views/CollectionFolder/index.js +0 -325
  516. package/dist/views/CollectionFolder/index.js.map +0 -1
  517. package/dist/views/CollectionFolder/index.scss +0 -162
  518. /package/dist/exports/client/{DatePicker-CL2EGBVQ.js.map → DatePicker-T2DMDMM5.js.map} +0 -0
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import React from 'react';
5
+ import { Button } from '../../../elements/Button/index.js';
6
+ import { CheckboxPopup } from '../../../elements/CheckboxPopup/index.js';
7
+ import './index.scss';
8
+ const baseClass = 'type-filter';
9
+ export function TypeFilter({
10
+ i18n,
11
+ onChange,
12
+ options,
13
+ selectedValues
14
+ }) {
15
+ const isRefined = selectedValues.length !== options.length ? true : false;
16
+ return /*#__PURE__*/_jsx(CheckboxPopup, {
17
+ Button: /*#__PURE__*/_jsxs(Button, {
18
+ buttonStyle: "pill",
19
+ className: `${baseClass}__button`,
20
+ el: "div",
21
+ icon: "chevron",
22
+ margin: false,
23
+ size: "small",
24
+ children: [isRefined && /*#__PURE__*/_jsx("span", {
25
+ className: `${baseClass}__count`,
26
+ children: selectedValues.length
27
+ }), i18n.t('version:type')]
28
+ }),
29
+ className: [baseClass, isRefined ? `${baseClass}--active` : ''].filter(Boolean).join(' '),
30
+ onChange: ({
31
+ selectedValues: newValues
32
+ }) => onChange(newValues),
33
+ options: options,
34
+ selectedValues: selectedValues
35
+ });
36
+ }
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","Button","CheckboxPopup","baseClass","TypeFilter","i18n","onChange","options","selectedValues","isRefined","length","_jsx","_jsxs","buttonStyle","className","el","icon","margin","size","t","filter","Boolean","join","newValues"],"sources":["../../../../src/views/HierarchyList/TypeFilter/index.tsx"],"sourcesContent":["'use client'\n\nimport type { I18nClient } from '@payloadcms/translations'\n\nimport React from 'react'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { CheckboxPopup } from '../../../elements/CheckboxPopup/index.js'\nimport './index.scss'\n\nconst baseClass = 'type-filter'\n\ntype TypeFilterProps = {\n i18n: I18nClient\n onChange: (selectedValues: string[]) => void\n options: { label: string; value: string }[]\n selectedValues: string[]\n}\n\nexport function TypeFilter({ i18n, onChange, options, selectedValues }: TypeFilterProps) {\n const isRefined = selectedValues.length !== options.length ? true : false\n\n return (\n <CheckboxPopup\n Button={\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__button`}\n el=\"div\"\n icon=\"chevron\"\n margin={false}\n size=\"small\"\n >\n {isRefined && <span className={`${baseClass}__count`}>{selectedValues.length}</span>}\n {i18n.t('version:type')}\n </Button>\n }\n className={[baseClass, isRefined ? `${baseClass}--active` : ''].filter(Boolean).join(' ')}\n onChange={({ selectedValues: newValues }) => onChange(newValues)}\n options={options}\n selectedValues={selectedValues}\n />\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,SAAA,GAAY;AASlB,OAAO,SAASC,WAAW;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,OAAO;EAAEC;AAAc,CAAmB;EACrF,MAAMC,SAAA,GAAYD,cAAA,CAAeE,MAAM,KAAKH,OAAA,CAAQG,MAAM,GAAG,OAAO;EAEpE,oBACEC,IAAA,CAACT,aAAA;IACCD,MAAA,eACEW,KAAA,CAACX,MAAA;MACCY,WAAA,EAAY;MACZC,SAAA,EAAW,GAAGX,SAAA,UAAmB;MACjCY,EAAA,EAAG;MACHC,IAAA,EAAK;MACLC,MAAA,EAAQ;MACRC,IAAA,EAAK;iBAEJT,SAAA,iBAAaE,IAAA,CAAC;QAAKG,SAAA,EAAW,GAAGX,SAAA,SAAkB;kBAAGK,cAAA,CAAeE;UACrEL,IAAA,CAAKc,CAAC,CAAC;;IAGZL,SAAA,EAAW,CAACX,SAAA,EAAWM,SAAA,GAAY,GAAGN,SAAA,UAAmB,GAAG,GAAG,CAACiB,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;IACrFhB,QAAA,EAAUA,CAAC;MAAEE,cAAA,EAAgBe;IAAS,CAAE,KAAKjB,QAAA,CAASiB,SAAA;IACtDhB,OAAA,EAASA,OAAA;IACTC,cAAA,EAAgBA;;AAGtB","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ .type-filter {
4
+ &--active {
5
+ .type-filter__button {
6
+ &:after {
7
+ content: '';
8
+ height: 8px;
9
+ width: 8px;
10
+ border-radius: 50%;
11
+ position: absolute;
12
+ top: 0;
13
+ right: 0;
14
+ background: var(--theme-success-550);
15
+ transform: translate3d(40%, -40%, 0px);
16
+
17
+ [data-theme='light'] & {
18
+ background: var(--theme-success-400);
19
+ }
20
+ }
21
+ }
22
+ .type-filter__count {
23
+ font-variant-numeric: tabular-nums;
24
+ padding: 0px 3px;
25
+ border-radius: var(--style-radius-s);
26
+ margin-left: -4px;
27
+ margin-right: calc(var(--base) * 0.25);
28
+ font-weight: 500;
29
+ background: var(--theme-elevation-50);
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,5 @@
1
+ import type { ListViewClientProps } from 'payload';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export declare function HierarchyListView(props: ListViewClientProps): React.JSX.Element;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/HierarchyList/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAMlD,OAAO,KAA8D,MAAM,OAAO,CAAA;AAoBlF,OAAO,cAAc,CAAA;AAIrB,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,qBA2W3D"}
@@ -0,0 +1,305 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { getTranslation } from '@payloadcms/translations';
5
+ import { useRouter, useSearchParams } from 'next/navigation.js';
6
+ import { formatAdminURL } from 'payload/shared';
7
+ import * as qs from 'qs-esm';
8
+ import React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
9
+ import { Gutter } from '../../elements/Gutter/index.js';
10
+ import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
11
+ import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
12
+ import { SearchBar } from '../../elements/SearchBar/index.js';
13
+ import { useStepNav } from '../../elements/StepNav/index.js';
14
+ import { ViewDescription } from '../../elements/ViewDescription/index.js';
15
+ import { TagIcon } from '../../icons/Tag/index.js';
16
+ import { useConfig } from '../../providers/Config/index.js';
17
+ import { DocumentSelectionProvider } from '../../providers/DocumentSelection/index.js';
18
+ import { useHierarchy } from '../../providers/Hierarchy/index.js';
19
+ import { useRouteTransition } from '../../providers/RouteTransition/index.js';
20
+ import { useTranslation } from '../../providers/Translation/index.js';
21
+ import { HierarchyListHeader } from './HierarchyListHeader/index.js';
22
+ import { HierarchyTable } from './HierarchyTable/index.js';
23
+ import { TypeFilter } from './TypeFilter/index.js';
24
+ import './index.scss';
25
+ const baseClass = 'hierarchy-list';
26
+ export function HierarchyListView(props) {
27
+ const {
28
+ AfterList,
29
+ baseFilter,
30
+ BeforeList,
31
+ collectionSlug,
32
+ Description,
33
+ hasCreatePermission: hasCreatePermissionFromProps,
34
+ hierarchyData,
35
+ HierarchyIcon
36
+ } = props;
37
+ const router = useRouter();
38
+ const searchParams = useSearchParams();
39
+ const {
40
+ startRouteTransition
41
+ } = useRouteTransition();
42
+ const {
43
+ allowCreate,
44
+ isInDrawer
45
+ } = useListDrawerContext();
46
+ const hasCreatePermission = allowCreate !== undefined ? allowCreate && hasCreatePermissionFromProps : hasCreatePermissionFromProps;
47
+ const {
48
+ config: {
49
+ routes: {
50
+ admin: adminRoute
51
+ }
52
+ },
53
+ getEntityConfig
54
+ } = useConfig();
55
+ const collectionConfig = getEntityConfig({
56
+ collectionSlug
57
+ });
58
+ const {
59
+ labels
60
+ } = collectionConfig;
61
+ const {
62
+ i18n,
63
+ t
64
+ } = useTranslation();
65
+ const collectionLabel = getTranslation(labels?.plural, i18n);
66
+ const {
67
+ setStepNav
68
+ } = useStepNav();
69
+ const {
70
+ parent
71
+ } = useHierarchy();
72
+ // Get search from URL params
73
+ const searchFromURL = searchParams.get('search') || '';
74
+ // Update URL when search changes (debouncing is handled by SearchFilter)
75
+ // This triggers a server refetch via Next.js router
76
+ const handleSearchChange = useCallback(value => {
77
+ // Build new URL with updated search param
78
+ const currentParams = {};
79
+ searchParams.forEach((v, k) => {
80
+ currentParams[k] = v;
81
+ });
82
+ if (value) {
83
+ currentParams.search = value;
84
+ } else {
85
+ delete currentParams.search;
86
+ }
87
+ const queryString = qs.stringify(currentParams, {
88
+ addQueryPrefix: true
89
+ });
90
+ const newUrl = `${window.location.pathname}${queryString}`;
91
+ if (window.location.search !== queryString) {
92
+ startRouteTransition(() => router.replace(newUrl));
93
+ }
94
+ }, [router, searchParams, startRouteTransition]);
95
+ // Get current item title from breadcrumbs (last item is the current one)
96
+ const currentItemTitle = hierarchyData?.breadcrumbs && hierarchyData.breadcrumbs.length > 0 ? hierarchyData.breadcrumbs[hierarchyData.breadcrumbs.length - 1].title : undefined;
97
+ useEffect(() => {
98
+ if (!isInDrawer) {
99
+ // Breadcrumbs exclude the last item (current item) since it's shown in the header
100
+ const ancestorBreadcrumbs = hierarchyData?.breadcrumbs?.slice(0, -1) || [];
101
+ const baseLabel = {
102
+ label: /*#__PURE__*/_jsxs("div", {
103
+ className: `${baseClass}__step-nav-icon-label`,
104
+ children: [HierarchyIcon || /*#__PURE__*/_jsx(TagIcon, {
105
+ color: "muted"
106
+ }), collectionLabel]
107
+ }),
108
+ url: parent?.id ? formatAdminURL({
109
+ adminRoute,
110
+ path: `/collections/${collectionSlug}`
111
+ }) : undefined
112
+ };
113
+ let navItems = [baseLabel];
114
+ if (ancestorBreadcrumbs.length > 0) {
115
+ const hierarchyBreadcrumbs = ancestorBreadcrumbs.map(crumb => ({
116
+ label: crumb.title,
117
+ url: formatAdminURL({
118
+ adminRoute,
119
+ path: `/collections/${collectionSlug}?parent=${crumb.id}`
120
+ })
121
+ }));
122
+ navItems = [...navItems, ...hierarchyBreadcrumbs];
123
+ }
124
+ setStepNav(navItems);
125
+ }
126
+ }, [adminRoute, setStepNav, isInDrawer, collectionSlug, hierarchyData, collectionLabel, currentItemTitle, parent, HierarchyIcon]);
127
+ const hierarchyConfig = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
128
+ const parentFieldName = hierarchyConfig?.parentFieldName;
129
+ const parentId = hierarchyData?.parentId ?? null;
130
+ // Build collections array for create button
131
+ // Filter by allowedCollections when set (from parent's collectionSpecific field)
132
+ const {
133
+ allowedCollections
134
+ } = hierarchyData || {};
135
+ const collections = [];
136
+ // Add hierarchy collection (always allowed for creating child hierarchy items)
137
+ // Include parent's collectionSpecific values so new folders inherit the restriction
138
+ const hierarchyInitialData = {};
139
+ if (parentId !== null) {
140
+ hierarchyInitialData[parentFieldName] = parentId;
141
+ const collectionSpecificFieldName = hierarchyConfig?.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object' ? hierarchyConfig.collectionSpecific.fieldName : undefined;
142
+ const parentCollectionSpecificValues = collectionSpecificFieldName ? parent?.[collectionSpecificFieldName] : undefined;
143
+ if (collectionSpecificFieldName && parentCollectionSpecificValues && parentCollectionSpecificValues.length > 0) {
144
+ hierarchyInitialData[collectionSpecificFieldName] = parentCollectionSpecificValues;
145
+ }
146
+ }
147
+ collections.push({
148
+ collectionSlug,
149
+ initialData: Object.keys(hierarchyInitialData).length > 0 ? hierarchyInitialData : {}
150
+ });
151
+ // Add related collections (for creating documents that reference this hierarchy)
152
+ // Filter by allowedCollections when set
153
+ for (const [slug, relatedConfig] of Object.entries(hierarchyConfig?.relatedCollections || {})) {
154
+ // Skip if not in allowed list (when allowedCollections has restrictions)
155
+ // Empty array means "no restrictions" (folder accepts all types)
156
+ if (allowedCollections && allowedCollections.length > 0 && !allowedCollections.some(c => c.slug === slug)) {
157
+ continue;
158
+ }
159
+ // Use array for hasMany fields, single value for hasMany: false
160
+ const fieldValue = relatedConfig.hasMany ? [parentId] : parentId;
161
+ collections.push({
162
+ collectionSlug: slug,
163
+ initialData: parentId !== null ? {
164
+ [relatedConfig.fieldName]: fieldValue
165
+ } : {}
166
+ });
167
+ }
168
+ // Build type filter options from hierarchy collection + related collections
169
+ // Filter by allowedCollections when set
170
+ const typeOptions = useMemo(() => {
171
+ const options = [];
172
+ // Add related collections (filtered by allowedCollections when set)
173
+ for (const [slug_0] of Object.entries(hierarchyConfig?.relatedCollections || {})) {
174
+ // Skip if not in allowed list (when allowedCollections has restrictions)
175
+ // Empty array means "no restrictions" (folder accepts all types)
176
+ if (allowedCollections && allowedCollections.length > 0 && !allowedCollections.some(c_0 => c_0.slug === slug_0)) {
177
+ continue;
178
+ }
179
+ const config = getEntityConfig({
180
+ collectionSlug: slug_0
181
+ });
182
+ options.push({
183
+ label: getTranslation(config.labels?.plural, i18n),
184
+ value: slug_0
185
+ });
186
+ }
187
+ return options;
188
+ }, [allowedCollections, getEntityConfig, hierarchyConfig?.relatedCollections, i18n]);
189
+ // Get type filter from URL params (comma-separated list)
190
+ const typeFilterFromURL = searchParams.get('typeFilter');
191
+ const typeFilterValues = typeFilterFromURL ? typeFilterFromURL.split(',') : null;
192
+ // Track selected types (default: from URL or all selected)
193
+ const [selectedTypes, setSelectedTypes] = useState(() => typeFilterValues || typeOptions.map(opt => opt.value));
194
+ // Update URL when type filter changes
195
+ const handleTypeFilterChange = useCallback(values => {
196
+ setSelectedTypes(values);
197
+ // Build new URL with updated typeFilter param
198
+ const currentParams_0 = {};
199
+ searchParams.forEach((v_0, k_0) => {
200
+ currentParams_0[k_0] = v_0;
201
+ });
202
+ // Only add typeFilter if not all types are selected
203
+ const allSelected = values.length === typeOptions.length;
204
+ if (!allSelected && values.length > 0) {
205
+ currentParams_0.typeFilter = values.join(',');
206
+ } else {
207
+ delete currentParams_0.typeFilter;
208
+ }
209
+ const queryString_0 = qs.stringify(currentParams_0, {
210
+ addQueryPrefix: true
211
+ });
212
+ const newUrl_0 = `${window.location.pathname}${queryString_0}`;
213
+ if (window.location.search !== queryString_0) {
214
+ startRouteTransition(() => router.replace(newUrl_0));
215
+ }
216
+ }, [router, searchParams, startRouteTransition, typeOptions.length]);
217
+ // Filter children based on selected types (client-side for immediate feedback)
218
+ // Server already filters, but this handles the hierarchy collection toggle
219
+ const filteredChildrenData = useMemo(() => {
220
+ if (!hierarchyData?.childrenData) {
221
+ return undefined;
222
+ }
223
+ return hierarchyData.childrenData;
224
+ }, [hierarchyData?.childrenData]);
225
+ // Filter related groups based on selected types
226
+ const filteredRelatedGroups = useMemo(() => {
227
+ return Object.entries(hierarchyData?.relatedDocumentsByCollection || {}).filter(([slug_1]) => selectedTypes.includes(slug_1)).map(([slug_2, related]) => ({
228
+ collectionSlug: slug_2,
229
+ data: related.result,
230
+ hasMany: related.hasMany,
231
+ label: related.label
232
+ }));
233
+ }, [hierarchyData?.relatedDocumentsByCollection, selectedTypes]);
234
+ const collectionData = hierarchyData ? {
235
+ [collectionSlug]: {
236
+ docs: hierarchyData.childrenData.docs
237
+ },
238
+ ...Object.fromEntries(Object.entries(hierarchyData.relatedDocumentsByCollection || {}).map(([slug_3, related_0]) => [slug_3, {
239
+ docs: related_0.result.docs
240
+ }]))
241
+ } : {};
242
+ return /*#__PURE__*/_jsx(Fragment, {
243
+ children: /*#__PURE__*/_jsxs("div", {
244
+ className: `${baseClass} ${baseClass}--${collectionSlug}`,
245
+ children: [BeforeList, /*#__PURE__*/_jsx(DocumentSelectionProvider, {
246
+ collectionData: collectionData,
247
+ children: /*#__PURE__*/_jsxs(Gutter, {
248
+ className: `${baseClass}__wrap`,
249
+ children: [/*#__PURE__*/_jsx(HierarchyListHeader, {
250
+ collectionConfig: collectionConfig,
251
+ collections: collections,
252
+ currentItemTitle: currentItemTitle,
253
+ Description: /*#__PURE__*/_jsxs(React.Fragment, {
254
+ children: [hierarchyData.allowedCollections && hierarchyData.allowedCollections.length > 0 && /*#__PURE__*/_jsxs("div", {
255
+ className: `${baseClass}__allowed-types`,
256
+ children: [t('general:accepts'), ":", ' ', hierarchyData.allowedCollections.map(c_1 => c_1.label).join(', ')]
257
+ }), Description || collectionConfig?.admin?.description ? /*#__PURE__*/_jsx("div", {
258
+ className: `${baseClass}__sub-header`,
259
+ children: /*#__PURE__*/_jsx(RenderCustomComponent, {
260
+ CustomComponent: Description,
261
+ Fallback: /*#__PURE__*/_jsx(ViewDescription, {
262
+ collectionSlug: collectionSlug,
263
+ description: collectionConfig?.admin?.description
264
+ })
265
+ })
266
+ }) : null]
267
+ }),
268
+ hasCreatePermission: hasCreatePermission,
269
+ HierarchyIcon: HierarchyIcon,
270
+ i18n: i18n
271
+ }), /*#__PURE__*/_jsx("div", {
272
+ className: `${baseClass}__controls`,
273
+ children: /*#__PURE__*/_jsx(SearchBar, {
274
+ Actions: [/*#__PURE__*/_jsx(TypeFilter, {
275
+ i18n: i18n,
276
+ onChange: handleTypeFilterChange,
277
+ options: typeOptions,
278
+ selectedValues: selectedTypes
279
+ }, `type-filter-${hierarchyData.parent ? hierarchyData.parent.id : 'root'}`)],
280
+ label: t('general:searchBy', {
281
+ label: getTranslation(collectionConfig?.admin?.useAsTitle || 'id', i18n)
282
+ }),
283
+ onSearchChange: handleSearchChange,
284
+ searchQueryParam: searchFromURL
285
+ })
286
+ }), /*#__PURE__*/_jsx(HierarchyTable, {
287
+ baseFilter: baseFilter,
288
+ childrenData: filteredChildrenData,
289
+ collections: collections,
290
+ collectionSlug: collectionSlug,
291
+ hasCreatePermission: hasCreatePermission,
292
+ HierarchyIcon: HierarchyIcon,
293
+ hierarchyLabel: collectionLabel,
294
+ parentFieldName: parentFieldName,
295
+ parentId: parentId,
296
+ relatedGroups: filteredRelatedGroups,
297
+ search: searchFromURL,
298
+ useAsTitle: collectionConfig?.admin?.useAsTitle || 'id'
299
+ }, `${collectionSlug}-${parentId}-${searchFromURL}-${JSON.stringify(baseFilter)}-${filteredChildrenData?.totalDocs}-${Object.entries(hierarchyData?.relatedDocumentsByCollection || {}).map(([slug_4, r]) => `${slug_4}:${r.result.totalDocs}`).join(',')}`)]
300
+ })
301
+ }), AfterList]
302
+ })
303
+ });
304
+ }
305
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getTranslation","useRouter","useSearchParams","formatAdminURL","qs","React","Fragment","useCallback","useEffect","useMemo","useState","Gutter","useListDrawerContext","RenderCustomComponent","SearchBar","useStepNav","ViewDescription","TagIcon","useConfig","DocumentSelectionProvider","useHierarchy","useRouteTransition","useTranslation","HierarchyListHeader","HierarchyTable","TypeFilter","baseClass","HierarchyListView","props","AfterList","baseFilter","BeforeList","collectionSlug","Description","hasCreatePermission","hasCreatePermissionFromProps","hierarchyData","HierarchyIcon","router","searchParams","startRouteTransition","allowCreate","isInDrawer","undefined","config","routes","admin","adminRoute","getEntityConfig","collectionConfig","labels","i18n","t","collectionLabel","plural","setStepNav","parent","searchFromURL","get","handleSearchChange","value","currentParams","forEach","v","k","search","queryString","stringify","addQueryPrefix","newUrl","window","location","pathname","replace","currentItemTitle","breadcrumbs","length","title","ancestorBreadcrumbs","slice","baseLabel","label","_jsxs","className","_jsx","color","url","id","path","navItems","hierarchyBreadcrumbs","map","crumb","hierarchyConfig","hierarchy","parentFieldName","parentId","allowedCollections","collections","hierarchyInitialData","collectionSpecificFieldName","collectionSpecific","fieldName","parentCollectionSpecificValues","push","initialData","Object","keys","slug","relatedConfig","entries","relatedCollections","some","c","fieldValue","hasMany","typeOptions","options","typeFilterFromURL","typeFilterValues","split","selectedTypes","setSelectedTypes","opt","handleTypeFilterChange","values","allSelected","typeFilter","join","filteredChildrenData","childrenData","filteredRelatedGroups","relatedDocumentsByCollection","filter","includes","related","data","result","collectionData","docs","fromEntries","description","CustomComponent","Fallback","Actions","onChange","selectedValues","useAsTitle","onSearchChange","searchQueryParam","hierarchyLabel","relatedGroups","JSON","totalDocs","r"],"sources":["../../../src/views/HierarchyList/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ListViewClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { CollectionOption } from '../../elements/CreateDocumentButton/index.js'\nimport type { StepNavItem } from '../../elements/StepNav/index.js'\n\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { ViewDescription } from '../../elements/ViewDescription/index.js'\nimport { TagIcon } from '../../icons/Tag/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentSelectionProvider } from '../../providers/DocumentSelection/index.js'\nimport { useHierarchy } from '../../providers/Hierarchy/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { HierarchyListHeader } from './HierarchyListHeader/index.js'\nimport { HierarchyTable } from './HierarchyTable/index.js'\nimport { TypeFilter } from './TypeFilter/index.js'\nimport './index.scss'\n\nconst baseClass = 'hierarchy-list'\n\nexport function HierarchyListView(props: ListViewClientProps) {\n const {\n AfterList,\n baseFilter,\n BeforeList,\n collectionSlug,\n Description,\n hasCreatePermission: hasCreatePermissionFromProps,\n hierarchyData,\n HierarchyIcon,\n } = props\n\n const router = useRouter()\n const searchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n\n const { allowCreate, isInDrawer } = useListDrawerContext()\n\n const hasCreatePermission =\n allowCreate !== undefined\n ? allowCreate && hasCreatePermissionFromProps\n : hasCreatePermissionFromProps\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const { labels } = collectionConfig\n\n const { i18n, t } = useTranslation()\n const collectionLabel = getTranslation(labels?.plural, i18n)\n\n const { setStepNav } = useStepNav()\n const { parent } = useHierarchy()\n\n // Get search from URL params\n const searchFromURL = searchParams.get('search') || ''\n\n // Update URL when search changes (debouncing is handled by SearchFilter)\n // This triggers a server refetch via Next.js router\n const handleSearchChange = useCallback(\n (value: string) => {\n // Build new URL with updated search param\n const currentParams: Record<string, string> = {}\n searchParams.forEach((v, k) => {\n currentParams[k] = v\n })\n\n if (value) {\n currentParams.search = value\n } else {\n delete currentParams.search\n }\n\n const queryString = qs.stringify(currentParams, { addQueryPrefix: true })\n const newUrl = `${window.location.pathname}${queryString}`\n\n if (window.location.search !== queryString) {\n startRouteTransition(() => router.replace(newUrl))\n }\n },\n [router, searchParams, startRouteTransition],\n )\n\n // Get current item title from breadcrumbs (last item is the current one)\n const currentItemTitle =\n hierarchyData?.breadcrumbs && hierarchyData.breadcrumbs.length > 0\n ? hierarchyData.breadcrumbs[hierarchyData.breadcrumbs.length - 1].title\n : undefined\n\n useEffect(() => {\n if (!isInDrawer) {\n // Breadcrumbs exclude the last item (current item) since it's shown in the header\n const ancestorBreadcrumbs = hierarchyData?.breadcrumbs?.slice(0, -1) || []\n\n const baseLabel: StepNavItem = {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`}>\n {HierarchyIcon || <TagIcon color=\"muted\" />}\n {collectionLabel}\n </div>\n ),\n url: parent?.id\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n })\n : undefined,\n }\n\n let navItems = [baseLabel]\n\n if (ancestorBreadcrumbs.length > 0) {\n const hierarchyBreadcrumbs: StepNavItem[] = ancestorBreadcrumbs.map((crumb) => ({\n label: crumb.title,\n url: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?parent=${crumb.id}`,\n }),\n }))\n navItems = [...navItems, ...hierarchyBreadcrumbs]\n }\n\n setStepNav(navItems)\n }\n }, [\n adminRoute,\n setStepNav,\n isInDrawer,\n collectionSlug,\n hierarchyData,\n collectionLabel,\n currentItemTitle,\n parent,\n HierarchyIcon,\n ])\n\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const parentFieldName = hierarchyConfig?.parentFieldName\n const parentId = hierarchyData?.parentId ?? null\n\n // Build collections array for create button\n // Filter by allowedCollections when set (from parent's collectionSpecific field)\n const { allowedCollections } = hierarchyData || {}\n\n const collections: CollectionOption[] = []\n\n // Add hierarchy collection (always allowed for creating child hierarchy items)\n // Include parent's collectionSpecific values so new folders inherit the restriction\n const hierarchyInitialData: Record<string, unknown> = {}\n if (parentId !== null) {\n hierarchyInitialData[parentFieldName] = parentId\n\n const collectionSpecificFieldName =\n hierarchyConfig?.collectionSpecific && typeof hierarchyConfig.collectionSpecific === 'object'\n ? hierarchyConfig.collectionSpecific.fieldName\n : undefined\n const parentCollectionSpecificValues = collectionSpecificFieldName\n ? (parent?.[collectionSpecificFieldName] as string[] | undefined)\n : undefined\n if (\n collectionSpecificFieldName &&\n parentCollectionSpecificValues &&\n parentCollectionSpecificValues.length > 0\n ) {\n hierarchyInitialData[collectionSpecificFieldName] = parentCollectionSpecificValues\n }\n }\n\n collections.push({\n collectionSlug,\n initialData: Object.keys(hierarchyInitialData).length > 0 ? hierarchyInitialData : {},\n })\n\n // Add related collections (for creating documents that reference this hierarchy)\n // Filter by allowedCollections when set\n for (const [slug, relatedConfig] of Object.entries(hierarchyConfig?.relatedCollections || {})) {\n // Skip if not in allowed list (when allowedCollections has restrictions)\n // Empty array means \"no restrictions\" (folder accepts all types)\n if (\n allowedCollections &&\n allowedCollections.length > 0 &&\n !allowedCollections.some((c) => c.slug === slug)\n ) {\n continue\n }\n\n // Use array for hasMany fields, single value for hasMany: false\n const fieldValue = relatedConfig.hasMany ? [parentId] : parentId\n\n collections.push({\n collectionSlug: slug,\n initialData: parentId !== null ? { [relatedConfig.fieldName]: fieldValue } : {},\n })\n }\n\n // Build type filter options from hierarchy collection + related collections\n // Filter by allowedCollections when set\n const typeOptions = useMemo(() => {\n const options: { label: string; value: string }[] = []\n\n // Add related collections (filtered by allowedCollections when set)\n for (const [slug] of Object.entries(hierarchyConfig?.relatedCollections || {})) {\n // Skip if not in allowed list (when allowedCollections has restrictions)\n // Empty array means \"no restrictions\" (folder accepts all types)\n if (\n allowedCollections &&\n allowedCollections.length > 0 &&\n !allowedCollections.some((c) => c.slug === slug)\n ) {\n continue\n }\n\n const config = getEntityConfig({ collectionSlug: slug })\n options.push({\n label: getTranslation(config.labels?.plural, i18n),\n value: slug,\n })\n }\n\n return options\n }, [allowedCollections, getEntityConfig, hierarchyConfig?.relatedCollections, i18n])\n\n // Get type filter from URL params (comma-separated list)\n const typeFilterFromURL = searchParams.get('typeFilter')\n const typeFilterValues = typeFilterFromURL ? typeFilterFromURL.split(',') : null\n\n // Track selected types (default: from URL or all selected)\n const [selectedTypes, setSelectedTypes] = useState<string[]>(\n () => typeFilterValues || typeOptions.map((opt) => opt.value),\n )\n\n // Update URL when type filter changes\n const handleTypeFilterChange = useCallback(\n (values: string[]) => {\n setSelectedTypes(values)\n\n // Build new URL with updated typeFilter param\n const currentParams: Record<string, string> = {}\n searchParams.forEach((v, k) => {\n currentParams[k] = v\n })\n\n // Only add typeFilter if not all types are selected\n const allSelected = values.length === typeOptions.length\n if (!allSelected && values.length > 0) {\n currentParams.typeFilter = values.join(',')\n } else {\n delete currentParams.typeFilter\n }\n\n const queryString = qs.stringify(currentParams, { addQueryPrefix: true })\n const newUrl = `${window.location.pathname}${queryString}`\n\n if (window.location.search !== queryString) {\n startRouteTransition(() => router.replace(newUrl))\n }\n },\n [router, searchParams, startRouteTransition, typeOptions.length],\n )\n\n // Filter children based on selected types (client-side for immediate feedback)\n // Server already filters, but this handles the hierarchy collection toggle\n const filteredChildrenData = useMemo(() => {\n if (!hierarchyData?.childrenData) {\n return undefined\n }\n return hierarchyData.childrenData\n }, [hierarchyData?.childrenData])\n\n // Filter related groups based on selected types\n const filteredRelatedGroups = useMemo(() => {\n return Object.entries(hierarchyData?.relatedDocumentsByCollection || {})\n .filter(([slug]) => selectedTypes.includes(slug))\n .map(([slug, related]) => ({\n collectionSlug: slug,\n data: related.result,\n hasMany: related.hasMany,\n label: related.label,\n }))\n }, [hierarchyData?.relatedDocumentsByCollection, selectedTypes])\n\n const collectionData = hierarchyData\n ? {\n [collectionSlug]: { docs: hierarchyData.childrenData.docs },\n ...Object.fromEntries(\n Object.entries(hierarchyData.relatedDocumentsByCollection || {}).map(\n ([slug, related]) => [slug, { docs: related.result.docs }],\n ),\n ),\n }\n : {}\n\n return (\n <Fragment>\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n {BeforeList}\n <DocumentSelectionProvider collectionData={collectionData}>\n <Gutter className={`${baseClass}__wrap`}>\n <HierarchyListHeader\n collectionConfig={collectionConfig}\n collections={collections}\n currentItemTitle={currentItemTitle}\n Description={\n <React.Fragment>\n {hierarchyData.allowedCollections &&\n hierarchyData.allowedCollections.length > 0 && (\n <div className={`${baseClass}__allowed-types`}>\n {t('general:accepts')}:{' '}\n {hierarchyData.allowedCollections.map((c) => c.label).join(', ')}\n </div>\n )}\n {Description || collectionConfig?.admin?.description ? (\n <div className={`${baseClass}__sub-header`}>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <ViewDescription\n collectionSlug={collectionSlug}\n description={collectionConfig?.admin?.description}\n />\n }\n />\n </div>\n ) : null}\n </React.Fragment>\n }\n hasCreatePermission={hasCreatePermission}\n HierarchyIcon={HierarchyIcon}\n i18n={i18n}\n />\n\n <div className={`${baseClass}__controls`}>\n <SearchBar\n Actions={[\n <TypeFilter\n i18n={i18n}\n key={`type-filter-${hierarchyData.parent ? hierarchyData.parent.id : 'root'}`}\n onChange={handleTypeFilterChange}\n options={typeOptions}\n selectedValues={selectedTypes}\n />,\n ]}\n label={t('general:searchBy', {\n label: getTranslation(collectionConfig?.admin?.useAsTitle || 'id', i18n),\n })}\n onSearchChange={handleSearchChange}\n searchQueryParam={searchFromURL}\n />\n </div>\n\n <HierarchyTable\n baseFilter={baseFilter}\n childrenData={filteredChildrenData}\n collections={collections}\n collectionSlug={collectionSlug}\n hasCreatePermission={hasCreatePermission}\n HierarchyIcon={HierarchyIcon}\n hierarchyLabel={collectionLabel}\n key={`${collectionSlug}-${parentId}-${searchFromURL}-${JSON.stringify(baseFilter)}-${filteredChildrenData?.totalDocs}-${Object.entries(\n hierarchyData?.relatedDocumentsByCollection || {},\n )\n .map(([slug, r]) => `${slug}:${r.result.totalDocs}`)\n .join(',')}`}\n parentFieldName={parentFieldName}\n parentId={parentId}\n relatedGroups={filteredRelatedGroups}\n search={searchFromURL}\n useAsTitle={collectionConfig?.admin?.useAsTitle || 'id'}\n />\n </Gutter>\n </DocumentSelectionProvider>\n {AfterList}\n </div>\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAK3E,SAASC,MAAM,QAAQ;AACvB,SAASC,oBAAoB,QAAQ;AACrC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,SAAS,QAAQ;AAC1B,SAASC,UAAU,QAAQ;AAC3B,SAASC,eAAe,QAAQ;AAChC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,mBAAmB,QAAQ;AACpC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAASC,kBAAkBC,KAA0B;EAC1D,MAAM;IACJC,SAAS;IACTC,UAAU;IACVC,UAAU;IACVC,cAAc;IACdC,WAAW;IACXC,mBAAA,EAAqBC,4BAA4B;IACjDC,aAAa;IACbC;EAAa,CACd,GAAGT,KAAA;EAEJ,MAAMU,MAAA,GAASrC,SAAA;EACf,MAAMsC,YAAA,GAAerC,eAAA;EACrB,MAAM;IAAEsC;EAAoB,CAAE,GAAGnB,kBAAA;EAEjC,MAAM;IAAEoB,WAAW;IAAEC;EAAU,CAAE,GAAG9B,oBAAA;EAEpC,MAAMsB,mBAAA,GACJO,WAAA,KAAgBE,SAAA,GACZF,WAAA,IAAeN,4BAAA,GACfA,4BAAA;EAEN,MAAM;IACJS,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,KAAA,EAAOC;MAAU;IAAE,CAC9B;IACDC;EAAe,CAChB,GAAG9B,SAAA;EAEJ,MAAM+B,gBAAA,GAAmBD,eAAA,CAAgB;IAAEhB;EAAe;EAC1D,MAAM;IAAEkB;EAAM,CAAE,GAAGD,gBAAA;EAEnB,MAAM;IAAEE,IAAI;IAAEC;EAAC,CAAE,GAAG9B,cAAA;EACpB,MAAM+B,eAAA,GAAkBrD,cAAA,CAAekD,MAAA,EAAQI,MAAA,EAAQH,IAAA;EAEvD,MAAM;IAAEI;EAAU,CAAE,GAAGxC,UAAA;EACvB,MAAM;IAAEyC;EAAM,CAAE,GAAGpC,YAAA;EAEnB;EACA,MAAMqC,aAAA,GAAgBlB,YAAA,CAAamB,GAAG,CAAC,aAAa;EAEpD;EACA;EACA,MAAMC,kBAAA,GAAqBpD,WAAA,CACxBqD,KAAA;IACC;IACA,MAAMC,aAAA,GAAwC,CAAC;IAC/CtB,YAAA,CAAauB,OAAO,CAAC,CAACC,CAAA,EAAGC,CAAA;MACvBH,aAAa,CAACG,CAAA,CAAE,GAAGD,CAAA;IACrB;IAEA,IAAIH,KAAA,EAAO;MACTC,aAAA,CAAcI,MAAM,GAAGL,KAAA;IACzB,OAAO;MACL,OAAOC,aAAA,CAAcI,MAAM;IAC7B;IAEA,MAAMC,WAAA,GAAc9D,EAAA,CAAG+D,SAAS,CAACN,aAAA,EAAe;MAAEO,cAAA,EAAgB;IAAK;IACvE,MAAMC,MAAA,GAAS,GAAGC,MAAA,CAAOC,QAAQ,CAACC,QAAQ,GAAGN,WAAA,EAAa;IAE1D,IAAII,MAAA,CAAOC,QAAQ,CAACN,MAAM,KAAKC,WAAA,EAAa;MAC1C1B,oBAAA,CAAqB,MAAMF,MAAA,CAAOmC,OAAO,CAACJ,MAAA;IAC5C;EACF,GACA,CAAC/B,MAAA,EAAQC,YAAA,EAAcC,oBAAA,CAAqB;EAG9C;EACA,MAAMkC,gBAAA,GACJtC,aAAA,EAAeuC,WAAA,IAAevC,aAAA,CAAcuC,WAAW,CAACC,MAAM,GAAG,IAC7DxC,aAAA,CAAcuC,WAAW,CAACvC,aAAA,CAAcuC,WAAW,CAACC,MAAM,GAAG,EAAE,CAACC,KAAK,GACrElC,SAAA;EAENnC,SAAA,CAAU;IACR,IAAI,CAACkC,UAAA,EAAY;MACf;MACA,MAAMoC,mBAAA,GAAsB1C,aAAA,EAAeuC,WAAA,EAAaI,KAAA,CAAM,GAAG,CAAC,MAAM,EAAE;MAE1E,MAAMC,SAAA,GAAyB;QAC7BC,KAAA,eACEC,KAAA,CAAC;UAAIC,SAAA,EAAW,GAAGzD,SAAA,uBAAgC;qBAChDW,aAAA,iBAAiB+C,IAAA,CAACnE,OAAA;YAAQoE,KAAA,EAAM;cAChChC,eAAA;;QAGLiC,GAAA,EAAK9B,MAAA,EAAQ+B,EAAA,GACTpF,cAAA,CAAe;UACb4C,UAAA;UACAyC,IAAA,EAAM,gBAAgBxD,cAAA;QACxB,KACAW;MACN;MAEA,IAAI8C,QAAA,GAAW,CAACT,SAAA,CAAU;MAE1B,IAAIF,mBAAA,CAAoBF,MAAM,GAAG,GAAG;QAClC,MAAMc,oBAAA,GAAsCZ,mBAAA,CAAoBa,GAAG,CAAEC,KAAA,KAAW;UAC9EX,KAAA,EAAOW,KAAA,CAAMf,KAAK;UAClBS,GAAA,EAAKnF,cAAA,CAAe;YAClB4C,UAAA;YACAyC,IAAA,EAAM,gBAAgBxD,cAAA,WAAyB4D,KAAA,CAAML,EAAE;UACzD;QACF;QACAE,QAAA,GAAW,C,GAAIA,QAAA,E,GAAaC,oBAAA,CAAqB;MACnD;MAEAnC,UAAA,CAAWkC,QAAA;IACb;EACF,GAAG,CACD1C,UAAA,EACAQ,UAAA,EACAb,UAAA,EACAV,cAAA,EACAI,aAAA,EACAiB,eAAA,EACAqB,gBAAA,EACAlB,MAAA,EACAnB,aAAA,CACD;EAED,MAAMwD,eAAA,GACJ5C,gBAAA,EAAkB6C,SAAA,IAAa,OAAO7C,gBAAA,CAAiB6C,SAAS,KAAK,WACjE7C,gBAAA,CAAiB6C,SAAS,GAC1BnD,SAAA;EACN,MAAMoD,eAAA,GAAkBF,eAAA,EAAiBE,eAAA;EACzC,MAAMC,QAAA,GAAW5D,aAAA,EAAe4D,QAAA,IAAY;EAE5C;EACA;EACA,MAAM;IAAEC;EAAkB,CAAE,GAAG7D,aAAA,IAAiB,CAAC;EAEjD,MAAM8D,WAAA,GAAkC,EAAE;EAE1C;EACA;EACA,MAAMC,oBAAA,GAAgD,CAAC;EACvD,IAAIH,QAAA,KAAa,MAAM;IACrBG,oBAAoB,CAACJ,eAAA,CAAgB,GAAGC,QAAA;IAExC,MAAMI,2BAAA,GACJP,eAAA,EAAiBQ,kBAAA,IAAsB,OAAOR,eAAA,CAAgBQ,kBAAkB,KAAK,WACjFR,eAAA,CAAgBQ,kBAAkB,CAACC,SAAS,GAC5C3D,SAAA;IACN,MAAM4D,8BAAA,GAAiCH,2BAAA,GAClC5C,MAAA,GAAS4C,2BAAA,CAA4B,GACtCzD,SAAA;IACJ,IACEyD,2BAAA,IACAG,8BAAA,IACAA,8BAAA,CAA+B3B,MAAM,GAAG,GACxC;MACAuB,oBAAoB,CAACC,2BAAA,CAA4B,GAAGG,8BAAA;IACtD;EACF;EAEAL,WAAA,CAAYM,IAAI,CAAC;IACfxE,cAAA;IACAyE,WAAA,EAAaC,MAAA,CAAOC,IAAI,CAACR,oBAAA,EAAsBvB,MAAM,GAAG,IAAIuB,oBAAA,GAAuB,CAAC;EACtF;EAEA;EACA;EACA,KAAK,MAAM,CAACS,IAAA,EAAMC,aAAA,CAAc,IAAIH,MAAA,CAAOI,OAAO,CAACjB,eAAA,EAAiBkB,kBAAA,IAAsB,CAAC,IAAI;IAC7F;IACA;IACA,IACEd,kBAAA,IACAA,kBAAA,CAAmBrB,MAAM,GAAG,KAC5B,CAACqB,kBAAA,CAAmBe,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEL,IAAI,KAAKA,IAAA,GAC3C;MACA;IACF;IAEA;IACA,MAAMM,UAAA,GAAaL,aAAA,CAAcM,OAAO,GAAG,CAACnB,QAAA,CAAS,GAAGA,QAAA;IAExDE,WAAA,CAAYM,IAAI,CAAC;MACfxE,cAAA,EAAgB4E,IAAA;MAChBH,WAAA,EAAaT,QAAA,KAAa,OAAO;QAAE,CAACa,aAAA,CAAcP,SAAS,GAAGY;MAAW,IAAI,CAAC;IAChF;EACF;EAEA;EACA;EACA,MAAME,WAAA,GAAc3G,OAAA,CAAQ;IAC1B,MAAM4G,OAAA,GAA8C,EAAE;IAEtD;IACA,KAAK,MAAM,CAACT,MAAA,CAAK,IAAIF,MAAA,CAAOI,OAAO,CAACjB,eAAA,EAAiBkB,kBAAA,IAAsB,CAAC,IAAI;MAC9E;MACA;MACA,IACEd,kBAAA,IACAA,kBAAA,CAAmBrB,MAAM,GAAG,KAC5B,CAACqB,kBAAA,CAAmBe,IAAI,CAAEC,GAAA,IAAMA,GAAA,CAAEL,IAAI,KAAKA,MAAA,GAC3C;QACA;MACF;MAEA,MAAMhE,MAAA,GAASI,eAAA,CAAgB;QAAEhB,cAAA,EAAgB4E;MAAK;MACtDS,OAAA,CAAQb,IAAI,CAAC;QACXvB,KAAA,EAAOjF,cAAA,CAAe4C,MAAA,CAAOM,MAAM,EAAEI,MAAA,EAAQH,IAAA;QAC7CS,KAAA,EAAOgD;MACT;IACF;IAEA,OAAOS,OAAA;EACT,GAAG,CAACpB,kBAAA,EAAoBjD,eAAA,EAAiB6C,eAAA,EAAiBkB,kBAAA,EAAoB5D,IAAA,CAAK;EAEnF;EACA,MAAMmE,iBAAA,GAAoB/E,YAAA,CAAamB,GAAG,CAAC;EAC3C,MAAM6D,gBAAA,GAAmBD,iBAAA,GAAoBA,iBAAA,CAAkBE,KAAK,CAAC,OAAO;EAE5E;EACA,MAAM,CAACC,aAAA,EAAeC,gBAAA,CAAiB,GAAGhH,QAAA,CACxC,MAAM6G,gBAAA,IAAoBH,WAAA,CAAYzB,GAAG,CAAEgC,GAAA,IAAQA,GAAA,CAAI/D,KAAK;EAG9D;EACA,MAAMgE,sBAAA,GAAyBrH,WAAA,CAC5BsH,MAAA;IACCH,gBAAA,CAAiBG,MAAA;IAEjB;IACA,MAAMhE,eAAA,GAAwC,CAAC;IAC/CtB,YAAA,CAAauB,OAAO,CAAC,CAACC,GAAA,EAAGC,GAAA;MACvBH,eAAa,CAACG,GAAA,CAAE,GAAGD,GAAA;IACrB;IAEA;IACA,MAAM+D,WAAA,GAAcD,MAAA,CAAOjD,MAAM,KAAKwC,WAAA,CAAYxC,MAAM;IACxD,IAAI,CAACkD,WAAA,IAAeD,MAAA,CAAOjD,MAAM,GAAG,GAAG;MACrCf,eAAA,CAAckE,UAAU,GAAGF,MAAA,CAAOG,IAAI,CAAC;IACzC,OAAO;MACL,OAAOnE,eAAA,CAAckE,UAAU;IACjC;IAEA,MAAM7D,aAAA,GAAc9D,EAAA,CAAG+D,SAAS,CAACN,eAAA,EAAe;MAAEO,cAAA,EAAgB;IAAK;IACvE,MAAMC,QAAA,GAAS,GAAGC,MAAA,CAAOC,QAAQ,CAACC,QAAQ,GAAGN,aAAA,EAAa;IAE1D,IAAII,MAAA,CAAOC,QAAQ,CAACN,MAAM,KAAKC,aAAA,EAAa;MAC1C1B,oBAAA,CAAqB,MAAMF,MAAA,CAAOmC,OAAO,CAACJ,QAAA;IAC5C;EACF,GACA,CAAC/B,MAAA,EAAQC,YAAA,EAAcC,oBAAA,EAAsB4E,WAAA,CAAYxC,MAAM,CAAC;EAGlE;EACA;EACA,MAAMqD,oBAAA,GAAuBxH,OAAA,CAAQ;IACnC,IAAI,CAAC2B,aAAA,EAAe8F,YAAA,EAAc;MAChC,OAAOvF,SAAA;IACT;IACA,OAAOP,aAAA,CAAc8F,YAAY;EACnC,GAAG,CAAC9F,aAAA,EAAe8F,YAAA,CAAa;EAEhC;EACA,MAAMC,qBAAA,GAAwB1H,OAAA,CAAQ;IACpC,OAAOiG,MAAA,CAAOI,OAAO,CAAC1E,aAAA,EAAegG,4BAAA,IAAgC,CAAC,GACnEC,MAAM,CAAC,CAAC,CAACzB,MAAA,CAAK,KAAKa,aAAA,CAAca,QAAQ,CAAC1B,MAAA,GAC1CjB,GAAG,CAAC,CAAC,CAACiB,MAAA,EAAM2B,OAAA,CAAQ,MAAM;MACzBvG,cAAA,EAAgB4E,MAAA;MAChB4B,IAAA,EAAMD,OAAA,CAAQE,MAAM;MACpBtB,OAAA,EAASoB,OAAA,CAAQpB,OAAO;MACxBlC,KAAA,EAAOsD,OAAA,CAAQtD;IACjB;EACJ,GAAG,CAAC7C,aAAA,EAAegG,4BAAA,EAA8BX,aAAA,CAAc;EAE/D,MAAMiB,cAAA,GAAiBtG,aAAA,GACnB;IACE,CAACJ,cAAA,GAAiB;MAAE2G,IAAA,EAAMvG,aAAA,CAAc8F,YAAY,CAACS;IAAK;IAC1D,GAAGjC,MAAA,CAAOkC,WAAW,CACnBlC,MAAA,CAAOI,OAAO,CAAC1E,aAAA,CAAcgG,4BAA4B,IAAI,CAAC,GAAGzC,GAAG,CAClE,CAAC,CAACiB,MAAA,EAAM2B,SAAA,CAAQ,KAAK,CAAC3B,MAAA,EAAM;MAAE+B,IAAA,EAAMJ,SAAA,CAAQE,MAAM,CAACE;IAAK,EAAE;EAGhE,IACA,CAAC;EAEL,oBACEvD,IAAA,CAAC9E,QAAA;cACC,aAAA4E,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAGzD,SAAA,IAAaA,SAAA,KAAcM,cAAA,EAAgB;iBAC3DD,UAAA,E,aACDqD,IAAA,CAACjE,yBAAA;QAA0BuH,cAAA,EAAgBA,cAAA;kBACzC,aAAAxD,KAAA,CAACvE,MAAA;UAAOwE,SAAA,EAAW,GAAGzD,SAAA,QAAiB;kCACrC0D,IAAA,CAAC7D,mBAAA;YACC0B,gBAAA,EAAkBA,gBAAA;YAClBiD,WAAA,EAAaA,WAAA;YACbxB,gBAAA,EAAkBA,gBAAA;YAClBzC,WAAA,eACEiD,KAAA,CAAC7E,KAAA,CAAMC,QAAQ;yBACZ8B,aAAA,CAAc6D,kBAAkB,IAC/B7D,aAAA,CAAc6D,kBAAkB,CAACrB,MAAM,GAAG,kBACxCM,KAAA,CAAC;gBAAIC,SAAA,EAAW,GAAGzD,SAAA,iBAA0B;2BAC1C0B,CAAA,CAAE,oBAAmB,KAAE,KACvBhB,aAAA,CAAc6D,kBAAkB,CAACN,GAAG,CAAEsB,GAAA,IAAMA,GAAA,CAAEhC,KAAK,EAAE+C,IAAI,CAAC;kBAGhE/F,WAAA,IAAegB,gBAAA,EAAkBH,KAAA,EAAO+F,WAAA,gBACvCzD,IAAA,CAAC;gBAAID,SAAA,EAAW,GAAGzD,SAAA,cAAuB;0BACxC,aAAA0D,IAAA,CAACvE,qBAAA;kBACCiI,eAAA,EAAiB7G,WAAA;kBACjB8G,QAAA,eACE3D,IAAA,CAACpE,eAAA;oBACCgB,cAAA,EAAgBA,cAAA;oBAChB6G,WAAA,EAAa5F,gBAAA,EAAkBH,KAAA,EAAO+F;;;mBAK5C;;YAGR3G,mBAAA,EAAqBA,mBAAA;YACrBG,aAAA,EAAeA,aAAA;YACfc,IAAA,EAAMA;2BAGRiC,IAAA,CAAC;YAAID,SAAA,EAAW,GAAGzD,SAAA,YAAqB;sBACtC,aAAA0D,IAAA,CAACtE,SAAA;cACCkI,OAAA,EAAS,C,aACP5D,IAAA,CAAC3D,UAAA;gBACC0B,IAAA,EAAMA,IAAA;gBAEN8F,QAAA,EAAUrB,sBAAA;gBACVP,OAAA,EAASD,WAAA;gBACT8B,cAAA,EAAgBzB;iBAHX,eAAerF,aAAA,CAAcoB,MAAM,GAAGpB,aAAA,CAAcoB,MAAM,CAAC+B,EAAE,GAAG,QAAQ,EAKhF;cACDN,KAAA,EAAO7B,CAAA,CAAE,oBAAoB;gBAC3B6B,KAAA,EAAOjF,cAAA,CAAeiD,gBAAA,EAAkBH,KAAA,EAAOqG,UAAA,IAAc,MAAMhG,IAAA;cACrE;cACAiG,cAAA,EAAgBzF,kBAAA;cAChB0F,gBAAA,EAAkB5F;;2BAItB2B,IAAA,CAAC5D,cAAA;YACCM,UAAA,EAAYA,UAAA;YACZoG,YAAA,EAAcD,oBAAA;YACd/B,WAAA,EAAaA,WAAA;YACblE,cAAA,EAAgBA,cAAA;YAChBE,mBAAA,EAAqBA,mBAAA;YACrBG,aAAA,EAAeA,aAAA;YACfiH,cAAA,EAAgBjG,eAAA;YAMhB0C,eAAA,EAAiBA,eAAA;YACjBC,QAAA,EAAUA,QAAA;YACVuD,aAAA,EAAepB,qBAAA;YACflE,MAAA,EAAQR,aAAA;YACR0F,UAAA,EAAYlG,gBAAA,EAAkBH,KAAA,EAAOqG,UAAA,IAAc;aAT9C,GAAGnH,cAAA,IAAkBgE,QAAA,IAAYvC,aAAA,IAAiB+F,IAAA,CAAKrF,SAAS,CAACrC,UAAA,KAAemG,oBAAA,EAAsBwB,SAAA,IAAa/C,MAAA,CAAOI,OAAO,CACpI1E,aAAA,EAAegG,4BAAA,IAAgC,CAAC,GAE/CzC,GAAG,CAAC,CAAC,CAACiB,MAAA,EAAM8C,CAAA,CAAE,KAAK,GAAG9C,MAAA,IAAQ8C,CAAA,CAAEjB,MAAM,CAACgB,SAAS,EAAE,EAClDzB,IAAI,CAAC,MAAM;;UASnBnG,SAAA;;;AAIT","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .hierarchy-list {
5
+ width: 100%;
6
+
7
+ &__wrap {
8
+ padding-bottom: var(--spacing-view-bottom);
9
+
10
+ & > *:not(:last-child) {
11
+ margin-bottom: var(--base);
12
+ }
13
+ }
14
+
15
+ .list-header {
16
+ a {
17
+ text-decoration: none;
18
+ }
19
+ }
20
+
21
+ &__allowed-types {
22
+ color: var(--theme-elevation-500);
23
+ padding-top: calc(var(--base) * 0.2);
24
+ }
25
+
26
+ &__sub-header {
27
+ flex-basis: 100%;
28
+ padding-top: calc(var(--base) * 0.75);
29
+ }
30
+
31
+ &__step-nav-icon-label {
32
+ margin: 0;
33
+ display: flex;
34
+ align-items: center;
35
+ gap: calc(var(--base) * 0.25);
36
+
37
+ .icon {
38
+ height: 18px;
39
+ }
40
+ }
41
+
42
+ &__controls {
43
+ display: flex;
44
+ gap: var(--spacing-sm);
45
+ align-items: center;
46
+ }
47
+
48
+ &__no-results {
49
+ display: flex;
50
+ flex-direction: column;
51
+ align-items: flex-start;
52
+ gap: var(--base);
53
+
54
+ & > * {
55
+ margin: 0;
56
+ }
57
+ }
58
+
59
+ @include mid-break {
60
+ margin-top: base(0.25);
61
+
62
+ &__wrap {
63
+ padding-top: 0;
64
+ padding-bottom: 0;
65
+ }
66
+
67
+ &__sub-header {
68
+ margin-top: 0;
69
+ }
70
+ }
71
+ }
72
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAyBlD,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBAyQzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAA8B,MAAM,OAAO,CAAA;AA4BlD,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBA+TzD"}
@@ -21,12 +21,15 @@ import { RelationshipProvider } from '../../elements/Table/RelationshipProvider/
21
21
  import { ViewDescription } from '../../elements/ViewDescription/index.js';
22
22
  import { useControllableState } from '../../hooks/useControllableState.js';
23
23
  import { useConfig } from '../../providers/Config/index.js';
24
+ import { DocumentSelectionProvider } from '../../providers/DocumentSelection/index.js';
24
25
  import { useListQuery } from '../../providers/ListQuery/index.js';
25
26
  import { SelectionProvider } from '../../providers/Selection/index.js';
26
27
  import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
27
28
  import { useTranslation } from '../../providers/Translation/index.js';
28
29
  import { useWindowInfo } from '../../providers/WindowInfo/index.js';
29
30
  import { ListSelection } from '../../views/List/ListSelection/index.js';
31
+ import { DocumentListSelection } from '../HierarchyList/DocumentListSelection/index.js';
32
+ import { HierarchyTable } from '../HierarchyList/HierarchyTable/index.js';
30
33
  import { CollectionListHeader } from './ListHeader/index.js';
31
34
  import './index.scss';
32
35
  const baseClass = 'collection-list';
@@ -47,6 +50,7 @@ export function DefaultListView(props) {
47
50
  hasCreatePermission: hasCreatePermissionFromProps,
48
51
  hasDeletePermission,
49
52
  hasTrashPermission,
53
+ hierarchyData,
50
54
  listMenuItems,
51
55
  newDocumentURL,
52
56
  queryPreset,
@@ -99,6 +103,7 @@ export function DefaultListView(props) {
99
103
  const {
100
104
  i18n
101
105
  } = useTranslation();
106
+ const collectionLabel = getTranslation(labels?.plural, i18n);
102
107
  const {
103
108
  setStepNav
104
109
  } = useStepNav();
@@ -127,8 +132,8 @@ export function DefaultListView(props) {
127
132
  useEffect(() => {
128
133
  if (!isInDrawer) {
129
134
  const baseLabel = {
130
- label: getTranslation(labels?.plural, i18n),
131
- url: isTrashEnabled && viewType === 'trash' ? formatAdminURL({
135
+ label: collectionLabel,
136
+ url: hierarchyData || isTrashEnabled && viewType === 'trash' ? formatAdminURL({
132
137
  adminRoute,
133
138
  path: `/collections/${collectionSlug}`
134
139
  }) : undefined
@@ -136,10 +141,24 @@ export function DefaultListView(props) {
136
141
  const trashLabel = {
137
142
  label: i18n.t('general:trash')
138
143
  };
139
- const navItems = isTrashEnabled && viewType === 'trash' ? [baseLabel, trashLabel] : [baseLabel];
144
+ let navItems = isTrashEnabled && viewType === 'trash' ? [baseLabel, trashLabel] : [baseLabel];
145
+ // Add hierarchy breadcrumbs
146
+ if (hierarchyData?.breadcrumbs) {
147
+ const hierarchyBreadcrumbs = hierarchyData.breadcrumbs.map((crumb, index) => {
148
+ const isLast = index === hierarchyData.breadcrumbs.length - 1;
149
+ return {
150
+ label: crumb.title,
151
+ url: isLast ? undefined : formatAdminURL({
152
+ adminRoute,
153
+ path: `/collections/${collectionSlug}?parent=${crumb.id}`
154
+ })
155
+ };
156
+ });
157
+ navItems = [...navItems, ...hierarchyBreadcrumbs];
158
+ }
140
159
  setStepNav(navItems);
141
160
  }
142
- }, [adminRoute, setStepNav, serverURL, labels, isInDrawer, isTrashEnabled, viewType, i18n, collectionSlug]);
161
+ }, [adminRoute, setStepNav, serverURL, labels, isInDrawer, isTrashEnabled, viewType, i18n, collectionSlug, hierarchyData, collectionLabel]);
143
162
  return /*#__PURE__*/_jsxs(Fragment, {
144
163
  children: [/*#__PURE__*/_jsx(TableColumnsProvider, {
145
164
  collectionSlug: collectionSlug,
@@ -189,12 +208,37 @@ export function DefaultListView(props) {
189
208
  queryPresetPermissions: queryPresetPermissions,
190
209
  renderedFilters: renderedFilters,
191
210
  resolvedFilterOptions: resolvedFilterOptions
192
- }), BeforeListTable, docs?.length > 0 && /*#__PURE__*/_jsx("div", {
211
+ }), BeforeListTable, hierarchyData ? /*#__PURE__*/_jsxs(DocumentSelectionProvider, {
212
+ collectionData: {
213
+ [collectionSlug]: {
214
+ docs: hierarchyData.childrenData.docs
215
+ },
216
+ ...Object.fromEntries(Object.entries(hierarchyData.relatedDocumentsByCollection).map(([slug, related]) => [slug, {
217
+ docs: related.result.docs
218
+ }]))
219
+ },
220
+ children: [/*#__PURE__*/_jsx(HierarchyTable, {
221
+ childrenData: hierarchyData.childrenData,
222
+ collectionSlug: collectionSlug,
223
+ hierarchyLabel: collectionLabel,
224
+ parentId: hierarchyData.parentId,
225
+ relatedGroups: Object.entries(hierarchyData.relatedDocumentsByCollection).map(([slug_0, related_0]) => ({
226
+ collectionSlug: slug_0,
227
+ data: related_0.result,
228
+ hasMany: related_0.hasMany,
229
+ label: related_0.label
230
+ })),
231
+ useAsTitle: collectionConfig?.admin?.useAsTitle || 'id'
232
+ }, hierarchyData.parentId), /*#__PURE__*/_jsx(DocumentListSelection, {
233
+ disableBulkDelete: disableBulkDelete,
234
+ disableBulkEdit: disableBulkEdit
235
+ })]
236
+ }) : docs?.length > 0 ? /*#__PURE__*/_jsx("div", {
193
237
  className: `${baseClass}__tables`,
194
238
  children: /*#__PURE__*/_jsx(RelationshipProvider, {
195
239
  children: Table
196
240
  })
197
- }), docs?.length === 0 && /*#__PURE__*/_jsx(NoListResults, {
241
+ }) : null, docs?.length === 0 && /*#__PURE__*/_jsx(NoListResults, {
198
242
  Actions: hasCreatePermission && newDocumentURL && viewType !== 'trash' ? [isInDrawer ? /*#__PURE__*/_jsx(Button, {
199
243
  el: "button",
200
244
  onClick: () => openModal(createNewDrawerSlug),
@@ -226,7 +270,7 @@ export function DefaultListView(props) {
226
270
  collectionConfig: collectionConfig,
227
271
  disableBulkDelete: disableBulkDelete,
228
272
  disableBulkEdit: disableBulkEdit,
229
- label: getTranslation(collectionConfig.labels.plural, i18n),
273
+ label: collectionLabel,
230
274
  showSelectAllAcrossPages: !isGroupingBy
231
275
  }), /*#__PURE__*/_jsx("div", {
232
276
  className: `${baseClass}__list-selection-actions`,