@strato-admin/faker-ecommerce 0.1.0 → 0.3.0

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 (519) hide show
  1. package/dist/dataProvider.js +1 -2
  2. package/dist/generate.d.ts +2 -1
  3. package/dist/generate.js +15 -8
  4. package/dist/ra-core/src/auth/LogoutOnMount.d.ts +8 -0
  5. package/dist/ra-core/src/auth/LogoutOnMount.js +16 -0
  6. package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.d.ts +22 -0
  7. package/dist/ra-core/src/auth/addRefreshAuthToAuthProvider.js +41 -0
  8. package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.d.ts +21 -0
  9. package/dist/ra-core/src/auth/addRefreshAuthToDataProvider.js +30 -0
  10. package/dist/ra-core/src/auth/convertLegacyAuthProvider.d.ts +12 -0
  11. package/dist/ra-core/src/auth/convertLegacyAuthProvider.js +19 -0
  12. package/dist/ra-core/src/auth/index.d.ts +27 -0
  13. package/dist/ra-core/src/auth/index.js +34 -0
  14. package/dist/ra-core/src/auth/types.d.ts +7 -0
  15. package/dist/ra-core/src/auth/types.js +5 -0
  16. package/dist/ra-core/src/auth/useAuthProvider.d.ts +10 -0
  17. package/dist/ra-core/src/auth/useAuthProvider.js +11 -0
  18. package/dist/ra-core/src/auth/useAuthState.d.ts +48 -0
  19. package/dist/ra-core/src/auth/useAuthState.js +171 -0
  20. package/dist/ra-core/src/auth/useAuthenticated.d.ts +36 -0
  21. package/dist/ra-core/src/auth/useAuthenticated.js +34 -0
  22. package/dist/ra-core/src/auth/useCanAccess.d.ts +56 -0
  23. package/dist/ra-core/src/auth/useCanAccess.js +108 -0
  24. package/dist/ra-core/src/auth/useCanAccessCallback.d.ts +39 -0
  25. package/dist/ra-core/src/auth/useCanAccessCallback.js +45 -0
  26. package/dist/ra-core/src/auth/useCanAccessResources.d.ts +67 -0
  27. package/dist/ra-core/src/auth/useCanAccessResources.js +92 -0
  28. package/dist/ra-core/src/auth/useCheckAuth.d.ts +48 -0
  29. package/dist/ra-core/src/auth/useCheckAuth.js +76 -0
  30. package/dist/ra-core/src/auth/useGetIdentity.d.ts +41 -0
  31. package/dist/ra-core/src/auth/useGetIdentity.js +86 -0
  32. package/dist/ra-core/src/auth/useGetPermissions.d.ts +41 -0
  33. package/dist/ra-core/src/auth/useGetPermissions.js +47 -0
  34. package/dist/ra-core/src/auth/useHandleAuthCallback.d.ts +20 -0
  35. package/dist/ra-core/src/auth/useHandleAuthCallback.js +83 -0
  36. package/dist/ra-core/src/auth/useIsAuthPending.d.ts +13 -0
  37. package/dist/ra-core/src/auth/useIsAuthPending.js +30 -0
  38. package/dist/ra-core/src/auth/useLogin.d.ts +34 -0
  39. package/dist/ra-core/src/auth/useLogin.js +78 -0
  40. package/dist/ra-core/src/auth/useLogout.d.ts +31 -0
  41. package/dist/ra-core/src/auth/useLogout.js +117 -0
  42. package/dist/ra-core/src/auth/useLogoutIfAccessDenied.d.ts +42 -0
  43. package/dist/ra-core/src/auth/useLogoutIfAccessDenied.js +111 -0
  44. package/dist/ra-core/src/auth/usePermissions.d.ts +41 -0
  45. package/dist/ra-core/src/auth/usePermissions.js +123 -0
  46. package/dist/ra-core/src/controller/button/index.d.ts +7 -0
  47. package/dist/ra-core/src/controller/button/index.js +7 -0
  48. package/dist/ra-core/src/controller/button/useBulkDeleteController.d.ts +14 -0
  49. package/dist/ra-core/src/controller/button/useBulkDeleteController.js +66 -0
  50. package/dist/ra-core/src/controller/create/index.d.ts +6 -0
  51. package/dist/ra-core/src/controller/create/index.js +6 -0
  52. package/dist/ra-core/src/controller/create/useCreateController.d.ts +50 -0
  53. package/dist/ra-core/src/controller/create/useCreateController.js +149 -0
  54. package/dist/ra-core/src/controller/edit/index.d.ts +6 -0
  55. package/dist/ra-core/src/controller/edit/index.js +6 -0
  56. package/dist/ra-core/src/controller/edit/useEditController.d.ts +72 -0
  57. package/dist/ra-core/src/controller/edit/useEditController.js +206 -0
  58. package/dist/ra-core/src/controller/field/index.d.ts +12 -0
  59. package/dist/ra-core/src/controller/field/index.js +12 -0
  60. package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.d.ts +1 -0
  61. package/dist/ra-core/src/controller/field/sanitizeFieldRestProps.js +1 -0
  62. package/dist/ra-core/src/controller/field/types.d.ts +28 -0
  63. package/dist/ra-core/src/controller/field/types.js +1 -0
  64. package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.d.ts +39 -0
  65. package/dist/ra-core/src/controller/field/useReferenceArrayFieldController.js +82 -0
  66. package/dist/ra-core/src/controller/field/useReferenceFieldController.d.ts +14 -0
  67. package/dist/ra-core/src/controller/field/useReferenceFieldController.js +31 -0
  68. package/dist/ra-core/src/controller/field/useReferenceManyFieldController.d.ts +49 -0
  69. package/dist/ra-core/src/controller/field/useReferenceManyFieldController.js +264 -0
  70. package/dist/ra-core/src/controller/index.d.ts +17 -0
  71. package/dist/ra-core/src/controller/index.js +16 -0
  72. package/dist/ra-core/src/controller/input/ArrayInputContext.d.ts +9 -0
  73. package/dist/ra-core/src/controller/input/ArrayInputContext.js +8 -0
  74. package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.d.ts +15 -0
  75. package/dist/ra-core/src/controller/input/SimpleFormIteratorContext.js +8 -0
  76. package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.d.ts +13 -0
  77. package/dist/ra-core/src/controller/input/SimpleFormIteratorItemContext.js +8 -0
  78. package/dist/ra-core/src/controller/input/index.d.ts +17 -0
  79. package/dist/ra-core/src/controller/input/index.js +17 -0
  80. package/dist/ra-core/src/controller/input/referenceDataStatus.d.ts +32 -0
  81. package/dist/ra-core/src/controller/input/referenceDataStatus.js +74 -0
  82. package/dist/ra-core/src/controller/input/sanitizeInputRestProps.d.ts +1 -0
  83. package/dist/ra-core/src/controller/input/sanitizeInputRestProps.js +1 -0
  84. package/dist/ra-core/src/controller/input/types.d.ts +3 -0
  85. package/dist/ra-core/src/controller/input/types.js +1 -0
  86. package/dist/ra-core/src/controller/input/useArrayInput.d.ts +8 -0
  87. package/dist/ra-core/src/controller/input/useArrayInput.js +29 -0
  88. package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.d.ts +3 -0
  89. package/dist/ra-core/src/controller/input/useGetArrayInputNewItemDefaults.js +37 -0
  90. package/dist/ra-core/src/controller/input/useReferenceArrayInputController.d.ts +48 -0
  91. package/dist/ra-core/src/controller/input/useReferenceArrayInputController.js +137 -0
  92. package/dist/ra-core/src/controller/input/useReferenceInputController.d.ts +54 -0
  93. package/dist/ra-core/src/controller/input/useReferenceInputController.js +208 -0
  94. package/dist/ra-core/src/controller/input/useReferenceParams.d.ts +106 -0
  95. package/dist/ra-core/src/controller/input/useReferenceParams.js +226 -0
  96. package/dist/ra-core/src/controller/input/useSimpleFormIterator.d.ts +7 -0
  97. package/dist/ra-core/src/controller/input/useSimpleFormIterator.js +15 -0
  98. package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.d.ts +7 -0
  99. package/dist/ra-core/src/controller/input/useSimpleFormIteratorItem.js +15 -0
  100. package/dist/ra-core/src/controller/list/InfinitePaginationContext.d.ts +25 -0
  101. package/dist/ra-core/src/controller/list/InfinitePaginationContext.js +32 -0
  102. package/dist/ra-core/src/controller/list/index.d.ts +30 -0
  103. package/dist/ra-core/src/controller/list/index.js +30 -0
  104. package/dist/ra-core/src/controller/list/queryReducer.d.ts +45 -0
  105. package/dist/ra-core/src/controller/list/queryReducer.js +85 -0
  106. package/dist/ra-core/src/controller/list/useFilterContext.d.ts +2 -0
  107. package/dist/ra-core/src/controller/list/useFilterContext.js +5 -0
  108. package/dist/ra-core/src/controller/list/useInfiniteListController.d.ts +44 -0
  109. package/dist/ra-core/src/controller/list/useInfiniteListController.js +175 -0
  110. package/dist/ra-core/src/controller/list/useInfinitePaginationContext.d.ts +16 -0
  111. package/dist/ra-core/src/controller/list/useInfinitePaginationContext.js +17 -0
  112. package/dist/ra-core/src/controller/list/useList.d.ts +55 -0
  113. package/dist/ra-core/src/controller/list/useList.js +223 -0
  114. package/dist/ra-core/src/controller/list/useListContext.d.ts +59 -0
  115. package/dist/ra-core/src/controller/list/useListContext.js +65 -0
  116. package/dist/ra-core/src/controller/list/useListContextWithProps.d.ts +44 -0
  117. package/dist/ra-core/src/controller/list/useListContextWithProps.js +84 -0
  118. package/dist/ra-core/src/controller/list/useListController.d.ts +296 -0
  119. package/dist/ra-core/src/controller/list/useListController.js +234 -0
  120. package/dist/ra-core/src/controller/list/useListFilterContext.d.ts +11 -0
  121. package/dist/ra-core/src/controller/list/useListFilterContext.js +18 -0
  122. package/dist/ra-core/src/controller/list/useListPaginationContext.d.ts +12 -0
  123. package/dist/ra-core/src/controller/list/useListPaginationContext.js +19 -0
  124. package/dist/ra-core/src/controller/list/useListParams.d.ts +116 -0
  125. package/dist/ra-core/src/controller/list/useListParams.js +281 -0
  126. package/dist/ra-core/src/controller/list/useListSortContext.d.ts +12 -0
  127. package/dist/ra-core/src/controller/list/useListSortContext.js +19 -0
  128. package/dist/ra-core/src/controller/list/useRecordSelection.d.ts +32 -0
  129. package/dist/ra-core/src/controller/list/useRecordSelection.js +93 -0
  130. package/dist/ra-core/src/controller/list/useSavedQueries.d.ts +14 -0
  131. package/dist/ra-core/src/controller/list/useSavedQueries.js +29 -0
  132. package/dist/ra-core/src/controller/list/useUnselect.d.ts +10 -0
  133. package/dist/ra-core/src/controller/list/useUnselect.js +18 -0
  134. package/dist/ra-core/src/controller/list/useUnselectAll.d.ts +9 -0
  135. package/dist/ra-core/src/controller/list/useUnselectAll.js +18 -0
  136. package/dist/ra-core/src/controller/record/index.d.ts +5 -0
  137. package/dist/ra-core/src/controller/record/index.js +5 -0
  138. package/dist/ra-core/src/controller/record/useRecordContext.d.ts +34 -0
  139. package/dist/ra-core/src/controller/record/useRecordContext.js +36 -0
  140. package/dist/ra-core/src/controller/saveContext/SaveContext.d.ts +20 -0
  141. package/dist/ra-core/src/controller/saveContext/SaveContext.js +2 -0
  142. package/dist/ra-core/src/controller/saveContext/index.d.ts +6 -0
  143. package/dist/ra-core/src/controller/saveContext/index.js +6 -0
  144. package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.d.ts +39 -0
  145. package/dist/ra-core/src/controller/saveContext/useMutationMiddlewares.js +79 -0
  146. package/dist/ra-core/src/controller/saveContext/usePickSaveContext.d.ts +5 -0
  147. package/dist/ra-core/src/controller/saveContext/usePickSaveContext.js +25 -0
  148. package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.d.ts +6 -0
  149. package/dist/ra-core/src/controller/saveContext/useRegisterMutationMiddleware.js +18 -0
  150. package/dist/ra-core/src/controller/saveContext/useSaveContext.d.ts +14 -0
  151. package/dist/ra-core/src/controller/saveContext/useSaveContext.js +17 -0
  152. package/dist/ra-core/src/controller/show/index.d.ts +6 -0
  153. package/dist/ra-core/src/controller/show/index.js +6 -0
  154. package/dist/ra-core/src/controller/show/useShowController.d.ts +75 -0
  155. package/dist/ra-core/src/controller/show/useShowController.js +110 -0
  156. package/dist/ra-core/src/controller/useFilterState.d.ts +46 -0
  157. package/dist/ra-core/src/controller/useFilterState.js +70 -0
  158. package/dist/ra-core/src/controller/usePaginationState.d.ts +33 -0
  159. package/dist/ra-core/src/controller/usePaginationState.js +45 -0
  160. package/dist/ra-core/src/controller/usePrevNextController.d.ts +127 -0
  161. package/dist/ra-core/src/controller/usePrevNextController.js +215 -0
  162. package/dist/ra-core/src/controller/useReference.d.ts +49 -0
  163. package/dist/ra-core/src/controller/useReference.js +42 -0
  164. package/dist/ra-core/src/controller/useSortState.d.ts +61 -0
  165. package/dist/ra-core/src/controller/useSortState.js +96 -0
  166. package/dist/ra-core/src/core/DefaultTitleContext.d.ts +15 -0
  167. package/dist/ra-core/src/core/DefaultTitleContext.js +15 -0
  168. package/dist/ra-core/src/core/HasDashboardContext.d.ts +21 -0
  169. package/dist/ra-core/src/core/HasDashboardContext.js +22 -0
  170. package/dist/ra-core/src/core/ResourceContext.d.ts +19 -0
  171. package/dist/ra-core/src/core/ResourceContext.js +19 -0
  172. package/dist/ra-core/src/core/UserMenuContext.d.ts +34 -0
  173. package/dist/ra-core/src/core/UserMenuContext.js +28 -0
  174. package/dist/ra-core/src/core/index.d.ts +27 -0
  175. package/dist/ra-core/src/core/index.js +27 -0
  176. package/dist/ra-core/src/core/useGetRecordRepresentation.d.ts +13 -0
  177. package/dist/ra-core/src/core/useGetRecordRepresentation.js +44 -0
  178. package/dist/ra-core/src/core/useGetResourceLabel.d.ts +22 -0
  179. package/dist/ra-core/src/core/useGetResourceLabel.js +42 -0
  180. package/dist/ra-core/src/core/useIsOffline.d.ts +7 -0
  181. package/dist/ra-core/src/core/useIsOffline.js +18 -0
  182. package/dist/ra-core/src/core/useResourceContext.d.ts +36 -0
  183. package/dist/ra-core/src/core/useResourceContext.js +38 -0
  184. package/dist/ra-core/src/core/useResourceDefinition.d.ts +31 -0
  185. package/dist/ra-core/src/core/useResourceDefinition.js +48 -0
  186. package/dist/ra-core/src/core/useResourceDefinitionContext.d.ts +1 -0
  187. package/dist/ra-core/src/core/useResourceDefinitionContext.js +3 -0
  188. package/dist/ra-core/src/core/useResourceDefinitions.d.ts +21 -0
  189. package/dist/ra-core/src/core/useResourceDefinitions.js +20 -0
  190. package/dist/ra-core/src/core/useUserMenu.d.ts +28 -0
  191. package/dist/ra-core/src/core/useUserMenu.js +30 -0
  192. package/dist/ra-core/src/core/useWrappedSource.d.ts +11 -0
  193. package/dist/ra-core/src/core/useWrappedSource.js +15 -0
  194. package/dist/ra-core/src/dataProvider/DataProviderContext.d.ts +3 -0
  195. package/dist/ra-core/src/dataProvider/DataProviderContext.js +4 -0
  196. package/dist/ra-core/src/dataProvider/HttpError.d.ts +6 -0
  197. package/dist/ra-core/src/dataProvider/HttpError.js +19 -0
  198. package/dist/ra-core/src/dataProvider/combineDataProviders.d.ts +21 -0
  199. package/dist/ra-core/src/dataProvider/combineDataProviders.js +32 -0
  200. package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.d.ts +12 -0
  201. package/dist/ra-core/src/dataProvider/convertLegacyDataProvider.js +40 -0
  202. package/dist/ra-core/src/dataProvider/dataFetchActions.d.ts +15 -0
  203. package/dist/ra-core/src/dataProvider/dataFetchActions.js +49 -0
  204. package/dist/ra-core/src/dataProvider/defaultDataProvider.d.ts +2 -0
  205. package/dist/ra-core/src/dataProvider/defaultDataProvider.js +12 -0
  206. package/dist/ra-core/src/dataProvider/fetch.d.ts +32 -0
  207. package/dist/ra-core/src/dataProvider/fetch.js +78 -0
  208. package/dist/ra-core/src/dataProvider/index.d.ts +34 -0
  209. package/dist/ra-core/src/dataProvider/index.js +33 -0
  210. package/dist/ra-core/src/dataProvider/populateQueryCache.d.ts +22 -0
  211. package/dist/ra-core/src/dataProvider/populateQueryCache.js +30 -0
  212. package/dist/ra-core/src/dataProvider/testDataProvider.d.ts +2 -0
  213. package/dist/ra-core/src/dataProvider/testDataProvider.js +41 -0
  214. package/dist/ra-core/src/dataProvider/undo/index.d.ts +6 -0
  215. package/dist/ra-core/src/dataProvider/undo/index.js +6 -0
  216. package/dist/ra-core/src/dataProvider/undo/types.d.ts +3 -0
  217. package/dist/ra-core/src/dataProvider/undo/types.js +1 -0
  218. package/dist/ra-core/src/dataProvider/undoableEventEmitter.d.ts +3 -0
  219. package/dist/ra-core/src/dataProvider/undoableEventEmitter.js +2 -0
  220. package/dist/ra-core/src/dataProvider/useCreate.d.ts +89 -0
  221. package/dist/ra-core/src/dataProvider/useCreate.js +155 -0
  222. package/dist/ra-core/src/dataProvider/useDataProvider.d.ts +2 -0
  223. package/dist/ra-core/src/dataProvider/useDataProvider.js +140 -0
  224. package/dist/ra-core/src/dataProvider/useDelete.d.ts +83 -0
  225. package/dist/ra-core/src/dataProvider/useDelete.js +171 -0
  226. package/dist/ra-core/src/dataProvider/useDeleteMany.d.ts +81 -0
  227. package/dist/ra-core/src/dataProvider/useDeleteMany.js +193 -0
  228. package/dist/ra-core/src/dataProvider/useGetList.d.ts +58 -0
  229. package/dist/ra-core/src/dataProvider/useGetList.js +131 -0
  230. package/dist/ra-core/src/dataProvider/useGetMany.d.ts +49 -0
  231. package/dist/ra-core/src/dataProvider/useGetMany.js +143 -0
  232. package/dist/ra-core/src/dataProvider/useGetManyAggregate.d.ts +62 -0
  233. package/dist/ra-core/src/dataProvider/useGetManyAggregate.js +295 -0
  234. package/dist/ra-core/src/dataProvider/useGetManyReference.d.ts +62 -0
  235. package/dist/ra-core/src/dataProvider/useGetManyReference.js +117 -0
  236. package/dist/ra-core/src/dataProvider/useGetOne.d.ts +48 -0
  237. package/dist/ra-core/src/dataProvider/useGetOne.js +94 -0
  238. package/dist/ra-core/src/dataProvider/useGetRecordId.d.ts +14 -0
  239. package/dist/ra-core/src/dataProvider/useGetRecordId.js +22 -0
  240. package/dist/ra-core/src/dataProvider/useInfiniteGetList.d.ts +64 -0
  241. package/dist/ra-core/src/dataProvider/useInfiniteGetList.js +177 -0
  242. package/dist/ra-core/src/dataProvider/useIsDataLoaded.d.ts +13 -0
  243. package/dist/ra-core/src/dataProvider/useIsDataLoaded.js +35 -0
  244. package/dist/ra-core/src/dataProvider/useLoading.d.ts +12 -0
  245. package/dist/ra-core/src/dataProvider/useLoading.js +41 -0
  246. package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.d.ts +51 -0
  247. package/dist/ra-core/src/dataProvider/useMutationWithMutationMode.js +238 -0
  248. package/dist/ra-core/src/dataProvider/useRefresh.d.ts +14 -0
  249. package/dist/ra-core/src/dataProvider/useRefresh.js +21 -0
  250. package/dist/ra-core/src/dataProvider/useUpdate.d.ts +89 -0
  251. package/dist/ra-core/src/dataProvider/useUpdate.js +183 -0
  252. package/dist/ra-core/src/dataProvider/useUpdateMany.d.ts +81 -0
  253. package/dist/ra-core/src/dataProvider/useUpdateMany.js +171 -0
  254. package/dist/ra-core/src/dataProvider/validateResponseFormat.d.ts +5 -0
  255. package/dist/ra-core/src/dataProvider/validateResponseFormat.js +35 -0
  256. package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.d.ts +162 -0
  257. package/dist/ra-core/src/dataProvider/withLifecycleCallbacks.js +377 -0
  258. package/dist/ra-core/src/dataTable/DataTableCallbacksContext.d.ts +18 -0
  259. package/dist/ra-core/src/dataTable/DataTableCallbacksContext.js +3 -0
  260. package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.d.ts +2 -0
  261. package/dist/ra-core/src/dataTable/DataTableColumnFilterContext.js +3 -0
  262. package/dist/ra-core/src/dataTable/DataTableColumnRankContext.d.ts +2 -0
  263. package/dist/ra-core/src/dataTable/DataTableColumnRankContext.js +3 -0
  264. package/dist/ra-core/src/dataTable/DataTableConfigContext.d.ts +22 -0
  265. package/dist/ra-core/src/dataTable/DataTableConfigContext.js +7 -0
  266. package/dist/ra-core/src/dataTable/DataTableDataContext.d.ts +4 -0
  267. package/dist/ra-core/src/dataTable/DataTableDataContext.js +3 -0
  268. package/dist/ra-core/src/dataTable/DataTableRenderContext.d.ts +3 -0
  269. package/dist/ra-core/src/dataTable/DataTableRenderContext.js +3 -0
  270. package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.d.ts +3 -0
  271. package/dist/ra-core/src/dataTable/DataTableSelectedIdsContext.js +3 -0
  272. package/dist/ra-core/src/dataTable/DataTableSortContext.d.ts +3 -0
  273. package/dist/ra-core/src/dataTable/DataTableSortContext.js +3 -0
  274. package/dist/ra-core/src/dataTable/DataTableStoreContext.d.ts +8 -0
  275. package/dist/ra-core/src/dataTable/DataTableStoreContext.js +6 -0
  276. package/dist/ra-core/src/dataTable/index.d.ts +11 -0
  277. package/dist/ra-core/src/dataTable/index.js +11 -0
  278. package/dist/ra-core/src/dataTable/types.d.ts +2 -0
  279. package/dist/ra-core/src/dataTable/types.js +1 -0
  280. package/dist/ra-core/src/export/ExporterContext.d.ts +2 -0
  281. package/dist/ra-core/src/export/ExporterContext.js +4 -0
  282. package/dist/ra-core/src/export/defaultExporter.d.ts +2 -0
  283. package/dist/ra-core/src/export/defaultExporter.js +3 -0
  284. package/dist/ra-core/src/export/downloadCSV.d.ts +1 -0
  285. package/dist/ra-core/src/export/downloadCSV.js +17 -0
  286. package/dist/ra-core/src/export/fetchRelatedRecords.d.ts +14 -0
  287. package/dist/ra-core/src/export/fetchRelatedRecords.js +19 -0
  288. package/dist/ra-core/src/export/getRelatedIds.d.ts +24 -0
  289. package/dist/ra-core/src/export/getRelatedIds.js +26 -0
  290. package/dist/ra-core/src/export/index.d.ts +5 -0
  291. package/dist/ra-core/src/export/index.js +5 -0
  292. package/dist/ra-core/src/export/useBulkExport.d.ts +11 -0
  293. package/dist/ra-core/src/export/useBulkExport.js +30 -0
  294. package/dist/ra-core/src/form/WarnWhenUnsavedChanges.d.ts +5 -0
  295. package/dist/ra-core/src/form/WarnWhenUnsavedChanges.js +5 -0
  296. package/dist/ra-core/src/form/choices/ChoicesContext.d.ts +65 -0
  297. package/dist/ra-core/src/form/choices/ChoicesContext.js +7 -0
  298. package/dist/ra-core/src/form/choices/index.d.ts +4 -0
  299. package/dist/ra-core/src/form/choices/index.js +4 -0
  300. package/dist/ra-core/src/form/choices/useChoicesContext.d.ts +5 -0
  301. package/dist/ra-core/src/form/choices/useChoicesContext.js +62 -0
  302. package/dist/ra-core/src/form/getFormInitialValues.d.ts +8 -0
  303. package/dist/ra-core/src/form/getFormInitialValues.js +14 -0
  304. package/dist/ra-core/src/form/groups/FormGroupContext.d.ts +9 -0
  305. package/dist/ra-core/src/form/groups/FormGroupContext.js +9 -0
  306. package/dist/ra-core/src/form/groups/index.d.ts +6 -0
  307. package/dist/ra-core/src/form/groups/index.js +6 -0
  308. package/dist/ra-core/src/form/groups/useFormGroup.d.ts +67 -0
  309. package/dist/ra-core/src/form/groups/useFormGroup.js +146 -0
  310. package/dist/ra-core/src/form/groups/useFormGroupContext.d.ts +4 -0
  311. package/dist/ra-core/src/form/groups/useFormGroupContext.js +9 -0
  312. package/dist/ra-core/src/form/groups/useFormGroups.d.ts +4 -0
  313. package/dist/ra-core/src/form/groups/useFormGroups.js +9 -0
  314. package/dist/ra-core/src/form/index.d.ts +14 -0
  315. package/dist/ra-core/src/form/index.js +14 -0
  316. package/dist/ra-core/src/form/sanitizeEmptyValues.d.ts +7 -0
  317. package/dist/ra-core/src/form/sanitizeEmptyValues.js +26 -0
  318. package/dist/ra-core/src/form/useApplyInputDefaultValues.d.ts +19 -0
  319. package/dist/ra-core/src/form/useApplyInputDefaultValues.js +71 -0
  320. package/dist/ra-core/src/form/useAugmentedForm.d.ts +32 -0
  321. package/dist/ra-core/src/form/useAugmentedForm.js +101 -0
  322. package/dist/ra-core/src/form/useFormIsDirty.d.ts +4 -0
  323. package/dist/ra-core/src/form/useFormIsDirty.js +39 -0
  324. package/dist/ra-core/src/form/useInput.d.ts +33 -0
  325. package/dist/ra-core/src/form/useInput.js +100 -0
  326. package/dist/ra-core/src/form/useRecordFromLocation.d.ts +22 -0
  327. package/dist/ra-core/src/form/useRecordFromLocation.js +59 -0
  328. package/dist/ra-core/src/form/useSuggestions.d.ts +43 -0
  329. package/dist/ra-core/src/form/useSuggestions.js +186 -0
  330. package/dist/ra-core/src/form/validation/getSimpleValidationResolver.d.ts +31 -0
  331. package/dist/ra-core/src/form/validation/getSimpleValidationResolver.js +87 -0
  332. package/dist/ra-core/src/form/validation/index.d.ts +7 -0
  333. package/dist/ra-core/src/form/validation/index.js +7 -0
  334. package/dist/ra-core/src/form/validation/setSubmissionErrors.d.ts +21 -0
  335. package/dist/ra-core/src/form/validation/setSubmissionErrors.js +34 -0
  336. package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.d.ts +26 -0
  337. package/dist/ra-core/src/form/validation/useGetValidationErrorMessage.js +35 -0
  338. package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.d.ts +9 -0
  339. package/dist/ra-core/src/form/validation/useNotifyIsFormInvalid.js +30 -0
  340. package/dist/ra-core/src/form/validation/useUnique.d.ts +57 -0
  341. package/dist/ra-core/src/form/validation/useUnique.js +107 -0
  342. package/dist/ra-core/src/form/validation/validate.d.ts +168 -0
  343. package/dist/ra-core/src/form/validation/validate.js +218 -0
  344. package/dist/ra-core/src/i18n/I18nContext.d.ts +3 -0
  345. package/dist/ra-core/src/i18n/I18nContext.js +11 -0
  346. package/dist/ra-core/src/i18n/TranslatableContext.d.ts +16 -0
  347. package/dist/ra-core/src/i18n/TranslatableContext.js +2 -0
  348. package/dist/ra-core/src/i18n/TranslationMessages.d.ts +221 -0
  349. package/dist/ra-core/src/i18n/TranslationMessages.js +1 -0
  350. package/dist/ra-core/src/i18n/TranslationUtils.d.ts +60 -0
  351. package/dist/ra-core/src/i18n/TranslationUtils.js +70 -0
  352. package/dist/ra-core/src/i18n/index.d.ts +20 -0
  353. package/dist/ra-core/src/i18n/index.js +20 -0
  354. package/dist/ra-core/src/i18n/substituteTokens.d.ts +8 -0
  355. package/dist/ra-core/src/i18n/substituteTokens.js +18 -0
  356. package/dist/ra-core/src/i18n/useI18nProvider.d.ts +12 -0
  357. package/dist/ra-core/src/i18n/useI18nProvider.js +14 -0
  358. package/dist/ra-core/src/i18n/useLocales.d.ts +31 -0
  359. package/dist/ra-core/src/i18n/useLocales.js +28 -0
  360. package/dist/ra-core/src/i18n/useResourceTranslation.d.ts +8 -0
  361. package/dist/ra-core/src/i18n/useResourceTranslation.js +18 -0
  362. package/dist/ra-core/src/i18n/useTranslatable.d.ts +29 -0
  363. package/dist/ra-core/src/i18n/useTranslatable.js +98 -0
  364. package/dist/ra-core/src/i18n/useTranslatableContext.d.ts +31 -0
  365. package/dist/ra-core/src/i18n/useTranslatableContext.js +38 -0
  366. package/dist/ra-core/src/i18n/useTranslate.d.ts +21 -0
  367. package/dist/ra-core/src/i18n/useTranslate.js +29 -0
  368. package/dist/ra-core/src/i18n/useTranslateLabel.d.ts +6 -0
  369. package/dist/ra-core/src/i18n/useTranslateLabel.js +26 -0
  370. package/dist/ra-core/src/index.d.ts +16 -0
  371. package/dist/ra-core/src/index.js +16 -0
  372. package/dist/ra-core/src/inference/InferredElement.d.ts +12 -0
  373. package/dist/ra-core/src/inference/InferredElement.js +40 -0
  374. package/dist/ra-core/src/inference/assertions.d.ts +26 -0
  375. package/dist/ra-core/src/inference/assertions.js +38 -0
  376. package/dist/ra-core/src/inference/getElementsFromRecords.d.ts +35 -0
  377. package/dist/ra-core/src/inference/getElementsFromRecords.js +39 -0
  378. package/dist/ra-core/src/inference/getValuesFromRecords.d.ts +28 -0
  379. package/dist/ra-core/src/inference/getValuesFromRecords.js +40 -0
  380. package/dist/ra-core/src/inference/index.d.ts +6 -0
  381. package/dist/ra-core/src/inference/index.js +6 -0
  382. package/dist/ra-core/src/inference/inferTypeFromValues.d.ts +21 -0
  383. package/dist/ra-core/src/inference/inferTypeFromValues.js +141 -0
  384. package/dist/ra-core/src/inference/types.d.ts +9 -0
  385. package/dist/ra-core/src/inference/types.js +1 -0
  386. package/dist/ra-core/src/notification/CloseNotificationContext.d.ts +2 -0
  387. package/dist/ra-core/src/notification/CloseNotificationContext.js +2 -0
  388. package/dist/ra-core/src/notification/NotificationContext.d.ts +37 -0
  389. package/dist/ra-core/src/notification/NotificationContext.js +35 -0
  390. package/dist/ra-core/src/notification/index.d.ts +9 -0
  391. package/dist/ra-core/src/notification/index.js +9 -0
  392. package/dist/ra-core/src/notification/types.d.ts +14 -0
  393. package/dist/ra-core/src/notification/types.js +1 -0
  394. package/dist/ra-core/src/notification/useCloseNotification.d.ts +1 -0
  395. package/dist/ra-core/src/notification/useCloseNotification.js +9 -0
  396. package/dist/ra-core/src/notification/useNotificationContext.d.ts +1 -0
  397. package/dist/ra-core/src/notification/useNotificationContext.js +3 -0
  398. package/dist/ra-core/src/notification/useNotify.d.ts +20 -0
  399. package/dist/ra-core/src/notification/useNotify.js +28 -0
  400. package/dist/ra-core/src/preferences/index.d.ts +7 -0
  401. package/dist/ra-core/src/preferences/index.js +7 -0
  402. package/dist/ra-core/src/preferences/usePreference.d.ts +18 -0
  403. package/dist/ra-core/src/preferences/usePreference.js +10 -0
  404. package/dist/ra-core/src/preferences/usePreferenceInput.d.ts +22 -0
  405. package/dist/ra-core/src/preferences/usePreferenceInput.js +43 -0
  406. package/dist/ra-core/src/preferences/usePreferencesEditor.d.ts +2 -0
  407. package/dist/ra-core/src/preferences/usePreferencesEditor.js +9 -0
  408. package/dist/ra-core/src/preferences/useSetInspectorTitle.d.ts +7 -0
  409. package/dist/ra-core/src/preferences/useSetInspectorTitle.js +19 -0
  410. package/dist/ra-core/src/routing/BasenameContext.d.ts +1 -0
  411. package/dist/ra-core/src/routing/BasenameContext.js +2 -0
  412. package/dist/ra-core/src/routing/RouterProvider.d.ts +163 -0
  413. package/dist/ra-core/src/routing/RouterProvider.js +1 -0
  414. package/dist/ra-core/src/routing/index.d.ts +28 -0
  415. package/dist/ra-core/src/routing/index.js +28 -0
  416. package/dist/ra-core/src/routing/types.d.ts +3 -0
  417. package/dist/ra-core/src/routing/types.js +1 -0
  418. package/dist/ra-core/src/routing/useBasename.d.ts +21 -0
  419. package/dist/ra-core/src/routing/useBasename.js +23 -0
  420. package/dist/ra-core/src/routing/useBlocker.d.ts +14 -0
  421. package/dist/ra-core/src/routing/useBlocker.js +17 -0
  422. package/dist/ra-core/src/routing/useCanBlock.d.ts +7 -0
  423. package/dist/ra-core/src/routing/useCanBlock.js +11 -0
  424. package/dist/ra-core/src/routing/useCreatePath.d.ts +42 -0
  425. package/dist/ra-core/src/routing/useCreatePath.js +69 -0
  426. package/dist/ra-core/src/routing/useGetPathForRecord.d.ts +42 -0
  427. package/dist/ra-core/src/routing/useGetPathForRecord.js +135 -0
  428. package/dist/ra-core/src/routing/useGetPathForRecordCallback.d.ts +6 -0
  429. package/dist/ra-core/src/routing/useGetPathForRecordCallback.js +82 -0
  430. package/dist/ra-core/src/routing/useInRouterContext.d.ts +11 -0
  431. package/dist/ra-core/src/routing/useInRouterContext.js +15 -0
  432. package/dist/ra-core/src/routing/useLocation.d.ts +10 -0
  433. package/dist/ra-core/src/routing/useLocation.js +13 -0
  434. package/dist/ra-core/src/routing/useMatch.d.ts +15 -0
  435. package/dist/ra-core/src/routing/useMatch.js +15 -0
  436. package/dist/ra-core/src/routing/useMatchPath.d.ts +17 -0
  437. package/dist/ra-core/src/routing/useMatchPath.js +17 -0
  438. package/dist/ra-core/src/routing/useNavigate.d.ts +12 -0
  439. package/dist/ra-core/src/routing/useNavigate.js +15 -0
  440. package/dist/ra-core/src/routing/useParams.d.ts +9 -0
  441. package/dist/ra-core/src/routing/useParams.js +13 -0
  442. package/dist/ra-core/src/routing/useRedirect.d.ts +30 -0
  443. package/dist/ra-core/src/routing/useRedirect.js +66 -0
  444. package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.d.ts +7 -0
  445. package/dist/ra-core/src/routing/useResetErrorBoundaryOnLocationChange.js +17 -0
  446. package/dist/ra-core/src/routing/useRestoreScrollPosition.d.ts +40 -0
  447. package/dist/ra-core/src/routing/useRestoreScrollPosition.js +70 -0
  448. package/dist/ra-core/src/routing/useSplatPathBase.d.ts +13 -0
  449. package/dist/ra-core/src/routing/useSplatPathBase.js +21 -0
  450. package/dist/ra-core/src/store/index.d.ts +11 -0
  451. package/dist/ra-core/src/store/index.js +11 -0
  452. package/dist/ra-core/src/store/localStorageStore.d.ts +27 -0
  453. package/dist/ra-core/src/store/localStorageStore.js +198 -0
  454. package/dist/ra-core/src/store/types.d.ts +11 -0
  455. package/dist/ra-core/src/store/types.js +1 -0
  456. package/dist/ra-core/src/store/useRemoveFromStore.d.ts +17 -0
  457. package/dist/ra-core/src/store/useRemoveFromStore.js +29 -0
  458. package/dist/ra-core/src/store/useRemoveItemsFromStore.d.ts +17 -0
  459. package/dist/ra-core/src/store/useRemoveItemsFromStore.js +29 -0
  460. package/dist/ra-core/src/store/useResetStore.d.ts +17 -0
  461. package/dist/ra-core/src/store/useResetStore.js +21 -0
  462. package/dist/ra-core/src/store/useStore.d.ts +48 -0
  463. package/dist/ra-core/src/store/useStore.js +32 -0
  464. package/dist/ra-core/src/store/useStoreContext.d.ts +4 -0
  465. package/dist/ra-core/src/store/useStoreContext.js +6 -0
  466. package/dist/ra-core/src/test-ui/defaultI18nProvider.d.ts +2 -0
  467. package/dist/ra-core/src/test-ui/defaultI18nProvider.js +10 -0
  468. package/dist/ra-core/src/test-ui/index.d.ts +21 -0
  469. package/dist/ra-core/src/test-ui/index.js +21 -0
  470. package/dist/ra-core/src/types.d.ts +284 -0
  471. package/dist/ra-core/src/types.js +5 -0
  472. package/dist/ra-core/src/util/asyncDebounce.d.ts +7 -0
  473. package/dist/ra-core/src/util/asyncDebounce.js +29 -0
  474. package/dist/ra-core/src/util/escapePath.d.ts +11 -0
  475. package/dist/ra-core/src/util/escapePath.js +10 -0
  476. package/dist/ra-core/src/util/genericMemo.d.ts +5 -0
  477. package/dist/ra-core/src/util/genericMemo.js +14 -0
  478. package/dist/ra-core/src/util/getFieldLabelTranslationArgs.d.ts +22 -0
  479. package/dist/ra-core/src/util/getFieldLabelTranslationArgs.js +73 -0
  480. package/dist/ra-core/src/util/getMutationMode.d.ts +1 -0
  481. package/dist/ra-core/src/util/getMutationMode.js +13 -0
  482. package/dist/ra-core/src/util/hooks.d.ts +15 -0
  483. package/dist/ra-core/src/util/hooks.js +73 -0
  484. package/dist/ra-core/src/util/index.d.ts +20 -0
  485. package/dist/ra-core/src/util/index.js +19 -0
  486. package/dist/ra-core/src/util/mergeRefs.d.ts +2 -0
  487. package/dist/ra-core/src/util/mergeRefs.js +13 -0
  488. package/dist/ra-core/src/util/removeEmpty.d.ts +2 -0
  489. package/dist/ra-core/src/util/removeEmpty.js +16 -0
  490. package/dist/ra-core/src/util/removeKey.d.ts +2 -0
  491. package/dist/ra-core/src/util/removeKey.js +22 -0
  492. package/dist/ra-core/src/util/shallowEqual.d.ts +1 -0
  493. package/dist/ra-core/src/util/shallowEqual.js +29 -0
  494. package/dist/ra-core/src/util/useCheckForApplicationUpdate.d.ts +21 -0
  495. package/dist/ra-core/src/util/useCheckForApplicationUpdate.js +84 -0
  496. package/dist/ra-core/src/util/useDebouncedEvent.d.ts +8 -0
  497. package/dist/ra-core/src/util/useDebouncedEvent.js +28 -0
  498. package/dist/ra-core/src/util/useEvent.d.ts +7 -0
  499. package/dist/ra-core/src/util/useEvent.js +19 -0
  500. package/dist/ra-core/src/util/useFieldValue.d.ts +21 -0
  501. package/dist/ra-core/src/util/useFieldValue.js +27 -0
  502. package/dist/ra-core/src/util/useWhyDidYouUpdate.d.ts +12 -0
  503. package/dist/ra-core/src/util/useWhyDidYouUpdate.js +42 -0
  504. package/dist/ra-core/src/util/warning.d.ts +2 -0
  505. package/dist/ra-core/src/util/warning.js +5 -0
  506. package/dist/strato-faker-ecommerce/src/dataProvider.d.ts +2 -0
  507. package/dist/strato-faker-ecommerce/src/dataProvider.js +6 -0
  508. package/dist/strato-faker-ecommerce/src/generate.d.ts +8 -0
  509. package/dist/strato-faker-ecommerce/src/generate.js +148 -0
  510. package/dist/strato-faker-ecommerce/src/index.d.ts +3 -0
  511. package/dist/strato-faker-ecommerce/src/index.js +3 -0
  512. package/dist/strato-faker-ecommerce/src/types.d.ts +69 -0
  513. package/dist/strato-faker-ecommerce/src/types.js +1 -0
  514. package/dist/types.d.ts +1 -1
  515. package/package.json +6 -5
  516. package/src/dataProvider.ts +3 -3
  517. package/src/generate.test.ts +12 -12
  518. package/src/generate.ts +21 -14
  519. package/src/types.ts +1 -1
