@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,350 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { useRouter } from 'next/navigation.js';
5
+ import { DEFAULT_HIERARCHY_TREE_LIMIT, formatAdminURL, PREFERENCE_KEYS } from 'payload/shared';
6
+ import * as qs from 'qs-esm';
7
+ import React, { createContext, use, useCallback, useState } from 'react';
8
+ import { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js';
9
+ import { useConfig } from '../Config/index.js';
10
+ import { usePreferences } from '../Preferences/index.js';
11
+ const HierarchyContext = /*#__PURE__*/createContext(undefined);
12
+ export const HierarchyProvider = ({
13
+ children
14
+ }) => {
15
+ const {
16
+ setPreference
17
+ } = usePreferences();
18
+ const router = useRouter();
19
+ const {
20
+ config: {
21
+ routes: {
22
+ admin: adminRoute,
23
+ api
24
+ },
25
+ serverURL
26
+ }
27
+ } = useConfig();
28
+ const [baseFilter, setBaseFilter] = useState(null);
29
+ const [collectionSlug, setCollectionSlug] = useState(null);
30
+ const [viewCollectionSlug, setViewCollectionSlug] = useState(null);
31
+ const [parent, setParent] = useState(null);
32
+ const [parentFieldName, setParentFieldName] = useState('');
33
+ const [treeLimit, setTreeLimit] = useState(DEFAULT_HIERARCHY_TREE_LIMIT);
34
+ const [typeFieldName, setTypeFieldName] = useState(null);
35
+ const [useAsTitle, setUseAsTitle] = useState(null);
36
+ const [allowedCollections, setAllowedCollections] = useState(null);
37
+ const [treeCache, setTreeCache] = useState(() => new Map());
38
+ const [expandedNodesByCollection, setExpandedNodesByCollection] = useState(() => new Map());
39
+ const [selectedFiltersByCollection, setSelectedFiltersByCollection] = useState(() => new Map());
40
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
41
+ const [loadingNodeId, setLoadingNodeId] = useState(null);
42
+ const [treeRefreshKey, setTreeRefreshKey] = useState(0);
43
+ const getNodeChildren = useCallback(parentId => {
44
+ if (!collectionSlug) {
45
+ return [];
46
+ }
47
+ const cache = treeCache.get(collectionSlug);
48
+ if (!cache) {
49
+ return [];
50
+ }
51
+ return cache.docs.filter(doc => {
52
+ const docParentId = doc[parentFieldName];
53
+ if (parentId === null) {
54
+ return docParentId === null || docParentId === undefined;
55
+ }
56
+ return docParentId !== null && String(docParentId) === String(parentId);
57
+ });
58
+ }, [collectionSlug, parentFieldName, treeCache]);
59
+ const hydrate = useCallback(data => {
60
+ const {
61
+ allowedCollections: newAllowedCollections,
62
+ baseFilter: newBaseFilter,
63
+ collectionSlug: slug,
64
+ expandedNodes: newExpandedNodes,
65
+ parent: newParent,
66
+ parentFieldName: newParentFieldName,
67
+ selectedFilters: newSelectedFilters,
68
+ treeData,
69
+ treeLimit: newTreeLimit,
70
+ typeFieldName: newTypeFieldName,
71
+ useAsTitle: newUseAsTitle,
72
+ viewCollectionSlug: newViewCollectionSlug
73
+ } = data;
74
+ setCollectionSlug(slug);
75
+ if (newBaseFilter !== undefined) {
76
+ setBaseFilter(newBaseFilter ?? null);
77
+ }
78
+ if (newViewCollectionSlug) {
79
+ setViewCollectionSlug(newViewCollectionSlug);
80
+ }
81
+ if (newAllowedCollections) {
82
+ setAllowedCollections(newAllowedCollections);
83
+ }
84
+ if (newParentFieldName) {
85
+ setParentFieldName(newParentFieldName);
86
+ }
87
+ if (newTreeLimit !== undefined) {
88
+ setTreeLimit(newTreeLimit);
89
+ }
90
+ if (newTypeFieldName !== undefined) {
91
+ setTypeFieldName(newTypeFieldName);
92
+ }
93
+ if (newParent !== undefined) {
94
+ setParent(newParent);
95
+ }
96
+ if (newUseAsTitle !== undefined) {
97
+ setUseAsTitle(newUseAsTitle);
98
+ }
99
+ if (treeData) {
100
+ setTreeCache(prev => {
101
+ const newCache = new Map(prev);
102
+ const existingEntry = newCache.get(slug);
103
+ // If baseFilter is provided, replace cache entirely (tenant changed)
104
+ // Otherwise merge to support incremental loading
105
+ if (newBaseFilter !== undefined || !existingEntry) {
106
+ newCache.set(slug, {
107
+ ...treeData,
108
+ baseFilter: newBaseFilter ?? null
109
+ });
110
+ } else {
111
+ const existingDocIds = new Set(existingEntry.docs.map(doc_0 => doc_0.id));
112
+ const newDocs = treeData.docs.filter(doc_1 => !existingDocIds.has(doc_1.id));
113
+ newCache.set(slug, {
114
+ baseFilter: existingEntry.baseFilter,
115
+ docs: [...existingEntry.docs, ...newDocs],
116
+ loadedParents: {
117
+ ...existingEntry.loadedParents,
118
+ ...treeData.loadedParents
119
+ }
120
+ });
121
+ }
122
+ return newCache;
123
+ });
124
+ }
125
+ if (newExpandedNodes && newExpandedNodes.length > 0) {
126
+ setExpandedNodesByCollection(prev_0 => {
127
+ const newMap = new Map(prev_0);
128
+ const existingExpanded = newMap.get(slug) || new Set();
129
+ const mergedExpanded = new Set([...existingExpanded, ...newExpandedNodes]);
130
+ newMap.set(slug, mergedExpanded);
131
+ return newMap;
132
+ });
133
+ }
134
+ if (newSelectedFilters) {
135
+ setSelectedFiltersByCollection(prev_1 => {
136
+ const newMap_0 = new Map(prev_1);
137
+ newMap_0.set(slug, newSelectedFilters);
138
+ return newMap_0;
139
+ });
140
+ }
141
+ }, []);
142
+ const savePreferencesDebounced = useDebouncedCallback(async (slug_0, data_0) => {
143
+ const preferenceKey = `${PREFERENCE_KEYS.HIERARCHY_TREE}-${slug_0}`;
144
+ const currentExpanded = expandedNodesByCollection.get(slug_0) || new Set();
145
+ const currentFilters = selectedFiltersByCollection.get(slug_0) || [];
146
+ await setPreference(preferenceKey, {
147
+ expandedNodes: Array.from(data_0.expanded ?? currentExpanded),
148
+ selectedFilters: data_0.filters ?? currentFilters
149
+ });
150
+ }, 500);
151
+ const toggleNodeForCollection = useCallback((slug_1, id) => {
152
+ setExpandedNodesByCollection(prev_2 => {
153
+ const newMap_1 = new Map(prev_2);
154
+ const currentExpanded_0 = newMap_1.get(slug_1) || new Set();
155
+ const newExpanded = new Set(currentExpanded_0);
156
+ if (newExpanded.has(id)) {
157
+ newExpanded.delete(id);
158
+ } else {
159
+ newExpanded.add(id);
160
+ }
161
+ newMap_1.set(slug_1, newExpanded);
162
+ savePreferencesDebounced(slug_1, {
163
+ expanded: newExpanded
164
+ });
165
+ return newMap_1;
166
+ });
167
+ }, [savePreferencesDebounced]);
168
+ const toggleNode = useCallback(id_0 => {
169
+ if (!collectionSlug) {
170
+ return;
171
+ }
172
+ toggleNodeForCollection(collectionSlug, id_0);
173
+ }, [collectionSlug, toggleNodeForCollection]);
174
+ const getExpandedNodesForCollection = useCallback(slug_2 => {
175
+ return expandedNodesByCollection.get(slug_2) || new Set();
176
+ }, [expandedNodesByCollection]);
177
+ const getTreeDataForCollection = useCallback(slug_3 => {
178
+ return treeCache.get(slug_3) || null;
179
+ }, [treeCache]);
180
+ const setSelectedFilters = useCallback(filters => {
181
+ if (!collectionSlug) {
182
+ return;
183
+ }
184
+ setSelectedFiltersByCollection(prev_3 => {
185
+ const newMap_2 = new Map(prev_3);
186
+ newMap_2.set(collectionSlug, filters);
187
+ savePreferencesDebounced(collectionSlug, {
188
+ filters
189
+ });
190
+ return newMap_2;
191
+ });
192
+ }, [collectionSlug, savePreferencesDebounced]);
193
+ const selectParent = useCallback(id_1 => {
194
+ if (!collectionSlug) {
195
+ return;
196
+ }
197
+ const url = formatAdminURL({
198
+ adminRoute,
199
+ path: `/collections/${collectionSlug}${id_1 !== null ? `?parent=${id_1}` : ''}`
200
+ });
201
+ router.push(url);
202
+ router.refresh();
203
+ }, [adminRoute, collectionSlug, router]);
204
+ const loadMoreChildren = useCallback(async parentId_0 => {
205
+ if (!collectionSlug || isLoadingMore) {
206
+ return;
207
+ }
208
+ const cache_0 = treeCache.get(collectionSlug);
209
+ if (!cache_0) {
210
+ return;
211
+ }
212
+ const parentKey = parentId_0 === null ? 'root' : String(parentId_0);
213
+ const parentMeta = cache_0.loadedParents[parentKey];
214
+ if (!parentMeta || !parentMeta.hasMore) {
215
+ return;
216
+ }
217
+ setIsLoadingMore(true);
218
+ setLoadingNodeId(parentId_0);
219
+ try {
220
+ const currentChildren = cache_0.docs.filter(doc_2 => {
221
+ const docParentId_0 = doc_2[parentFieldName];
222
+ if (parentId_0 === null) {
223
+ return docParentId_0 === null || docParentId_0 === undefined;
224
+ }
225
+ return docParentId_0 !== null && String(docParentId_0) === String(parentId_0);
226
+ });
227
+ const nextPage = Math.floor(currentChildren.length / treeLimit) + 1;
228
+ const where = parentId_0 === null ? {
229
+ or: [{
230
+ [parentFieldName]: {
231
+ exists: false
232
+ }
233
+ }, {
234
+ [parentFieldName]: {
235
+ equals: null
236
+ }
237
+ }]
238
+ } : {
239
+ [parentFieldName]: {
240
+ equals: parentId_0
241
+ }
242
+ };
243
+ const queryString = qs.stringify({
244
+ limit: treeLimit,
245
+ page: nextPage,
246
+ sort: useAsTitle ?? 'id',
247
+ where
248
+ }, {
249
+ addQueryPrefix: true
250
+ });
251
+ const url_0 = formatAdminURL({
252
+ apiRoute: api,
253
+ path: `/${collectionSlug}${queryString}`,
254
+ serverURL
255
+ });
256
+ const response = await fetch(url_0, {
257
+ credentials: 'include'
258
+ });
259
+ if (!response.ok) {
260
+ throw new Error('Failed to fetch more children');
261
+ }
262
+ const data_1 = await response.json();
263
+ const newDocs_0 = data_1.docs || [];
264
+ setTreeCache(prev_4 => {
265
+ const newCache_0 = new Map(prev_4);
266
+ const existingEntry_0 = newCache_0.get(collectionSlug);
267
+ if (existingEntry_0) {
268
+ const existingDocIds_0 = new Set(existingEntry_0.docs.map(doc_3 => doc_3.id));
269
+ const uniqueNewDocs = newDocs_0.filter(doc_4 => !existingDocIds_0.has(doc_4.id));
270
+ newCache_0.set(collectionSlug, {
271
+ docs: [...existingEntry_0.docs, ...uniqueNewDocs],
272
+ loadedParents: {
273
+ ...existingEntry_0.loadedParents,
274
+ [parentKey]: {
275
+ hasMore: data_1.hasNextPage || false,
276
+ totalDocs: data_1.totalDocs || 0
277
+ }
278
+ }
279
+ });
280
+ }
281
+ return newCache_0;
282
+ });
283
+ } catch {
284
+ // Failed to load more children - silently fail
285
+ } finally {
286
+ setIsLoadingMore(false);
287
+ setLoadingNodeId(null);
288
+ }
289
+ }, [api, collectionSlug, isLoadingMore, parentFieldName, serverURL, treeCache, treeLimit, useAsTitle]);
290
+ const reset = useCallback(() => {
291
+ setBaseFilter(null);
292
+ setCollectionSlug(null);
293
+ setViewCollectionSlug(null);
294
+ setParent(null);
295
+ setParentFieldName('');
296
+ setTreeLimit(DEFAULT_HIERARCHY_TREE_LIMIT);
297
+ setTypeFieldName(null);
298
+ setUseAsTitle(null);
299
+ setTreeCache(new Map());
300
+ setExpandedNodesByCollection(new Map());
301
+ setSelectedFiltersByCollection(new Map());
302
+ setIsLoadingMore(false);
303
+ setLoadingNodeId(null);
304
+ }, []);
305
+ const refreshTree = useCallback(() => {
306
+ setTreeCache(new Map());
307
+ setTreeRefreshKey(prev_5 => prev_5 + 1);
308
+ }, []);
309
+ const expandedNodes = collectionSlug && expandedNodesByCollection.has(collectionSlug) ? expandedNodesByCollection.get(collectionSlug) : new Set();
310
+ const selectedFilters = collectionSlug && selectedFiltersByCollection.has(collectionSlug) ? selectedFiltersByCollection.get(collectionSlug) : [];
311
+ const value = {
312
+ allowedCollections,
313
+ baseFilter,
314
+ collectionSlug,
315
+ expandedNodes,
316
+ getExpandedNodesForCollection,
317
+ getNodeChildren,
318
+ getTreeDataForCollection,
319
+ hydrate,
320
+ isLoadingMore,
321
+ loadingNodeId,
322
+ loadMoreChildren,
323
+ parent,
324
+ parentFieldName,
325
+ refreshTree,
326
+ reset,
327
+ selectedFilters,
328
+ selectParent,
329
+ setSelectedFilters,
330
+ toggleNode,
331
+ toggleNodeForCollection,
332
+ treeLimit,
333
+ treeRefreshKey,
334
+ typeFieldName,
335
+ useAsTitle,
336
+ viewCollectionSlug
337
+ };
338
+ return /*#__PURE__*/_jsx(HierarchyContext, {
339
+ value: value,
340
+ children: children
341
+ });
342
+ };
343
+ export const useHierarchy = () => {
344
+ const context = use(HierarchyContext);
345
+ if (!context) {
346
+ throw new Error('useHierarchy must be used within HierarchyProvider');
347
+ }
348
+ return context;
349
+ };
350
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useRouter","DEFAULT_HIERARCHY_TREE_LIMIT","formatAdminURL","PREFERENCE_KEYS","qs","React","createContext","use","useCallback","useState","useDebouncedCallback","useConfig","usePreferences","HierarchyContext","undefined","HierarchyProvider","children","setPreference","router","config","routes","admin","adminRoute","api","serverURL","baseFilter","setBaseFilter","collectionSlug","setCollectionSlug","viewCollectionSlug","setViewCollectionSlug","parent","setParent","parentFieldName","setParentFieldName","treeLimit","setTreeLimit","typeFieldName","setTypeFieldName","useAsTitle","setUseAsTitle","allowedCollections","setAllowedCollections","treeCache","setTreeCache","Map","expandedNodesByCollection","setExpandedNodesByCollection","selectedFiltersByCollection","setSelectedFiltersByCollection","isLoadingMore","setIsLoadingMore","loadingNodeId","setLoadingNodeId","treeRefreshKey","setTreeRefreshKey","getNodeChildren","parentId","cache","get","docs","filter","doc","docParentId","String","hydrate","data","newAllowedCollections","newBaseFilter","slug","expandedNodes","newExpandedNodes","newParent","newParentFieldName","selectedFilters","newSelectedFilters","treeData","newTreeLimit","newTypeFieldName","newUseAsTitle","newViewCollectionSlug","prev","newCache","existingEntry","set","existingDocIds","Set","map","id","newDocs","has","loadedParents","length","newMap","existingExpanded","mergedExpanded","savePreferencesDebounced","preferenceKey","HIERARCHY_TREE","currentExpanded","currentFilters","Array","from","expanded","filters","toggleNodeForCollection","newExpanded","delete","add","toggleNode","getExpandedNodesForCollection","getTreeDataForCollection","setSelectedFilters","selectParent","url","path","push","refresh","loadMoreChildren","parentKey","parentMeta","hasMore","currentChildren","nextPage","Math","floor","where","or","exists","equals","queryString","stringify","limit","page","sort","addQueryPrefix","apiRoute","response","fetch","credentials","ok","Error","json","uniqueNewDocs","hasNextPage","totalDocs","reset","refreshTree","value","_jsx","useHierarchy","context"],"sources":["../../../src/providers/Hierarchy/index.tsx"],"sourcesContent":["'use client'\n\nimport type { TypeWithID, Where } from 'payload'\n\nimport { useRouter } from 'next/navigation.js'\nimport { DEFAULT_HIERARCHY_TREE_LIMIT, formatAdminURL, PREFERENCE_KEYS } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useState } from 'react'\n\nimport type {\n AllowedCollection,\n HierarchyContextValue,\n HierarchyDocument,\n HierarchyHydrateData,\n HierarchyProviderProps,\n HierarchyTreeCacheEntry,\n} from './types.js'\n\nimport { useDebouncedCallback } from '../../hooks/useDebouncedCallback.js'\nimport { useConfig } from '../Config/index.js'\nimport { usePreferences } from '../Preferences/index.js'\n\nconst HierarchyContext = createContext<HierarchyContextValue | undefined>(undefined)\n\nexport const HierarchyProvider: React.FC<HierarchyProviderProps> = ({ children }) => {\n const { setPreference } = usePreferences()\n const router = useRouter()\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n } = useConfig()\n\n const [baseFilter, setBaseFilter] = useState<null | Where>(null)\n const [collectionSlug, setCollectionSlug] = useState<null | string>(null)\n const [viewCollectionSlug, setViewCollectionSlug] = useState<null | string>(null)\n const [parent, setParent] = useState<null | (Record<string, unknown> & TypeWithID)>(null)\n const [parentFieldName, setParentFieldName] = useState<string>('')\n const [treeLimit, setTreeLimit] = useState<number>(DEFAULT_HIERARCHY_TREE_LIMIT)\n const [typeFieldName, setTypeFieldName] = useState<null | string>(null)\n const [useAsTitle, setUseAsTitle] = useState<null | string>(null)\n const [allowedCollections, setAllowedCollections] = useState<AllowedCollection[] | null>(null)\n\n const [treeCache, setTreeCache] = useState<Map<string, HierarchyTreeCacheEntry>>(() => new Map())\n const [expandedNodesByCollection, setExpandedNodesByCollection] = useState<\n Map<string, Set<number | string>>\n >(() => new Map())\n const [selectedFiltersByCollection, setSelectedFiltersByCollection] = useState<\n Map<string, string[]>\n >(() => new Map())\n const [isLoadingMore, setIsLoadingMore] = useState<boolean>(false)\n const [loadingNodeId, setLoadingNodeId] = useState<null | number | string>(null)\n const [treeRefreshKey, setTreeRefreshKey] = useState<number>(0)\n\n const getNodeChildren = useCallback(\n (parentId: null | number | string): HierarchyDocument[] => {\n if (!collectionSlug) {\n return []\n }\n\n const cache = treeCache.get(collectionSlug)\n if (!cache) {\n return []\n }\n\n return cache.docs.filter((doc) => {\n const docParentId = doc[parentFieldName]\n if (parentId === null) {\n return docParentId === null || docParentId === undefined\n }\n return docParentId !== null && String(docParentId) === String(parentId)\n })\n },\n [collectionSlug, parentFieldName, treeCache],\n )\n\n const hydrate = useCallback((data: HierarchyHydrateData) => {\n const {\n allowedCollections: newAllowedCollections,\n baseFilter: newBaseFilter,\n collectionSlug: slug,\n expandedNodes: newExpandedNodes,\n parent: newParent,\n parentFieldName: newParentFieldName,\n selectedFilters: newSelectedFilters,\n treeData,\n treeLimit: newTreeLimit,\n typeFieldName: newTypeFieldName,\n useAsTitle: newUseAsTitle,\n viewCollectionSlug: newViewCollectionSlug,\n } = data\n\n setCollectionSlug(slug)\n\n if (newBaseFilter !== undefined) {\n setBaseFilter(newBaseFilter ?? null)\n }\n\n if (newViewCollectionSlug) {\n setViewCollectionSlug(newViewCollectionSlug)\n }\n\n if (newAllowedCollections) {\n setAllowedCollections(newAllowedCollections)\n }\n\n if (newParentFieldName) {\n setParentFieldName(newParentFieldName)\n }\n\n if (newTreeLimit !== undefined) {\n setTreeLimit(newTreeLimit)\n }\n\n if (newTypeFieldName !== undefined) {\n setTypeFieldName(newTypeFieldName)\n }\n\n if (newParent !== undefined) {\n setParent(newParent)\n }\n\n if (newUseAsTitle !== undefined) {\n setUseAsTitle(newUseAsTitle)\n }\n\n if (treeData) {\n setTreeCache((prev) => {\n const newCache = new Map(prev)\n const existingEntry = newCache.get(slug)\n\n // If baseFilter is provided, replace cache entirely (tenant changed)\n // Otherwise merge to support incremental loading\n if (newBaseFilter !== undefined || !existingEntry) {\n newCache.set(slug, { ...treeData, baseFilter: newBaseFilter ?? null })\n } else {\n const existingDocIds = new Set(existingEntry.docs.map((doc) => doc.id))\n const newDocs = treeData.docs.filter((doc) => !existingDocIds.has(doc.id))\n\n newCache.set(slug, {\n baseFilter: existingEntry.baseFilter,\n docs: [...existingEntry.docs, ...newDocs],\n loadedParents: {\n ...existingEntry.loadedParents,\n ...treeData.loadedParents,\n },\n })\n }\n\n return newCache\n })\n }\n\n if (newExpandedNodes && newExpandedNodes.length > 0) {\n setExpandedNodesByCollection((prev) => {\n const newMap = new Map(prev)\n const existingExpanded = newMap.get(slug) || new Set()\n const mergedExpanded = new Set([...existingExpanded, ...newExpandedNodes])\n newMap.set(slug, mergedExpanded)\n return newMap\n })\n }\n\n if (newSelectedFilters) {\n setSelectedFiltersByCollection((prev) => {\n const newMap = new Map(prev)\n newMap.set(slug, newSelectedFilters)\n return newMap\n })\n }\n }, [])\n\n const savePreferencesDebounced = useDebouncedCallback(\n async (slug: string, data: { expanded?: Set<number | string>; filters?: string[] }) => {\n const preferenceKey = `${PREFERENCE_KEYS.HIERARCHY_TREE}-${slug}`\n const currentExpanded = expandedNodesByCollection.get(slug) || new Set()\n const currentFilters = selectedFiltersByCollection.get(slug) || []\n\n await setPreference(preferenceKey, {\n expandedNodes: Array.from(data.expanded ?? currentExpanded),\n selectedFilters: data.filters ?? currentFilters,\n })\n },\n 500,\n )\n\n const toggleNodeForCollection = useCallback(\n (slug: string, id: number | string) => {\n setExpandedNodesByCollection((prev) => {\n const newMap = new Map(prev)\n const currentExpanded = newMap.get(slug) || new Set()\n const newExpanded = new Set(currentExpanded)\n\n if (newExpanded.has(id)) {\n newExpanded.delete(id)\n } else {\n newExpanded.add(id)\n }\n\n newMap.set(slug, newExpanded)\n savePreferencesDebounced(slug, { expanded: newExpanded })\n return newMap\n })\n },\n [savePreferencesDebounced],\n )\n\n const toggleNode = useCallback(\n (id: number | string) => {\n if (!collectionSlug) {\n return\n }\n toggleNodeForCollection(collectionSlug, id)\n },\n [collectionSlug, toggleNodeForCollection],\n )\n\n const getExpandedNodesForCollection = useCallback(\n (slug: string): Set<number | string> => {\n return expandedNodesByCollection.get(slug) || new Set()\n },\n [expandedNodesByCollection],\n )\n\n const getTreeDataForCollection = useCallback(\n (slug: string) => {\n return treeCache.get(slug) || null\n },\n [treeCache],\n )\n\n const setSelectedFilters = useCallback(\n (filters: string[]) => {\n if (!collectionSlug) {\n return\n }\n\n setSelectedFiltersByCollection((prev) => {\n const newMap = new Map(prev)\n newMap.set(collectionSlug, filters)\n savePreferencesDebounced(collectionSlug, { filters })\n return newMap\n })\n },\n [collectionSlug, savePreferencesDebounced],\n )\n\n const selectParent = useCallback(\n (id: null | number | string) => {\n if (!collectionSlug) {\n return\n }\n\n const url = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}${id !== null ? `?parent=${id}` : ''}`,\n })\n router.push(url)\n router.refresh()\n },\n [adminRoute, collectionSlug, router],\n )\n\n const loadMoreChildren = useCallback(\n async (parentId: null | number | string): Promise<void> => {\n if (!collectionSlug || isLoadingMore) {\n return\n }\n\n const cache = treeCache.get(collectionSlug)\n if (!cache) {\n return\n }\n\n const parentKey = parentId === null ? 'root' : String(parentId)\n const parentMeta = cache.loadedParents[parentKey]\n if (!parentMeta || !parentMeta.hasMore) {\n return\n }\n\n setIsLoadingMore(true)\n setLoadingNodeId(parentId)\n\n try {\n const currentChildren = cache.docs.filter((doc) => {\n const docParentId = doc[parentFieldName]\n if (parentId === null) {\n return docParentId === null || docParentId === undefined\n }\n return docParentId !== null && String(docParentId) === String(parentId)\n })\n\n const nextPage = Math.floor(currentChildren.length / treeLimit) + 1\n\n const where =\n parentId === null\n ? {\n or: [\n { [parentFieldName]: { exists: false } },\n { [parentFieldName]: { equals: null } },\n ],\n }\n : { [parentFieldName]: { equals: parentId } }\n\n const queryString = qs.stringify(\n { limit: treeLimit, page: nextPage, sort: useAsTitle ?? 'id', where },\n { addQueryPrefix: true },\n )\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${queryString}`,\n serverURL,\n })\n const response = await fetch(url, {\n credentials: 'include',\n })\n\n if (!response.ok) {\n throw new Error('Failed to fetch more children')\n }\n\n const data = await response.json()\n const newDocs = data.docs || []\n\n setTreeCache((prev) => {\n const newCache = new Map(prev)\n const existingEntry = newCache.get(collectionSlug)\n\n if (existingEntry) {\n const existingDocIds = new Set(existingEntry.docs.map((doc) => doc.id))\n const uniqueNewDocs = newDocs.filter((doc) => !existingDocIds.has(doc.id))\n\n newCache.set(collectionSlug, {\n docs: [...existingEntry.docs, ...uniqueNewDocs],\n loadedParents: {\n ...existingEntry.loadedParents,\n [parentKey]: {\n hasMore: data.hasNextPage || false,\n totalDocs: data.totalDocs || 0,\n },\n },\n })\n }\n\n return newCache\n })\n } catch {\n // Failed to load more children - silently fail\n } finally {\n setIsLoadingMore(false)\n setLoadingNodeId(null)\n }\n },\n [\n api,\n collectionSlug,\n isLoadingMore,\n parentFieldName,\n serverURL,\n treeCache,\n treeLimit,\n useAsTitle,\n ],\n )\n\n const reset = useCallback(() => {\n setBaseFilter(null)\n setCollectionSlug(null)\n setViewCollectionSlug(null)\n setParent(null)\n setParentFieldName('')\n setTreeLimit(DEFAULT_HIERARCHY_TREE_LIMIT)\n setTypeFieldName(null)\n setUseAsTitle(null)\n setTreeCache(new Map())\n setExpandedNodesByCollection(new Map())\n setSelectedFiltersByCollection(new Map())\n setIsLoadingMore(false)\n setLoadingNodeId(null)\n }, [])\n\n const refreshTree = useCallback(() => {\n setTreeCache(new Map())\n setTreeRefreshKey((prev) => prev + 1)\n }, [])\n\n const expandedNodes =\n collectionSlug && expandedNodesByCollection.has(collectionSlug)\n ? expandedNodesByCollection.get(collectionSlug)\n : new Set<number | string>()\n\n const selectedFilters =\n collectionSlug && selectedFiltersByCollection.has(collectionSlug)\n ? selectedFiltersByCollection.get(collectionSlug)\n : []\n\n const value: HierarchyContextValue = {\n allowedCollections,\n baseFilter,\n collectionSlug,\n expandedNodes,\n getExpandedNodesForCollection,\n getNodeChildren,\n getTreeDataForCollection,\n hydrate,\n isLoadingMore,\n loadingNodeId,\n loadMoreChildren,\n parent,\n parentFieldName,\n refreshTree,\n reset,\n selectedFilters,\n selectParent,\n setSelectedFilters,\n toggleNode,\n toggleNodeForCollection,\n treeLimit,\n treeRefreshKey,\n typeFieldName,\n useAsTitle,\n viewCollectionSlug,\n }\n\n return <HierarchyContext value={value}>{children}</HierarchyContext>\n}\n\nexport const useHierarchy = (): HierarchyContextValue => {\n const context = use(HierarchyContext)\n if (!context) {\n throw new Error('useHierarchy must be used within HierarchyProvider')\n }\n return context\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,106 @@
1
+ import type { PaginatedDocs, TypeWithID, Where } from 'payload';
2
+ export type HierarchyDocument = {
3
+ [key: string]: unknown;
4
+ _hasChildren?: boolean;
5
+ } & TypeWithID;
6
+ export type HierarchyInitialData = {
7
+ baseFilter?: null | Where;
8
+ docs: HierarchyDocument[];
9
+ loadedParents: Record<string, {
10
+ hasMore: boolean;
11
+ loadedCount?: number;
12
+ totalDocs: number;
13
+ }>;
14
+ };
15
+ export type HierarchyTreeCacheEntry = {
16
+ baseFilter?: null | Where;
17
+ docs: HierarchyDocument[];
18
+ loadedParents: Record<string, {
19
+ hasMore: boolean;
20
+ loadedCount?: number;
21
+ totalDocs: number;
22
+ }>;
23
+ };
24
+ export type AllowedCollection = {
25
+ label: string;
26
+ slug: string;
27
+ };
28
+ export type HierarchyHydrateData = {
29
+ allowedCollections?: AllowedCollection[] | null;
30
+ baseFilter?: null | Where;
31
+ collectionSlug: string;
32
+ expandedNodes?: (number | string)[];
33
+ /** The full data of the current parent (for accessing id, collectionSpecific values, etc.) */
34
+ parent?: null | (Record<string, unknown> & TypeWithID);
35
+ parentFieldName?: string;
36
+ /** Initial selected filters from preferences */
37
+ selectedFilters?: string[];
38
+ tableData?: PaginatedDocs;
39
+ treeData?: HierarchyInitialData;
40
+ treeLimit?: number;
41
+ /** Field name for collection-specific restrictions (e.g., 'hierarchyType') */
42
+ typeFieldName?: string;
43
+ useAsTitle?: string;
44
+ /** When set, updates the viewCollectionSlug in context (used by list view to indicate current collection) */
45
+ viewCollectionSlug?: string;
46
+ };
47
+ export type HierarchyContextValue = {
48
+ allowedCollections: AllowedCollection[] | null;
49
+ baseFilter: null | Where;
50
+ collectionSlug: null | string;
51
+ expandedNodes: Set<number | string>;
52
+ /** Get expanded nodes for a specific collection (use this in tabs to avoid cross-tab state conflicts) */
53
+ getExpandedNodesForCollection: (collectionSlug: string) => Set<number | string>;
54
+ getNodeChildren: (parentId: null | number | string) => HierarchyDocument[];
55
+ /** Get tree data for a specific collection (returns null if not hydrated or cleared by refresh) */
56
+ getTreeDataForCollection: (collectionSlug: string) => HierarchyInitialData | null;
57
+ hydrate: (data: HierarchyHydrateData) => void;
58
+ isLoadingMore: boolean;
59
+ loadingNodeId: null | number | string;
60
+ loadMoreChildren: (parentId: null | number | string) => Promise<void>;
61
+ /** The full data of the current parent (for accessing id, collectionSpecific values, etc.) */
62
+ parent: null | (Record<string, unknown> & TypeWithID);
63
+ parentFieldName: string;
64
+ /** Refresh the tree by clearing cache and incrementing refreshKey to force remount */
65
+ refreshTree: () => void;
66
+ reset: () => void;
67
+ /** Selected collection type filters for the sidebar tree */
68
+ selectedFilters: string[];
69
+ selectParent: (id: null | number | string) => void;
70
+ /** Update selected filters (persists to preferences) */
71
+ setSelectedFilters: (filters: string[]) => void;
72
+ toggleNode: (id: number | string) => void;
73
+ /** Toggle node expansion for a specific collection (use this in tabs to avoid cross-tab state conflicts) */
74
+ toggleNodeForCollection: (collectionSlug: string, id: number | string) => void;
75
+ treeLimit: number;
76
+ /** Key that changes when tree should remount (incremented by refreshTree) */
77
+ treeRefreshKey: number;
78
+ /** Field name for collection-specific restrictions (e.g., 'hierarchyType') */
79
+ typeFieldName: null | string;
80
+ useAsTitle: null | string;
81
+ /** The collection slug of the currently viewed list (set by list view, used by sidebar tabs) */
82
+ viewCollectionSlug: null | string;
83
+ };
84
+ export type HierarchyProviderProps = {
85
+ children: React.ReactNode;
86
+ };
87
+ export type HydrateHierarchyProviderProps = {
88
+ allowedCollections?: AllowedCollection[] | null;
89
+ baseFilter?: null | Where;
90
+ collectionSlug: string;
91
+ expandedNodes?: (number | string)[];
92
+ /** The full data of the current parent (for accessing id, collectionSpecific values, etc.) */
93
+ parent?: null | (Record<string, unknown> & TypeWithID);
94
+ parentFieldName?: string;
95
+ /** Initial selected filters from preferences */
96
+ selectedFilters?: string[];
97
+ tableData?: PaginatedDocs;
98
+ treeData?: HierarchyInitialData;
99
+ treeLimit?: number;
100
+ /** Field name for collection-specific restrictions (e.g., 'hierarchyType') */
101
+ typeFieldName?: string;
102
+ useAsTitle?: string;
103
+ /** When set, updates the viewCollectionSlug in context (used by list view to indicate current collection) */
104
+ viewCollectionSlug?: string;
105
+ };
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/Hierarchy/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/Hierarchy/types.ts"],"sourcesContent":["import type { PaginatedDocs, TypeWithID, Where } from 'payload'\n\nexport type HierarchyDocument = {\n [key: string]: unknown\n _hasChildren?: boolean\n} & TypeWithID\n\nexport type HierarchyInitialData = {\n baseFilter?: null | Where\n docs: HierarchyDocument[]\n loadedParents: Record<string, { hasMore: boolean; loadedCount?: number; totalDocs: number }>\n}\n\nexport type HierarchyTreeCacheEntry = {\n baseFilter?: null | Where\n docs: HierarchyDocument[]\n loadedParents: Record<string, { hasMore: boolean; loadedCount?: number; totalDocs: number }>\n}\n\nexport type AllowedCollection = { label: string; slug: string }\n\nexport type HierarchyHydrateData = {\n allowedCollections?: AllowedCollection[] | null\n baseFilter?: null | Where\n collectionSlug: string\n expandedNodes?: (number | string)[]\n /** The full data of the current parent (for accessing id, collectionSpecific values, etc.) */\n parent?: null | (Record<string, unknown> & TypeWithID)\n parentFieldName?: string\n /** Initial selected filters from preferences */\n selectedFilters?: string[]\n tableData?: PaginatedDocs\n treeData?: HierarchyInitialData\n treeLimit?: number\n /** Field name for collection-specific restrictions (e.g., 'hierarchyType') */\n typeFieldName?: string\n useAsTitle?: string\n /** When set, updates the viewCollectionSlug in context (used by list view to indicate current collection) */\n viewCollectionSlug?: string\n}\n\nexport type HierarchyContextValue = {\n allowedCollections: AllowedCollection[] | null\n baseFilter: null | Where\n collectionSlug: null | string\n expandedNodes: Set<number | string>\n /** Get expanded nodes for a specific collection (use this in tabs to avoid cross-tab state conflicts) */\n getExpandedNodesForCollection: (collectionSlug: string) => Set<number | string>\n getNodeChildren: (parentId: null | number | string) => HierarchyDocument[]\n /** Get tree data for a specific collection (returns null if not hydrated or cleared by refresh) */\n getTreeDataForCollection: (collectionSlug: string) => HierarchyInitialData | null\n hydrate: (data: HierarchyHydrateData) => void\n isLoadingMore: boolean\n loadingNodeId: null | number | string\n loadMoreChildren: (parentId: null | number | string) => Promise<void>\n /** The full data of the current parent (for accessing id, collectionSpecific values, etc.) */\n parent: null | (Record<string, unknown> & TypeWithID)\n parentFieldName: string\n /** Refresh the tree by clearing cache and incrementing refreshKey to force remount */\n refreshTree: () => void\n reset: () => void\n /** Selected collection type filters for the sidebar tree */\n selectedFilters: string[]\n selectParent: (id: null | number | string) => void\n /** Update selected filters (persists to preferences) */\n setSelectedFilters: (filters: string[]) => void\n toggleNode: (id: number | string) => void\n /** Toggle node expansion for a specific collection (use this in tabs to avoid cross-tab state conflicts) */\n toggleNodeForCollection: (collectionSlug: string, id: number | string) => void\n treeLimit: number\n /** Key that changes when tree should remount (incremented by refreshTree) */\n treeRefreshKey: number\n /** Field name for collection-specific restrictions (e.g., 'hierarchyType') */\n typeFieldName: null | string\n useAsTitle: null | string\n /** The collection slug of the currently viewed list (set by list view, used by sidebar tabs) */\n viewCollectionSlug: null | string\n}\n\nexport type HierarchyProviderProps = {\n children: React.ReactNode\n}\n\nexport type HydrateHierarchyProviderProps = {\n allowedCollections?: AllowedCollection[] | null\n baseFilter?: null | Where\n collectionSlug: string\n expandedNodes?: (number | string)[]\n /** The full data of the current parent (for accessing id, collectionSpecific values, etc.) */\n parent?: null | (Record<string, unknown> & TypeWithID)\n parentFieldName?: string\n /** Initial selected filters from preferences */\n selectedFilters?: string[]\n tableData?: PaginatedDocs\n treeData?: HierarchyInitialData\n treeLimit?: number\n /** Field name for collection-specific restrictions (e.g., 'hierarchyType') */\n typeFieldName?: string\n useAsTitle?: string\n /** When set, updates the viewCollectionSlug in context (used by list view to indicate current collection) */\n viewCollectionSlug?: string\n}\n"],"mappings":"AAmFA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAyB9C,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AA0B9C,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAA;IAC1C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAA;IAC7C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IACjD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2FxC,CAAA"}
@@ -17,6 +17,7 @@ import { AuthProvider } from '../Auth/index.js';
17
17
  import { ClientFunctionProvider } from '../ClientFunction/index.js';
18
18
  import { ConfigProvider } from '../Config/index.js';
19
19
  import { DocumentEventsProvider } from '../DocumentEvents/index.js';
20
+ import { HierarchyProvider } from '../Hierarchy/index.js';
20
21
  import { LocaleProvider } from '../Locale/index.js';
21
22
  import { ParamsProvider } from '../Params/index.js';
22
23
  import { PreferencesProvider } from '../Preferences/index.js';
@@ -82,21 +83,23 @@ export const RootProvider = t0 => {
82
83
  permissions,
83
84
  user,
84
85
  children: [_jsx(PreferencesProvider, {
85
- children: _jsx(ThemeProvider, {
86
- theme,
87
- children: _jsx(ParamsProvider, {
88
- children: _jsx(LocaleProvider, {
89
- locale,
90
- children: _jsx(StepNavProvider, {
91
- children: _jsx(LoadingOverlayProvider, {
92
- children: _jsx(DocumentEventsProvider, {
93
- children: _jsx(NavProvider, {
94
- initialIsOpen: isNavOpen,
95
- children: _jsx(UploadHandlersProvider, {
96
- children: _jsx(DndContext, {
97
- collisionDetection: pointerWithin,
98
- id: dndContextID,
99
- children
86
+ children: _jsx(HierarchyProvider, {
87
+ children: _jsx(ThemeProvider, {
88
+ theme,
89
+ children: _jsx(ParamsProvider, {
90
+ children: _jsx(LocaleProvider, {
91
+ locale,
92
+ children: _jsx(StepNavProvider, {
93
+ children: _jsx(LoadingOverlayProvider, {
94
+ children: _jsx(DocumentEventsProvider, {
95
+ children: _jsx(NavProvider, {
96
+ initialIsOpen: isNavOpen,
97
+ children: _jsx(UploadHandlersProvider, {
98
+ children: _jsx(DndContext, {
99
+ collisionDetection: pointerWithin,
100
+ id: dndContextID,
101
+ children
102
+ })
100
103
  })
101
104
  })
102
105
  })