@strato-admin/faker-ecommerce 0.1.1 → 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 +5 -4
  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,116 @@
1
+ import { SortPayload, FilterPayload } from '../../types';
2
+ export interface ListParams {
3
+ sort: string;
4
+ order: 'ASC' | 'DESC';
5
+ page: number;
6
+ perPage: number;
7
+ filter: any;
8
+ displayedFilters: any;
9
+ }
10
+ /**
11
+ * Get the list parameters (page, sort, filters) and modifiers.
12
+ *
13
+ * These parameters are merged from 3 sources:
14
+ * - the query string from the URL
15
+ * - the params stored in the state (from previous navigation)
16
+ * - the options passed to the hook (including the filter defaultValues)
17
+ *
18
+ * @returns {Array} A tuple [parameters, modifiers].
19
+ * Destructure as [
20
+ * { page, perPage, sort, order, filter, filterValues, displayedFilters, requestSignature },
21
+ * { setFilters, hideFilter, showFilter, setPage, setPerPage, setSort }
22
+ * ]
23
+ *
24
+ * @example
25
+ *
26
+ * const [listParams, listParamsActions] = useListParams({
27
+ * resource: 'posts',
28
+ * location: location // From react-router. Injected to your component by react-admin inside a List
29
+ * filterDefaultValues: {
30
+ * published: true
31
+ * },
32
+ * sort: {
33
+ * field: 'published_at',
34
+ * order: 'DESC'
35
+ * },
36
+ * perPage: 25
37
+ * });
38
+ *
39
+ * const {
40
+ * page,
41
+ * perPage,
42
+ * sort,
43
+ * order,
44
+ * filter,
45
+ * filterValues,
46
+ * displayedFilters,
47
+ * requestSignature
48
+ * } = listParams;
49
+ *
50
+ * const {
51
+ * setFilters,
52
+ * hideFilter,
53
+ * showFilter,
54
+ * setPage,
55
+ * setPerPage,
56
+ * setSort,
57
+ * } = listParamsActions;
58
+ */
59
+ export declare const useListParams: ({ debounce, disableSyncWithLocation, filterDefaultValues, perPage, resource, sort, storeKey, }: ListParamsOptions) => [Parameters, Modifiers];
60
+ export declare const parseQueryFromLocation: ({ search }: {
61
+ search: any;
62
+ }) => Partial<ListParams>;
63
+ /**
64
+ * Check if user has already set custom sort, page, or filters for this list
65
+ *
66
+ * User params come from the store as the params props. By default,
67
+ * this object is:
68
+ *
69
+ * { filter: {}, order: null, page: 1, perPage: null, sort: null }
70
+ *
71
+ * To check if the user has custom params, we must compare the params
72
+ * to these initial values.
73
+ *
74
+ * @param {Object} params
75
+ */
76
+ export declare const hasCustomParams: (params: ListParams) => any;
77
+ /**
78
+ * Merge list params from 3 different sources:
79
+ * - the query string
80
+ * - the params stored in the state (from previous navigation)
81
+ * - the props passed to the List component (including the filter defaultValues)
82
+ */
83
+ export declare const getQuery: ({ queryFromLocation, params, filterDefaultValues, sort, perPage, }: {
84
+ queryFromLocation: any;
85
+ params: any;
86
+ filterDefaultValues: any;
87
+ sort: any;
88
+ perPage: any;
89
+ }) => ListParams;
90
+ export declare const getNumberOrDefault: (possibleNumber: string | number | undefined, defaultValue: number) => number;
91
+ export interface ListParamsOptions {
92
+ debounce?: number;
93
+ disableSyncWithLocation?: boolean;
94
+ filterDefaultValues?: FilterPayload;
95
+ perPage?: number;
96
+ resource: string;
97
+ sort?: SortPayload;
98
+ storeKey?: string | false;
99
+ }
100
+ interface Parameters extends ListParams {
101
+ filterValues: object;
102
+ displayedFilters: {
103
+ [key: string]: boolean;
104
+ };
105
+ requestSignature: any[];
106
+ }
107
+ interface Modifiers {
108
+ changeParams: (action: any) => void;
109
+ setPage: (page: number) => void;
110
+ setPerPage: (pageSize: number) => void;
111
+ setSort: (sort: SortPayload) => void;
112
+ setFilters: (filters: any, displayedFilters?: any, debounce?: boolean) => void;
113
+ hideFilter: (filterName: string) => void;
114
+ showFilter: (filterName: string, defaultValue: any) => void;
115
+ }
116
+ export {};
@@ -0,0 +1,281 @@
1
+ import { useCallback, useMemo, useEffect, useState, useRef } from 'react';
2
+ import { parse, stringify } from 'query-string';
3
+ import lodashDebounce from 'lodash/debounce.js';
4
+ import { useStore } from '../../store';
5
+ import { useNavigate, useLocation } from '../../routing';
6
+ import queryReducer, { SET_FILTER, HIDE_FILTER, SHOW_FILTER, SET_PAGE, SET_PER_PAGE, SET_SORT, SORT_ASC, } from './queryReducer';
7
+ import removeEmpty from '../../util/removeEmpty';
8
+ import { useIsMounted } from '../../util/hooks';
9
+ /**
10
+ * Get the list parameters (page, sort, filters) and modifiers.
11
+ *
12
+ * These parameters are merged from 3 sources:
13
+ * - the query string from the URL
14
+ * - the params stored in the state (from previous navigation)
15
+ * - the options passed to the hook (including the filter defaultValues)
16
+ *
17
+ * @returns {Array} A tuple [parameters, modifiers].
18
+ * Destructure as [
19
+ * { page, perPage, sort, order, filter, filterValues, displayedFilters, requestSignature },
20
+ * { setFilters, hideFilter, showFilter, setPage, setPerPage, setSort }
21
+ * ]
22
+ *
23
+ * @example
24
+ *
25
+ * const [listParams, listParamsActions] = useListParams({
26
+ * resource: 'posts',
27
+ * location: location // From react-router. Injected to your component by react-admin inside a List
28
+ * filterDefaultValues: {
29
+ * published: true
30
+ * },
31
+ * sort: {
32
+ * field: 'published_at',
33
+ * order: 'DESC'
34
+ * },
35
+ * perPage: 25
36
+ * });
37
+ *
38
+ * const {
39
+ * page,
40
+ * perPage,
41
+ * sort,
42
+ * order,
43
+ * filter,
44
+ * filterValues,
45
+ * displayedFilters,
46
+ * requestSignature
47
+ * } = listParams;
48
+ *
49
+ * const {
50
+ * setFilters,
51
+ * hideFilter,
52
+ * showFilter,
53
+ * setPage,
54
+ * setPerPage,
55
+ * setSort,
56
+ * } = listParamsActions;
57
+ */
58
+ export const useListParams = ({ debounce = 500, disableSyncWithLocation = false, filterDefaultValues, perPage = 10, resource, sort = defaultSort, storeKey = disableSyncWithLocation ? false : `${resource}.listParams`, }) => {
59
+ const location = useLocation();
60
+ const navigate = useNavigate();
61
+ const [localParams, setLocalParams] = useState(defaultParams);
62
+ // As we can't conditionally call a hook, if the storeKey is false,
63
+ // we'll ignore the params variable later on and won't call setParams either.
64
+ const [params, setParams] = useStore(storeKey || `${resource}.listParams`, defaultParams);
65
+ const tempParams = useRef(undefined);
66
+ const isMounted = useIsMounted();
67
+ const requestSignature = [
68
+ location.search,
69
+ resource,
70
+ storeKey,
71
+ JSON.stringify(!storeKey ? localParams : params),
72
+ JSON.stringify(filterDefaultValues),
73
+ JSON.stringify(sort),
74
+ perPage,
75
+ disableSyncWithLocation,
76
+ ];
77
+ const queryFromLocation = disableSyncWithLocation
78
+ ? {}
79
+ : parseQueryFromLocation(location);
80
+ const query = useMemo(() => getQuery({
81
+ queryFromLocation,
82
+ params: !storeKey ? localParams : params,
83
+ filterDefaultValues,
84
+ sort,
85
+ perPage,
86
+ }), requestSignature // eslint-disable-line react-hooks/exhaustive-deps
87
+ );
88
+ // if the location includes params (for example from a link like
89
+ // the categories products on the demo), we need to persist them in the
90
+ // store as well so that we don't lose them after a redirection back
91
+ // to the list
92
+ useEffect(() => {
93
+ if (Object.keys(queryFromLocation).length > 0) {
94
+ setParams(query);
95
+ }
96
+ }, [location.search]); // eslint-disable-line
97
+ const changeParams = useCallback(action => {
98
+ // do not change params if the component is already unmounted
99
+ // this is necessary because changeParams can be debounced, and therefore
100
+ // executed after the component is unmounted
101
+ if (!isMounted.current)
102
+ return;
103
+ if (!tempParams.current) {
104
+ // no other changeParams action dispatched this tick
105
+ tempParams.current = queryReducer(query, action);
106
+ // schedule side effects for next tick
107
+ setTimeout(() => {
108
+ if (!tempParams.current) {
109
+ // the side effects were already processed by another changeParams
110
+ return;
111
+ }
112
+ if (disableSyncWithLocation && !storeKey) {
113
+ setLocalParams(tempParams.current);
114
+ }
115
+ else if (disableSyncWithLocation && !!storeKey) {
116
+ setParams(tempParams.current);
117
+ }
118
+ else {
119
+ // the useEffect above will apply the changes to the params in the store
120
+ navigate({
121
+ search: `?${stringify({
122
+ ...tempParams.current,
123
+ filter: JSON.stringify(tempParams.current.filter),
124
+ displayedFilters: JSON.stringify(tempParams.current.displayedFilters),
125
+ })}`,
126
+ }, {
127
+ state: {
128
+ _scrollToTop: action.type === SET_PAGE,
129
+ },
130
+ });
131
+ }
132
+ tempParams.current = undefined;
133
+ }, 0);
134
+ }
135
+ else {
136
+ // side effects already scheduled, just change the params
137
+ tempParams.current = queryReducer(tempParams.current, action);
138
+ }
139
+ }, [...requestSignature, navigate] // eslint-disable-line react-hooks/exhaustive-deps
140
+ );
141
+ const setSort = useCallback((sort) => changeParams({
142
+ type: SET_SORT,
143
+ payload: sort,
144
+ }), [changeParams]);
145
+ const setPage = useCallback((newPage) => changeParams({ type: SET_PAGE, payload: newPage }), [changeParams]);
146
+ const setPerPage = useCallback((newPerPage) => changeParams({ type: SET_PER_PAGE, payload: newPerPage }), [changeParams]);
147
+ const filterValues = query.filter || emptyObject;
148
+ const displayedFilterValues = query.displayedFilters || emptyObject;
149
+ const debouncedSetFilters = lodashDebounce((filter, displayedFilters) => {
150
+ changeParams({
151
+ type: SET_FILTER,
152
+ payload: {
153
+ filter: removeEmpty(filter),
154
+ displayedFilters,
155
+ },
156
+ });
157
+ }, debounce);
158
+ const setFilters = useCallback((filter, displayedFilters = undefined, debounce = false) => debounce
159
+ ? debouncedSetFilters(filter, displayedFilters)
160
+ : changeParams({
161
+ type: SET_FILTER,
162
+ payload: {
163
+ filter: removeEmpty(filter),
164
+ displayedFilters,
165
+ },
166
+ }), [changeParams] // eslint-disable-line react-hooks/exhaustive-deps
167
+ );
168
+ const hideFilter = useCallback((filterName) => {
169
+ changeParams({
170
+ type: HIDE_FILTER,
171
+ payload: filterName,
172
+ });
173
+ }, [changeParams]);
174
+ const showFilter = useCallback((filterName, defaultValue) => {
175
+ changeParams({
176
+ type: SHOW_FILTER,
177
+ payload: {
178
+ filterName,
179
+ defaultValue,
180
+ },
181
+ });
182
+ }, [changeParams]);
183
+ return [
184
+ {
185
+ filterValues,
186
+ requestSignature,
187
+ ...query,
188
+ displayedFilters: displayedFilterValues,
189
+ },
190
+ {
191
+ changeParams,
192
+ setPage,
193
+ setPerPage,
194
+ setSort,
195
+ setFilters,
196
+ hideFilter,
197
+ showFilter,
198
+ },
199
+ ];
200
+ };
201
+ const parseObject = (query, field) => {
202
+ if (query[field] && typeof query[field] === 'string') {
203
+ try {
204
+ query[field] = JSON.parse(query[field]);
205
+ }
206
+ catch (err) {
207
+ delete query[field];
208
+ }
209
+ }
210
+ };
211
+ export const parseQueryFromLocation = ({ search }) => {
212
+ const query = parse(search);
213
+ parseObject(query, 'filter');
214
+ parseObject(query, 'displayedFilters');
215
+ return query;
216
+ };
217
+ /**
218
+ * Check if user has already set custom sort, page, or filters for this list
219
+ *
220
+ * User params come from the store as the params props. By default,
221
+ * this object is:
222
+ *
223
+ * { filter: {}, order: null, page: 1, perPage: null, sort: null }
224
+ *
225
+ * To check if the user has custom params, we must compare the params
226
+ * to these initial values.
227
+ *
228
+ * @param {Object} params
229
+ */
230
+ export const hasCustomParams = (params) => {
231
+ return (params &&
232
+ params.filter &&
233
+ (Object.keys(params.filter).length > 0 ||
234
+ params.order != null ||
235
+ params.page !== 1 ||
236
+ params.perPage != null ||
237
+ params.sort != null));
238
+ };
239
+ /**
240
+ * Merge list params from 3 different sources:
241
+ * - the query string
242
+ * - the params stored in the state (from previous navigation)
243
+ * - the props passed to the List component (including the filter defaultValues)
244
+ */
245
+ export const getQuery = ({ queryFromLocation, params, filterDefaultValues, sort, perPage, }) => {
246
+ const query = Object.keys(queryFromLocation).length > 0
247
+ ? queryFromLocation
248
+ : hasCustomParams(params)
249
+ ? { ...params }
250
+ : { filter: filterDefaultValues || {} };
251
+ if (!query.sort) {
252
+ query.sort = sort.field;
253
+ query.order = sort.order;
254
+ }
255
+ if (query.perPage == null) {
256
+ query.perPage = perPage;
257
+ }
258
+ if (query.page == null) {
259
+ query.page = 1;
260
+ }
261
+ return {
262
+ ...query,
263
+ page: getNumberOrDefault(query.page, 1),
264
+ perPage: getNumberOrDefault(query.perPage, 10),
265
+ };
266
+ };
267
+ export const getNumberOrDefault = (possibleNumber, defaultValue) => {
268
+ if (typeof possibleNumber === 'undefined') {
269
+ return defaultValue;
270
+ }
271
+ const parsedNumber = typeof possibleNumber === 'string'
272
+ ? parseInt(possibleNumber, 10)
273
+ : possibleNumber;
274
+ return isNaN(parsedNumber) ? defaultValue : parsedNumber;
275
+ };
276
+ const emptyObject = {};
277
+ const defaultSort = {
278
+ field: 'id',
279
+ order: SORT_ASC,
280
+ };
281
+ const defaultParams = {};
@@ -0,0 +1,12 @@
1
+ import { ListSortContextValue } from './ListSortContext';
2
+ /**
3
+ * Hook to read the list sort controller props from the ListSortContext.
4
+ *
5
+ * Must be used within a <ListSortContextProvider> (e.g. as a descendent of <List>
6
+ * or <ListBase>).
7
+ *
8
+ * @returns {ListSortContextValue} list controller props
9
+ *
10
+ * @see useListController for how it is filled
11
+ */
12
+ export declare const useListSortContext: () => ListSortContextValue;
@@ -0,0 +1,19 @@
1
+ import { useContext } from 'react';
2
+ import { ListSortContext } from './ListSortContext';
3
+ /**
4
+ * Hook to read the list sort controller props from the ListSortContext.
5
+ *
6
+ * Must be used within a <ListSortContextProvider> (e.g. as a descendent of <List>
7
+ * or <ListBase>).
8
+ *
9
+ * @returns {ListSortContextValue} list controller props
10
+ *
11
+ * @see useListController for how it is filled
12
+ */
13
+ export const useListSortContext = () => {
14
+ const context = useContext(ListSortContext);
15
+ if (!context) {
16
+ throw new Error('useListSortContext must be used inside a ListSortContextProvider');
17
+ }
18
+ return context;
19
+ };
@@ -0,0 +1,32 @@
1
+ import { RaRecord } from '../../types';
2
+ type UseRecordSelectionWithResourceArgs = {
3
+ resource: string;
4
+ storeKey?: string;
5
+ disableSyncWithStore?: false;
6
+ };
7
+ type UseRecordSelectionWithNoStoreArgs = {
8
+ resource?: string;
9
+ storeKey?: string;
10
+ disableSyncWithStore: true;
11
+ };
12
+ export type UseRecordSelectionArgs = UseRecordSelectionWithResourceArgs | UseRecordSelectionWithNoStoreArgs;
13
+ export type UseRecordSelectionResult<RecordType extends RaRecord = any> = [
14
+ RecordType['id'][],
15
+ {
16
+ select: (ids: RecordType['id'][]) => void;
17
+ unselect: (ids: RecordType['id'][], fromAllStoreKeys?: boolean) => void;
18
+ toggle: (id: RecordType['id']) => void;
19
+ clearSelection: (fromAllStoreKeys?: boolean) => void;
20
+ }
21
+ ];
22
+ /**
23
+ * Get the list of selected items for a resource, and callbacks to change the selection
24
+ *
25
+ * @param args.resource The resource name, e.g. 'posts'
26
+ * @param args.storeKey The key to use to store selected items. Pass false to disable synchronization with the store.
27
+ * @param args.disableSyncWithStore Controls the selection synchronization with the store
28
+ *
29
+ * @returns {Object} Destructure as [selectedIds, { select, unselect, toggle, clearSelection }].
30
+ */
31
+ export declare const useRecordSelection: <RecordType extends RaRecord = any>(args: UseRecordSelectionArgs) => UseRecordSelectionResult<RecordType>;
32
+ export {};
@@ -0,0 +1,93 @@
1
+ import { useEffect, useMemo, useState } from 'react';
2
+ import { useStore, useStoreContext } from '../../store';
3
+ /**
4
+ * Get the list of selected items for a resource, and callbacks to change the selection
5
+ *
6
+ * @param args.resource The resource name, e.g. 'posts'
7
+ * @param args.storeKey The key to use to store selected items. Pass false to disable synchronization with the store.
8
+ * @param args.disableSyncWithStore Controls the selection synchronization with the store
9
+ *
10
+ * @returns {Object} Destructure as [selectedIds, { select, unselect, toggle, clearSelection }].
11
+ */
12
+ export const useRecordSelection = (args) => {
13
+ const { resource = '', storeKey, disableSyncWithStore } = args;
14
+ const finalStoreKey = `${storeKey || resource}.selectedIds`;
15
+ const [localSelectionStore, setLocalSelectionStore] = useState(defaultIds);
16
+ // As we can't conditionally call a hook, if the disableSyncWithStore is true,
17
+ // we'll ignore the useStore values later on and won't call set functions either.
18
+ const [selectionStore, setSelectionStore] = useStore(finalStoreKey, defaultIds);
19
+ const [storeKeys, setStoreKeys] = useStore(`${resource}.selectedIds.storeKeys`, defaultStoreKeys);
20
+ useEffect(function addStoreKeyToStore() {
21
+ if (!disableSyncWithStore && storeKey) {
22
+ setStoreKeys(storeKeys => {
23
+ if (!storeKeys.includes(finalStoreKey)) {
24
+ return [...storeKeys, finalStoreKey];
25
+ }
26
+ else {
27
+ return storeKeys;
28
+ }
29
+ });
30
+ }
31
+ }, [disableSyncWithStore, finalStoreKey, setStoreKeys, storeKey]);
32
+ const { getItem, setItem } = useStoreContext();
33
+ const ids = disableSyncWithStore ? localSelectionStore : selectionStore;
34
+ const setStore = useMemo(() => disableSyncWithStore ? setLocalSelectionStore : setSelectionStore, [disableSyncWithStore, setSelectionStore]);
35
+ const selectionModifiers = useMemo(() => ({
36
+ select: (idsToSelect) => {
37
+ if (!idsToSelect)
38
+ return;
39
+ setStore(idsToSelect);
40
+ },
41
+ unselect(idsToRemove, fromAllStoreKeys) {
42
+ if (!idsToRemove || idsToRemove.length === 0)
43
+ return;
44
+ setStore(ids => ids.filter(id => !idsToRemove.includes(id)));
45
+ if (!disableSyncWithStore && fromAllStoreKeys) {
46
+ storeKeys
47
+ .filter(storeKey => storeKey !== finalStoreKey)
48
+ .forEach(storeKey => {
49
+ const ids = getItem(storeKey);
50
+ if (ids) {
51
+ setItem(storeKey, ids.filter(id => !idsToRemove.includes(id)));
52
+ }
53
+ });
54
+ }
55
+ },
56
+ toggle: (id) => {
57
+ if (typeof id === 'undefined')
58
+ return;
59
+ setStore(ids => {
60
+ if (!Array.isArray(ids))
61
+ return [...ids];
62
+ const index = ids.indexOf(id);
63
+ const hasId = index > -1;
64
+ return hasId
65
+ ? [...ids.slice(0, index), ...ids.slice(index + 1)]
66
+ : [...ids, id];
67
+ });
68
+ },
69
+ clearSelection: (fromAllStoreKeys) => {
70
+ setStore(defaultIds);
71
+ if (!disableSyncWithStore && fromAllStoreKeys) {
72
+ storeKeys
73
+ .filter(storeKey => storeKey !== finalStoreKey)
74
+ .forEach(storeKey => {
75
+ const ids = getItem(storeKey);
76
+ if (ids) {
77
+ setItem(storeKey, defaultIds);
78
+ }
79
+ });
80
+ }
81
+ },
82
+ }), [
83
+ disableSyncWithStore,
84
+ finalStoreKey,
85
+ getItem,
86
+ setItem,
87
+ setStore,
88
+ storeKeys,
89
+ ]);
90
+ return [ids, selectionModifiers];
91
+ };
92
+ const defaultIds = [];
93
+ const defaultStoreKeys = [];
@@ -0,0 +1,14 @@
1
+ import { SortPayload } from '../../types';
2
+ export declare const useSavedQueries: (resource: string) => [SavedQuery[], (value: SavedQuery[] | ((value: SavedQuery[]) => void), defaultValue?: SavedQuery[] | undefined) => void];
3
+ export interface SavedQuery {
4
+ label: string;
5
+ value: {
6
+ filter?: any;
7
+ displayedFilters?: any[];
8
+ sort?: SortPayload;
9
+ perPage?: number;
10
+ };
11
+ }
12
+ export declare const extractValidSavedQueries: (savedQueries: SavedQuery[]) => SavedQuery[];
13
+ export declare const areValidSavedQueries: (savedQueries: SavedQuery[]) => true | undefined;
14
+ export declare const isValidSavedQuery: (savedQuery: SavedQuery) => boolean;
@@ -0,0 +1,29 @@
1
+ import { useStore } from '../../store/useStore';
2
+ export const useSavedQueries = (resource) => {
3
+ return useStore(`${resource}.savedQueries`, []);
4
+ };
5
+ export const extractValidSavedQueries = (savedQueries) => {
6
+ if (Array.isArray(savedQueries)) {
7
+ return savedQueries.filter(query => isValidSavedQuery(query));
8
+ }
9
+ return [];
10
+ };
11
+ export const areValidSavedQueries = (savedQueries) => {
12
+ if (Array.isArray(savedQueries) &&
13
+ savedQueries.every(query => isValidSavedQuery(query))) {
14
+ return true;
15
+ }
16
+ };
17
+ export const isValidSavedQuery = (savedQuery) => {
18
+ if (savedQuery.label &&
19
+ typeof savedQuery.label === 'string' &&
20
+ savedQuery.value &&
21
+ typeof Array.isArray(savedQuery.value.displayedFilters) &&
22
+ typeof savedQuery.value.perPage === 'number' &&
23
+ typeof savedQuery.value.sort?.field === 'string' &&
24
+ typeof savedQuery.value.sort?.order === 'string' &&
25
+ typeof savedQuery.value.filter === 'object') {
26
+ return true;
27
+ }
28
+ return false;
29
+ };
@@ -0,0 +1,10 @@
1
+ import { Identifier } from '../../types';
2
+ /**
3
+ * Hook to Unselect the rows of a datagrid
4
+ *
5
+ * @example
6
+ *
7
+ * const unselect = useUnselect('posts');
8
+ * unselect([123, 456]);
9
+ */
10
+ export declare const useUnselect: (resource?: string, storeKey?: string) => (ids: Identifier[], fromAllStoreKeys?: boolean) => void;
@@ -0,0 +1,18 @@
1
+ import { useCallback } from 'react';
2
+ import { useRecordSelection } from './useRecordSelection';
3
+ /**
4
+ * Hook to Unselect the rows of a datagrid
5
+ *
6
+ * @example
7
+ *
8
+ * const unselect = useUnselect('posts');
9
+ * unselect([123, 456]);
10
+ */
11
+ export const useUnselect = (resource, storeKey) => {
12
+ const [, { unselect }] = useRecordSelection(resource
13
+ ? { resource, storeKey }
14
+ : { disableSyncWithStore: true, storeKey });
15
+ return useCallback((ids, fromAllStoreKeys = false) => {
16
+ unselect(ids, fromAllStoreKeys);
17
+ }, [unselect]);
18
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Hook to unselect all row of a datagrid
3
+ *
4
+ * @example
5
+ *
6
+ * const unselectAll = useUnselectAll('posts');
7
+ * unselectAll();
8
+ */
9
+ export declare const useUnselectAll: (resource?: string, storeKey?: string) => (fromAllStoreKeys?: boolean) => void;
@@ -0,0 +1,18 @@
1
+ import { useCallback } from 'react';
2
+ import { useRecordSelection } from './useRecordSelection';
3
+ /**
4
+ * Hook to unselect all row of a datagrid
5
+ *
6
+ * @example
7
+ *
8
+ * const unselectAll = useUnselectAll('posts');
9
+ * unselectAll();
10
+ */
11
+ export const useUnselectAll = (resource, storeKey) => {
12
+ const [, { clearSelection }] = useRecordSelection(resource
13
+ ? { resource, storeKey }
14
+ : { disableSyncWithStore: true, storeKey });
15
+ return useCallback((fromAllStoreKeys) => {
16
+ clearSelection(fromAllStoreKeys);
17
+ }, [clearSelection]);
18
+ };
@@ -0,0 +1,5 @@
1
+ export * from './RecordContext';
2
+ export * from './useRecordContext';
3
+ export * from './WithRecord';
4
+ export * from './OptionalRecordContextProvider';
5
+ export * from './RecordRepresentation';
@@ -0,0 +1,5 @@
1
+ export * from './RecordContext';
2
+ export * from './useRecordContext';
3
+ export * from './WithRecord';
4
+ export * from './OptionalRecordContextProvider';
5
+ export * from './RecordRepresentation';