@@ -0,0 +1,33 @@
1
+ import { PaginationPayload } from '../types';
2
+ /**
3
+ * @typedef PaginationProps
4
+ * @type {Object}
5
+ * @property {number} page: The page number.
6
+ * @property {number} perPage: The number of item per page.
7
+ * @property {Function} setPage: Set the page number
8
+ * @property {Function} setPerPage: Set the per page number
9
+ * @property {Function} setPagination: Set page and perPage pagination numbers
10
+ */
11
+ export interface PaginationHookResult {
12
+ page: number;
13
+ perPage: number;
14
+ pagination: PaginationPayload;
15
+ setPage: (page: number) => void;
16
+ setPerPage: (perPage: number) => void;
17
+ setPagination: (pagination: PaginationPayload) => void;
18
+ }
19
+ /**
20
+ * Hooks to provide pagination state (page and perPage)
21
+ *
22
+ * @example
23
+ *
24
+ * const { page, setPage, perPage, setPerPage } = usePagination(initialPerPage);
25
+ *
26
+ * @param {number} initialPagination the initial value per page
27
+ * @returns {PaginationHookResult} The pagination props
28
+ */
29
+ declare const _default: (initialPagination?: {
30
+ perPage?: number;
31
+ page?: number;
32
+ }) => PaginationHookResult;
33
+ export default _default;
@@ -0,0 +1,45 @@
1
+ import { useEffect, useReducer, useCallback, useRef } from 'react';
2
+ const paginationReducer = (prevState, nextState) => {
3
+ return {
4
+ ...prevState,
5
+ ...nextState,
6
+ };
7
+ };
8
+ const defaultPagination = {
9
+ page: 1,
10
+ perPage: 25,
11
+ };
12
+ /**
13
+ * Hooks to provide pagination state (page and perPage)
14
+ *
15
+ * @example
16
+ *
17
+ * const { page, setPage, perPage, setPerPage } = usePagination(initialPerPage);
18
+ *
19
+ * @param {number} initialPagination the initial value per page
20
+ * @returns {PaginationHookResult} The pagination props
21
+ */
22
+ export default (initialPagination = {}) => {
23
+ const [pagination, setPagination] = useReducer(paginationReducer, {
24
+ ...defaultPagination,
25
+ ...initialPagination,
26
+ });
27
+ const isFirstRender = useRef(true);
28
+ const setPerPage = useCallback(perPage => setPagination({ perPage, page: 1 }), []);
29
+ const setPage = useCallback(page => setPagination({ page }), []);
30
+ useEffect(() => {
31
+ if (isFirstRender.current) {
32
+ isFirstRender.current = false;
33
+ return;
34
+ }
35
+ setPerPage(initialPagination.perPage || 25);
36
+ }, [initialPagination.perPage, setPerPage]);
37
+ return {
38
+ page: pagination.page,
39
+ perPage: pagination.perPage,
40
+ pagination,
41
+ setPage,
42
+ setPerPage,
43
+ setPagination,
44
+ };
45
+ };
@@ -0,0 +1,127 @@
1
+ import { UseQueryOptions } from '@tanstack/react-query';
2
+ import { FilterPayload, RaRecord, SortPayload } from '../types';
3
+ /**
4
+ * A hook used to fetch the previous and next record identifiers for a given record and resource.
5
+ *
6
+ * It fetches the list of records according to the filters
7
+ * and the sort order configured in the list, and merges
8
+ * the filters and the sorting order passed as props.
9
+ *
10
+ * usePrevNextController can be used anywhere a record context is provided
11
+ * (often inside a `<Show>` or `<Edit>` component).
12
+ *
13
+ * @example <caption>Simple usage</caption>
14
+ *
15
+ * import { usePrevNextControllerProps } from '@strato-admin/ra-core';
16
+ * const {
17
+ * hasPrev,
18
+ * hasNext,
19
+ * prevPath,
20
+ * nextPath,
21
+ * index,
22
+ * total,
23
+ * error,
24
+ * isPending,
25
+ * } = usePrevNextController(props);
26
+ *
27
+ * @example <caption>Custom PrevNextButton</caption>
28
+ *
29
+ * import { UsePrevNextControllerProps, useTranslate } from '@strato-admin/ra-core';
30
+ * import NavigateBefore from '@mui/icons-material/NavigateBefore';
31
+ * import NavigateNext from '@mui/icons-material/NavigateNext';
32
+ * import ErrorIcon from '@mui/icons-material/Error';
33
+ * import { Link } from 'react-router-dom';
34
+ * import { CircularProgress, IconButton } from '@mui/material';
35
+ *
36
+ * const MyPrevNextButtons = props => {
37
+ * const {
38
+ * hasPrev,
39
+ * hasNext,
40
+ * nextPath,
41
+ * prevPath,
42
+ * index,
43
+ * total,
44
+ * error,
45
+ * isPending,
46
+ * } = usePrevNextController(props);
47
+ *
48
+ * const translate = useTranslate();
49
+ *
50
+ * if (isPending) {
51
+ * return <CircularProgress size={14} />;
52
+ * }
53
+ *
54
+ * if (error) {
55
+ * return (
56
+ * <ErrorIcon
57
+ * color="error"
58
+ * fontSize="small"
59
+ * titleAccess="error"
60
+ * aria-errormessage={error.message}
61
+ * />
62
+ * );
63
+ * }
64
+ *
65
+ * return (
66
+ * <ul>
67
+ * <li>
68
+ * <IconButton
69
+ * component={hasPrev ? Link : undefined}
70
+ * to={navigateToPrev}
71
+ * aria-label={translate("strato.navigation.previous')}
72
+ * disabled={!hasPrev}
73
+ * >
74
+ * <NavigateBefore />
75
+ * </IconButton>
76
+ * </li>
77
+ * {typeof index === 'number' && (
78
+ * <li>
79
+ * {index + 1} / {total}
80
+ * </li>
81
+ * )}
82
+ * <li>
83
+ * <IconButton
84
+ * component={hasNext ? Link : undefined}
85
+ * to={navigateToNext}
86
+ * aria-label={translate("strato.navigation.next')}
87
+ * disabled={!hasNext}
88
+ * >
89
+ * <NavigateNext />
90
+ * </IconButton>
91
+ * </li>
92
+ * </ul>
93
+ * );
94
+ * };
95
+ */
96
+ export declare const usePrevNextController: <RecordType extends RaRecord = any>(props: UsePrevNextControllerProps<RecordType>) => UsePrevNextControllerResult;
97
+ export interface UsePrevNextControllerProps<RecordType extends RaRecord = any> {
98
+ linkType?: 'edit' | 'show';
99
+ storeKey?: string | false;
100
+ limit?: number;
101
+ filter?: FilterPayload;
102
+ filterDefaultValues?: FilterPayload;
103
+ sort?: SortPayload;
104
+ resource?: string;
105
+ queryOptions?: Omit<UseQueryOptions<{
106
+ data: RecordType[];
107
+ total?: number;
108
+ pageInfo?: {
109
+ hasNextPage?: boolean;
110
+ hasPreviousPage?: boolean;
111
+ };
112
+ }>, 'queryFn' | 'queryKey'> & {
113
+ meta?: any;
114
+ };
115
+ }
116
+ export type UsePrevNextControllerResult = {
117
+ isFetching: boolean;
118
+ isLoading: boolean;
119
+ isPending: boolean;
120
+ hasPrev: boolean;
121
+ hasNext: boolean;
122
+ prevPath: string | undefined;
123
+ nextPath: string | undefined;
124
+ index: number | undefined;
125
+ total: number | undefined;
126
+ error?: any;
127
+ };
@@ -0,0 +1,215 @@
1
+ import { useQuery, useQueryClient, } from '@tanstack/react-query';
2
+ import { useResourceContext } from '../core';
3
+ import { useDataProvider } from '../dataProvider';
4
+ import { useStore } from '../store';
5
+ import { SORT_ASC } from './list';
6
+ import { useRecordContext } from './record';
7
+ import { useCreatePath } from '../routing';
8
+ /**
9
+ * A hook used to fetch the previous and next record identifiers for a given record and resource.
10
+ *
11
+ * It fetches the list of records according to the filters
12
+ * and the sort order configured in the list, and merges
13
+ * the filters and the sorting order passed as props.
14
+ *
15
+ * usePrevNextController can be used anywhere a record context is provided
16
+ * (often inside a `<Show>` or `<Edit>` component).
17
+ *
18
+ * @example <caption>Simple usage</caption>
19
+ *
20
+ * import { usePrevNextControllerProps } from '@strato-admin/ra-core';
21
+ * const {
22
+ * hasPrev,
23
+ * hasNext,
24
+ * prevPath,
25
+ * nextPath,
26
+ * index,
27
+ * total,
28
+ * error,
29
+ * isPending,
30
+ * } = usePrevNextController(props);
31
+ *
32
+ * @example <caption>Custom PrevNextButton</caption>
33
+ *
34
+ * import { UsePrevNextControllerProps, useTranslate } from '@strato-admin/ra-core';
35
+ * import NavigateBefore from '@mui/icons-material/NavigateBefore';
36
+ * import NavigateNext from '@mui/icons-material/NavigateNext';
37
+ * import ErrorIcon from '@mui/icons-material/Error';
38
+ * import { Link } from 'react-router-dom';
39
+ * import { CircularProgress, IconButton } from '@mui/material';
40
+ *
41
+ * const MyPrevNextButtons = props => {
42
+ * const {
43
+ * hasPrev,
44
+ * hasNext,
45
+ * nextPath,
46
+ * prevPath,
47
+ * index,
48
+ * total,
49
+ * error,
50
+ * isPending,
51
+ * } = usePrevNextController(props);
52
+ *
53
+ * const translate = useTranslate();
54
+ *
55
+ * if (isPending) {
56
+ * return <CircularProgress size={14} />;
57
+ * }
58
+ *
59
+ * if (error) {
60
+ * return (
61
+ * <ErrorIcon
62
+ * color="error"
63
+ * fontSize="small"
64
+ * titleAccess="error"
65
+ * aria-errormessage={error.message}
66
+ * />
67
+ * );
68
+ * }
69
+ *
70
+ * return (
71
+ * <ul>
72
+ * <li>
73
+ * <IconButton
74
+ * component={hasPrev ? Link : undefined}
75
+ * to={navigateToPrev}
76
+ * aria-label={translate("strato.navigation.previous')}
77
+ * disabled={!hasPrev}
78
+ * >
79
+ * <NavigateBefore />
80
+ * </IconButton>
81
+ * </li>
82
+ * {typeof index === 'number' && (
83
+ * <li>
84
+ * {index + 1} / {total}
85
+ * </li>
86
+ * )}
87
+ * <li>
88
+ * <IconButton
89
+ * component={hasNext ? Link : undefined}
90
+ * to={navigateToNext}
91
+ * aria-label={translate("strato.navigation.next')}
92
+ * disabled={!hasNext}
93
+ * >
94
+ * <NavigateNext />
95
+ * </IconButton>
96
+ * </li>
97
+ * </ul>
98
+ * );
99
+ * };
100
+ */
101
+ export const usePrevNextController = (props) => {
102
+ const { linkType = 'edit', storeKey, limit = 1000, sort: initialSort = { field: 'id', order: SORT_ASC }, filter: permanentFilter = {}, filterDefaultValues = {}, queryOptions = {
103
+ staleTime: 5 * 60 * 1000,
104
+ }, } = props;
105
+ const record = useRecordContext(props);
106
+ const resource = useResourceContext(props);
107
+ const createPath = useCreatePath();
108
+ if (!resource) {
109
+ throw new Error(`useNextPrevController was called outside of a ResourceContext and without a resource prop. You must set the resource prop.`);
110
+ }
111
+ const [storedParams] = useStore(storeKey || `${resource}.listParams`, {
112
+ filter: filterDefaultValues,
113
+ order: initialSort.order,
114
+ sort: initialSort.field,
115
+ page: 1,
116
+ perPage: 10,
117
+ displayedFilters: {},
118
+ });
119
+ const dataProvider = useDataProvider();
120
+ const queryClient = useQueryClient();
121
+ const pagination = { page: 1, perPage: limit };
122
+ const sort = {
123
+ field: storedParams.sort,
124
+ order: storedParams.order,
125
+ };
126
+ const filter = { ...storedParams.filter, ...permanentFilter };
127
+ const { meta, ...otherQueryOptions } = queryOptions;
128
+ const params = { pagination, sort, filter, meta };
129
+ // try to use data from the cache first
130
+ const queryData = queryClient.getQueryData([
131
+ resource,
132
+ 'getList',
133
+ {
134
+ ...params,
135
+ pagination: {
136
+ page: storedParams.page,
137
+ perPage: storedParams.perPage,
138
+ },
139
+ },
140
+ ]);
141
+ const recordIndexInQueryData = queryData?.data?.findIndex(r => r.id === record?.id);
142
+ const isRecordIndexFirstInNonFirstPage = recordIndexInQueryData === 0 && storedParams.page > 1;
143
+ const isRecordIndexLastInNonLastPage = queryData?.data && queryData?.total
144
+ ? recordIndexInQueryData === queryData?.data?.length - 1 &&
145
+ storedParams.page < queryData?.total / storedParams.perPage
146
+ : undefined;
147
+ const canUseCacheData = record &&
148
+ queryData?.data &&
149
+ recordIndexInQueryData !== -1 &&
150
+ !isRecordIndexFirstInNonFirstPage &&
151
+ !isRecordIndexLastInNonLastPage;
152
+ // If the previous and next ids are not in the cache, fetch the entire list.
153
+ // This is necessary e.g. when coming directly to a detail page,
154
+ // without displaying the list first
155
+ const { data, error, isFetching, isLoading, isPending } = useQuery({
156
+ queryKey: [resource, 'getList', params],
157
+ queryFn: queryParams => {
158
+ return dataProvider.getList(resource, {
159
+ ...params,
160
+ signal: dataProvider.supportAbortSignal === true
161
+ ? queryParams.signal
162
+ : undefined,
163
+ });
164
+ },
165
+ enabled: !canUseCacheData,
166
+ ...otherQueryOptions,
167
+ });
168
+ const finalData = canUseCacheData ? queryData.data : data?.data || [];
169
+ if (!record || (isPending && !canUseCacheData))
170
+ return {
171
+ isFetching: true,
172
+ isLoading: true,
173
+ isPending: true,
174
+ prevPath: undefined,
175
+ nextPath: undefined,
176
+ index: undefined,
177
+ total: undefined,
178
+ hasPrev: false,
179
+ hasNext: false,
180
+ };
181
+ const ids = finalData.map(record => record.id);
182
+ const index = ids.indexOf(record.id);
183
+ const previousId = typeof ids[index - 1] !== 'undefined' ? ids[index - 1] : null; // could be 0
184
+ const nextId = index !== -1 && index < ids.length - 1 ? ids[index + 1] : null;
185
+ return {
186
+ hasPrev: previousId !== null,
187
+ hasNext: nextId !== null,
188
+ prevPath: previousId !== null
189
+ ? createPath({
190
+ type: linkType,
191
+ resource,
192
+ id: previousId,
193
+ })
194
+ : undefined,
195
+ nextPath: nextId !== null
196
+ ? createPath({
197
+ type: linkType,
198
+ resource,
199
+ id: nextId,
200
+ })
201
+ : undefined,
202
+ index: index === -1
203
+ ? undefined
204
+ : index +
205
+ (canUseCacheData
206
+ ? (storedParams.perPage ?? 0) *
207
+ ((storedParams.page ?? 1) - 1)
208
+ : 0),
209
+ total: canUseCacheData ? queryData?.total : data?.total,
210
+ error,
211
+ isFetching: canUseCacheData ? false : isFetching,
212
+ isLoading: canUseCacheData ? false : isLoading,
213
+ isPending: canUseCacheData ? false : isPending,
214
+ };
215
+ };
@@ -0,0 +1,49 @@
1
+ import { RaRecord, Identifier } from '../types';
2
+ import { UseGetManyHookValue } from '../dataProvider';
3
+ import { UseQueryOptions } from '@tanstack/react-query';
4
+ interface UseReferenceProps<RecordType extends RaRecord = any, ErrorType = Error> {
5
+ id: Identifier;
6
+ reference: string;
7
+ options?: Omit<UseQueryOptions<RecordType[], ErrorType>, 'queryFn' | 'queryKey'> & {
8
+ meta?: any;
9
+ };
10
+ }
11
+ export interface UseReferenceResult<RecordType extends RaRecord = any, ErrorType = Error> {
12
+ isLoading: boolean;
13
+ isPaused?: boolean;
14
+ isPending: boolean;
15
+ isPlaceholderData?: boolean;
16
+ isFetching: boolean;
17
+ referenceRecord?: RecordType;
18
+ error?: ErrorType | null;
19
+ refetch: UseGetManyHookValue<RecordType, ErrorType>['refetch'];
20
+ }
21
+ /**
22
+ * @typedef UseReferenceResult
23
+ * @type {Object}
24
+ * @property {boolean} isFetching: boolean indicating if the reference is loading
25
+ * @property {boolean} isLoading: boolean indicating if the reference has loaded at least once
26
+ * @property {Object} referenceRecord: the referenced record.
27
+ */
28
+ /**
29
+ * Fetch reference record, and return it when available
30
+ *
31
+ * The reference prop should be the name of one of the <Resource> components
32
+ * added as <Admin> child.
33
+ *
34
+ * @example
35
+ *
36
+ * const { isLoading, referenceRecord } = useReference({
37
+ * id: 7,
38
+ * reference: 'users',
39
+ * });
40
+ *
41
+ * @param {Object} option
42
+ * @param {string} option.reference The linked resource name
43
+ * @param {string} option.id The id of the reference
44
+ * @param {Object} option.options Options passed to the dataProvider
45
+ *
46
+ * @returns {UseReferenceResult} The reference record
47
+ */
48
+ export declare const useReference: <RecordType extends RaRecord = RaRecord, ErrorType = Error>({ reference, id, options, }: UseReferenceProps<RecordType, ErrorType>) => UseReferenceResult<RecordType, ErrorType>;
49
+ export {};
@@ -0,0 +1,42 @@
1
+ import { useGetManyAggregate } from '../dataProvider';
2
+ /**
3
+ * @typedef UseReferenceResult
4
+ * @type {Object}
5
+ * @property {boolean} isFetching: boolean indicating if the reference is loading
6
+ * @property {boolean} isLoading: boolean indicating if the reference has loaded at least once
7
+ * @property {Object} referenceRecord: the referenced record.
8
+ */
9
+ /**
10
+ * Fetch reference record, and return it when available
11
+ *
12
+ * The reference prop should be the name of one of the <Resource> components
13
+ * added as <Admin> child.
14
+ *
15
+ * @example
16
+ *
17
+ * const { isLoading, referenceRecord } = useReference({
18
+ * id: 7,
19
+ * reference: 'users',
20
+ * });
21
+ *
22
+ * @param {Object} option
23
+ * @param {string} option.reference The linked resource name
24
+ * @param {string} option.id The id of the reference
25
+ * @param {Object} option.options Options passed to the dataProvider
26
+ *
27
+ * @returns {UseReferenceResult} The reference record
28
+ */
29
+ export const useReference = ({ reference, id, options = {}, }) => {
30
+ const { meta, ...otherQueryOptions } = options;
31
+ const { data, error, isLoading, isFetching, isPaused, isPending, isPlaceholderData, refetch, } = useGetManyAggregate(reference, { ids: [id], meta }, otherQueryOptions);
32
+ return {
33
+ referenceRecord: error ? undefined : data ? data[0] : undefined,
34
+ refetch,
35
+ error,
36
+ isLoading,
37
+ isFetching,
38
+ isPaused,
39
+ isPending,
40
+ isPlaceholderData,
41
+ };
42
+ };
@@ -0,0 +1,61 @@
1
+ import { SortPayload } from '../types';
2
+ export interface SortProps {
3
+ setSortField: (field: SortPayload['field']) => void;
4
+ setSortOrder: (order: SortPayload['order']) => void;
5
+ setSort: (sort: SortPayload) => void;
6
+ sort: SortPayload;
7
+ }
8
+ export declare const defaultSort: {
9
+ readonly field: "";
10
+ readonly order: "ASC";
11
+ };
12
+ /**
13
+ * Set the sort { field, order }
14
+ * @name setSort
15
+ * @function
16
+ * @param {SortPayload} sort the sort object
17
+ */
18
+ /**
19
+ * Set the sort field, swap the order if the field is the same
20
+ * @name setSortField
21
+ * @function
22
+ * @param {string} field the sort field
23
+ */
24
+ /**
25
+ * Set the sort order
26
+ * @name setSortOrder
27
+ * @function
28
+ * @param {string} order The sort order, either ASC or DESC
29
+ */
30
+ /**
31
+ * @typedef SortProps
32
+ * @type {Object}
33
+ * @property {Object} sort: the sort object.
34
+ * @property {string} sort.field: the sort object.
35
+ * @property {'ASC' | 'DESC'} sort.order: the sort object.
36
+ * @property {setSort} setSort
37
+ * @property {setSortField} setSortField
38
+ * @property {setSortOrder} setSortOrder
39
+ */
40
+ /**
41
+ * Hooks to provide sort state
42
+ *
43
+ * @example
44
+ *
45
+ * const { sort, setSort, setSortField, setSortOrder } = useSort({
46
+ * field: 'name',
47
+ * order: 'ASC',
48
+ * });
49
+ *
50
+ * setSort({ field: 'name', order: 'ASC' });
51
+ * // is the same as
52
+ * setSortField('name');
53
+ * setSortOrder('ASC');
54
+ *
55
+ * @param {Object} initialSort
56
+ * @param {string} initialSort.field The initial sort field
57
+ * @param {string} initialSort.order The initial sort order
58
+ * @returns {SortProps} The sort props
59
+ */
60
+ declare const useSortState: (initialSort?: SortPayload) => SortProps;
61
+ export default useSortState;
@@ -0,0 +1,96 @@
1
+ import { useReducer, useEffect, useRef, useCallback } from 'react';
2
+ import { SORT_ASC, SORT_DESC } from './list/queryReducer';
3
+ const sortReducer = (state, action) => {
4
+ switch (action.type) {
5
+ case 'SET_SORT':
6
+ return action.payload;
7
+ case 'SET_SORT_FIELD': {
8
+ const field = action.payload;
9
+ const order = state.field === field
10
+ ? state.order === SORT_ASC
11
+ ? SORT_DESC
12
+ : SORT_ASC
13
+ : SORT_ASC;
14
+ return { field, order };
15
+ }
16
+ case 'SET_SORT_ORDER': {
17
+ const order = action.payload;
18
+ if (!state.field) {
19
+ throw new Error('cannot change the order on an undefined sort field');
20
+ }
21
+ return {
22
+ field: state.field,
23
+ order,
24
+ };
25
+ }
26
+ default:
27
+ return state;
28
+ }
29
+ };
30
+ export const defaultSort = { field: '', order: 'ASC' };
31
+ /**
32
+ * Set the sort { field, order }
33
+ * @name setSort
34
+ * @function
35
+ * @param {SortPayload} sort the sort object
36
+ */
37
+ /**
38
+ * Set the sort field, swap the order if the field is the same
39
+ * @name setSortField
40
+ * @function
41
+ * @param {string} field the sort field
42
+ */
43
+ /**
44
+ * Set the sort order
45
+ * @name setSortOrder
46
+ * @function
47
+ * @param {string} order The sort order, either ASC or DESC
48
+ */
49
+ /**
50
+ * @typedef SortProps
51
+ * @type {Object}
52
+ * @property {Object} sort: the sort object.
53
+ * @property {string} sort.field: the sort object.
54
+ * @property {'ASC' | 'DESC'} sort.order: the sort object.
55
+ * @property {setSort} setSort
56
+ * @property {setSortField} setSortField
57
+ * @property {setSortOrder} setSortOrder
58
+ */
59
+ /**
60
+ * Hooks to provide sort state
61
+ *
62
+ * @example
63
+ *
64
+ * const { sort, setSort, setSortField, setSortOrder } = useSort({
65
+ * field: 'name',
66
+ * order: 'ASC',
67
+ * });
68
+ *
69
+ * setSort({ field: 'name', order: 'ASC' });
70
+ * // is the same as
71
+ * setSortField('name');
72
+ * setSortOrder('ASC');
73
+ *
74
+ * @param {Object} initialSort
75
+ * @param {string} initialSort.field The initial sort field
76
+ * @param {string} initialSort.order The initial sort order
77
+ * @returns {SortProps} The sort props
78
+ */
79
+ const useSortState = (initialSort = defaultSort) => {
80
+ const [sort, dispatch] = useReducer(sortReducer, initialSort);
81
+ const isFirstRender = useRef(true);
82
+ useEffect(() => {
83
+ if (isFirstRender.current) {
84
+ isFirstRender.current = false;
85
+ return;
86
+ }
87
+ dispatch({ type: 'SET_SORT', payload: initialSort });
88
+ }, [initialSort.field, initialSort.order]); // eslint-disable-line react-hooks/exhaustive-deps
89
+ return {
90
+ setSort: useCallback((sort) => dispatch({ type: 'SET_SORT', payload: sort }), [dispatch]),
91
+ setSortField: useCallback((field) => dispatch({ type: 'SET_SORT_FIELD', payload: field }), [dispatch]),
92
+ setSortOrder: useCallback((order) => dispatch({ type: 'SET_SORT_ORDER', payload: order }), [dispatch]),
93
+ sort,
94
+ };
95
+ };
96
+ export default useSortState;
@@ -0,0 +1,15 @@
1
+ import type { TitleComponent } from '../types';
2
+ export declare const DefaultTitleContext: import("react").Context<TitleComponent>;
3
+ export declare const DefaultTitleContextProvider: import("react").Provider<TitleComponent>;
4
+ /**
5
+ * Get the application title defined at the `<Admin>` level
6
+ *
7
+ * @example
8
+ * import { useDefaultTitle } from 'react-admin';
9
+ *
10
+ * const AppBar = () => {
11
+ * const defaultTitle = useDefaultTitle();
12
+ * return <span>{defaultTitle}</span>;
13
+ * }
14
+ */
15
+ export declare const useDefaultTitle: () => TitleComponent;