@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,107 @@
1
+ import { useCallback, useRef } from 'react';
2
+ import merge from 'lodash/merge.js';
3
+ import set from 'lodash/set.js';
4
+ import { useResourceContext } from '../../core';
5
+ import { useDataProvider } from '../../dataProvider';
6
+ import { useTranslate, useTranslateLabel } from '../../i18n';
7
+ import { asyncDebounce } from '../../util';
8
+ import { useRecordContext } from '../../controller';
9
+ import { isEmpty } from './validate';
10
+ /**
11
+ * A hook that returns a validation function checking for a record field uniqueness
12
+ * by calling the dataProvider getList function with a filter.
13
+ *
14
+ * @example // Passing options at declaration time
15
+ * const UserCreateForm = () => {
16
+ * const unique = useUnique({ message: 'Username is already used'});
17
+ * return (
18
+ * <SimpleForm>
19
+ * <TextInput source="username" validate={unique()} />
20
+ * </SimpleForm>
21
+ * );
22
+ * }
23
+ *
24
+ * @example // Passing options at call time
25
+ * const UserCreateForm = () => {
26
+ * const unique = useUnique();
27
+ * return (
28
+ * <SimpleForm>
29
+ * <TextInput source="username" validate={unique({ message: 'Username is already used'})} />
30
+ * </SimpleForm>
31
+ * );
32
+ * }
33
+ *
34
+ * @example // With additional filters
35
+ * const UserCreateForm = () => {
36
+ * const unique = useUnique();
37
+ * return (
38
+ * <SimpleForm>
39
+ * <ReferenceInput source="organization_id" reference="organizations" />
40
+ * <FormDataConsumer>
41
+ * {({ formData }) => (
42
+ * <TextInput
43
+ * source="username"
44
+ * validate={unique({ filter: { organization_id: formData.organization_id })}
45
+ * />
46
+ * )}
47
+ * </FormDataConsumer>
48
+ * </SimpleForm>
49
+ * );
50
+ * }
51
+ */
52
+ export const useUnique = (options) => {
53
+ const dataProvider = useDataProvider();
54
+ const translateLabel = useTranslateLabel();
55
+ const resource = useResourceContext(options);
56
+ if (!resource) {
57
+ throw new Error('useUnique: missing resource prop or context');
58
+ }
59
+ const translate = useTranslate();
60
+ const record = useRecordContext();
61
+ const debouncedGetList = useRef(
62
+ // The initial value is here to set the correct type on useRef
63
+ asyncDebounce(dataProvider.getList, options?.debounce ?? DEFAULT_DEBOUNCE));
64
+ const validateUnique = useCallback((callTimeOptions) => {
65
+ const { message, filter, debounce: interval, } = merge({
66
+ debounce: DEFAULT_DEBOUNCE,
67
+ filter: {},
68
+ message: "strato.validation.unique',
69
+ }, options, callTimeOptions);
70
+ debouncedGetList.current = asyncDebounce(dataProvider.getList, interval);
71
+ return async (value, allValues, props) => {
72
+ if (isEmpty(value)) {
73
+ return undefined;
74
+ }
75
+ try {
76
+ const finalFilter = set(merge({}, filter), props.source, value);
77
+ const { data, total } = await debouncedGetList.current(resource, {
78
+ filter: finalFilter,
79
+ pagination: { page: 1, perPage: 1 },
80
+ sort: { field: 'id', order: 'ASC' },
81
+ });
82
+ if (typeof total !== 'undefined' &&
83
+ total > 0 &&
84
+ !data.some(r => r.id === record?.id)) {
85
+ return {
86
+ message,
87
+ args: {
88
+ source: props.source,
89
+ value,
90
+ field: translateLabel({
91
+ label: props.label,
92
+ source: props.source,
93
+ resource,
94
+ }),
95
+ },
96
+ };
97
+ }
98
+ }
99
+ catch (error) {
100
+ return translate("strato.notification.http_error');
101
+ }
102
+ return undefined;
103
+ };
104
+ }, [dataProvider, options, record, resource, translate, translateLabel]);
105
+ return validateUnique;
106
+ };
107
+ const DEFAULT_DEBOUNCE = 1000;
@@ -0,0 +1,168 @@
1
+ export declare const isEmpty: (value: any) => boolean;
2
+ export interface ValidationErrorMessageWithArgs {
3
+ message: string;
4
+ args: {
5
+ [key: string]: ValidationErrorMessageWithArgs | any;
6
+ };
7
+ }
8
+ export type ValidationErrorMessage = string | ValidationErrorMessageWithArgs;
9
+ export type Validator = (value: any, values: any, props: any) => ValidationErrorMessage | null | undefined | Promise<ValidationErrorMessage | null | undefined>;
10
+ export interface GetValidationMessageParams {
11
+ args: any;
12
+ value: any;
13
+ values: any;
14
+ }
15
+ export type GetValidationMessage = (params: GetValidationMessageParams) => ValidationErrorMessage;
16
+ export declare const combine2Validators: (validator1: Validator, validator2: Validator) => Validator;
17
+ export declare const composeValidators: (...validators: any[]) => Validator;
18
+ export declare const composeSyncValidators: (...validators: any[]) => (value: any, values: any, meta: any) => ValidationErrorMessage | Promise<ValidationErrorMessage | null | undefined> | undefined;
19
+ /**
20
+ * Required validator
21
+ *
22
+ * Returns an error if the value is null, undefined, or empty
23
+ *
24
+ * @param {string|Function} message
25
+ *
26
+ * @example
27
+ *
28
+ * const titleValidators = [required('The title is required')];
29
+ * <TextInput name="title" validate={titleValidators} />
30
+ */
31
+ export declare const required: (message?: any) => ((value: any, values: any) => string | {
32
+ message: string;
33
+ args: any;
34
+ } | undefined) & {
35
+ isRequired: boolean;
36
+ };
37
+ /**
38
+ * Minimum length validator
39
+ *
40
+ * Returns an error if the value has a length less than the parameter
41
+ *
42
+ * @param {integer} min
43
+ * @param {string|Function} message
44
+ *
45
+ * @example
46
+ *
47
+ * const passwordValidators = [minLength(10, 'Should be at least 10 characters')];
48
+ * <TextInput type="password" name="password" validate={passwordValidators} />
49
+ */
50
+ export declare const minLength: (min: any, message?: any) => (value: any, values: any) => string | {
51
+ message: string;
52
+ args: any;
53
+ } | undefined;
54
+ /**
55
+ * Maximum length validator
56
+ *
57
+ * Returns an error if the value has a length higher than the parameter
58
+ *
59
+ * @param {integer} max
60
+ * @param {string|Function} message
61
+ *
62
+ * @example
63
+ *
64
+ * const nameValidators = [maxLength(10, 'Should be at most 10 characters')];
65
+ * <TextInput name="name" validate={nameValidators} />
66
+ */
67
+ export declare const maxLength: (max: any, message?: any) => (value: any, values: any) => string | {
68
+ message: string;
69
+ args: any;
70
+ } | undefined;
71
+ /**
72
+ * Minimum validator
73
+ *
74
+ * Returns an error if the value is less than the parameter
75
+ *
76
+ * @param {integer} min
77
+ * @param {string|Function} message
78
+ *
79
+ * @example
80
+ *
81
+ * const fooValidators = [minValue(5, 'Should be more than 5')];
82
+ * <NumberInput name="foo" validate={fooValidators} />
83
+ */
84
+ export declare const minValue: (min: any, message?: any) => (value: any, values: any) => string | {
85
+ message: string;
86
+ args: any;
87
+ } | undefined;
88
+ /**
89
+ * Maximum validator
90
+ *
91
+ * Returns an error if the value is higher than the parameter
92
+ *
93
+ * @param {integer} max
94
+ * @param {string|Function} message
95
+ *
96
+ * @example
97
+ *
98
+ * const fooValidators = [maxValue(10, 'Should be less than 10')];
99
+ * <NumberInput name="foo" validate={fooValidators} />
100
+ */
101
+ export declare const maxValue: (max: any, message?: any) => (value: any, values: any) => string | {
102
+ message: string;
103
+ args: any;
104
+ } | undefined;
105
+ /**
106
+ * Number validator
107
+ *
108
+ * Returns an error if the value is not a number
109
+ *
110
+ * @param {string|Function} message
111
+ *
112
+ * @example
113
+ *
114
+ * const ageValidators = [number('Must be a number')];
115
+ * <TextInput name="age" validate={ageValidators} />
116
+ */
117
+ export declare const number: (message?: any) => (value: any, values: any) => string | {
118
+ message: string;
119
+ args: any;
120
+ } | undefined;
121
+ /**
122
+ * Regular expression validator
123
+ *
124
+ * Returns an error if the value does not match the pattern given as parameter
125
+ *
126
+ * @param {RegExp} pattern
127
+ * @param {string|Function} message
128
+ *
129
+ * @example
130
+ *
131
+ * const zipValidators = [regex(/^\d{5}(?:[-\s]\d{4})?$/, 'Must be a zip code')];
132
+ * <TextInput name="zip" validate={zipValidators} />
133
+ */
134
+ export declare const regex: any;
135
+ /**
136
+ * Email validator
137
+ *
138
+ * Returns an error if the value is not a valid email
139
+ *
140
+ * @param {string|Function} message
141
+ *
142
+ * @example
143
+ *
144
+ * const emailValidators = [email('Must be an email')];
145
+ * <TextInput name="email" validate={emailValidators} />
146
+ */
147
+ export declare const email: (message?: any) => any;
148
+ /**
149
+ * Choices validator
150
+ *
151
+ * Returns an error if the value is not among the list passed as parameter
152
+ *
153
+ * @param {array} list
154
+ * @param {string|Function} message
155
+ *
156
+ * @example
157
+ *
158
+ * const genderValidators = [choices(['male', 'female'], 'Must be either Male or Female')];
159
+ * <TextInput name="gender" validate={genderValidators} />
160
+ */
161
+ export declare const choices: (list: any, message?: any) => (value: any, values: any) => string | {
162
+ message: string;
163
+ args: any;
164
+ } | undefined;
165
+ /**
166
+ * Given a validator, returns a boolean indicating whether the field is required or not.
167
+ */
168
+ export declare const isRequired: (validate: any) => boolean;
@@ -0,0 +1,218 @@
1
+ import lodashMemoize from 'lodash/memoize.js';
2
+ /* @link http://stackoverflow.com/questions/46155/validate-email-address-in-javascript */
3
+ const EMAIL_REGEX = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; // eslint-disable-line no-useless-escape
4
+ export const isEmpty = (value) => typeof value === 'undefined' ||
5
+ value === null ||
6
+ value === '' ||
7
+ (Array.isArray(value) && value.length === 0);
8
+ // type predicate, see https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates
9
+ function isValidationErrorMessageWithArgs(error) {
10
+ return error ? error.hasOwnProperty('message') : false;
11
+ }
12
+ const getMessage = (message, messageArgs, value, values) => typeof message === 'function'
13
+ ? message({
14
+ args: messageArgs,
15
+ value,
16
+ values,
17
+ })
18
+ : messageArgs
19
+ ? {
20
+ message,
21
+ args: messageArgs,
22
+ }
23
+ : message;
24
+ // If we define validation functions directly in JSX, it will
25
+ // result in a new function at every render, and then trigger infinite re-render.
26
+ // Hence, we memoize every built-in validator to prevent a "Maximum call stack" error.
27
+ const memoize = (fn) => lodashMemoize(fn, (...args) => JSON.stringify(args));
28
+ const isFunction = value => typeof value === 'function';
29
+ export const combine2Validators = (validator1, validator2) => {
30
+ return (value, values, meta) => {
31
+ const result1 = validator1(value, values, meta);
32
+ if (!result1) {
33
+ return validator2(value, values, meta);
34
+ }
35
+ if (typeof result1 === 'string' ||
36
+ isValidationErrorMessageWithArgs(result1)) {
37
+ return result1;
38
+ }
39
+ return result1.then(resolvedResult1 => {
40
+ if (!resolvedResult1) {
41
+ return validator2(value, values, meta);
42
+ }
43
+ return resolvedResult1;
44
+ });
45
+ };
46
+ };
47
+ // Compose multiple validators into a single one for use with react-hook-form
48
+ export const composeValidators = (...validators) => {
49
+ const allValidators = (Array.isArray(validators[0]) ? validators[0] : validators).filter(isFunction);
50
+ return allValidators.reduce(combine2Validators, () => null);
51
+ };
52
+ // Compose multiple validators into a single one for use with react-hook-form
53
+ export const composeSyncValidators = (...validators) => (value, values, meta) => {
54
+ const allValidators = (Array.isArray(validators[0]) ? validators[0] : validators).filter(isFunction);
55
+ for (const validator of allValidators) {
56
+ const error = validator(value, values, meta);
57
+ if (error) {
58
+ return error;
59
+ }
60
+ }
61
+ };
62
+ /**
63
+ * Required validator
64
+ *
65
+ * Returns an error if the value is null, undefined, or empty
66
+ *
67
+ * @param {string|Function} message
68
+ *
69
+ * @example
70
+ *
71
+ * const titleValidators = [required('The title is required')];
72
+ * <TextInput name="title" validate={titleValidators} />
73
+ */
74
+ export const required = memoize((message = "strato.validation.required') => Object.assign((value, values) => isEmpty(value)
75
+ ? getMessage(message, undefined, value, values)
76
+ : undefined, { isRequired: true }));
77
+ /**
78
+ * Minimum length validator
79
+ *
80
+ * Returns an error if the value has a length less than the parameter
81
+ *
82
+ * @param {integer} min
83
+ * @param {string|Function} message
84
+ *
85
+ * @example
86
+ *
87
+ * const passwordValidators = [minLength(10, 'Should be at least 10 characters')];
88
+ * <TextInput type="password" name="password" validate={passwordValidators} />
89
+ */
90
+ export const minLength = memoize((min, message = "strato.validation.minLength') => (value, values) => !isEmpty(value) && value.length < min
91
+ ? getMessage(message, { min }, value, values)
92
+ : undefined);
93
+ /**
94
+ * Maximum length validator
95
+ *
96
+ * Returns an error if the value has a length higher than the parameter
97
+ *
98
+ * @param {integer} max
99
+ * @param {string|Function} message
100
+ *
101
+ * @example
102
+ *
103
+ * const nameValidators = [maxLength(10, 'Should be at most 10 characters')];
104
+ * <TextInput name="name" validate={nameValidators} />
105
+ */
106
+ export const maxLength = memoize((max, message = "strato.validation.maxLength') => (value, values) => !isEmpty(value) && value.length > max
107
+ ? getMessage(message, { max }, value, values)
108
+ : undefined);
109
+ /**
110
+ * Minimum validator
111
+ *
112
+ * Returns an error if the value is less than the parameter
113
+ *
114
+ * @param {integer} min
115
+ * @param {string|Function} message
116
+ *
117
+ * @example
118
+ *
119
+ * const fooValidators = [minValue(5, 'Should be more than 5')];
120
+ * <NumberInput name="foo" validate={fooValidators} />
121
+ */
122
+ export const minValue = memoize((min, message = "strato.validation.minValue') => (value, values) => !isEmpty(value) && value < min
123
+ ? getMessage(message, { min }, value, values)
124
+ : undefined);
125
+ /**
126
+ * Maximum validator
127
+ *
128
+ * Returns an error if the value is higher than the parameter
129
+ *
130
+ * @param {integer} max
131
+ * @param {string|Function} message
132
+ *
133
+ * @example
134
+ *
135
+ * const fooValidators = [maxValue(10, 'Should be less than 10')];
136
+ * <NumberInput name="foo" validate={fooValidators} />
137
+ */
138
+ export const maxValue = memoize((max, message = "strato.validation.maxValue') => (value, values) => !isEmpty(value) && value > max
139
+ ? getMessage(message, { max }, value, values)
140
+ : undefined);
141
+ /**
142
+ * Number validator
143
+ *
144
+ * Returns an error if the value is not a number
145
+ *
146
+ * @param {string|Function} message
147
+ *
148
+ * @example
149
+ *
150
+ * const ageValidators = [number('Must be a number')];
151
+ * <TextInput name="age" validate={ageValidators} />
152
+ */
153
+ export const number = memoize((message = "strato.validation.number') => (value, values) => !isEmpty(value) && isNaN(Number(value))
154
+ ? getMessage(message, undefined, value, values)
155
+ : undefined);
156
+ /**
157
+ * Regular expression validator
158
+ *
159
+ * Returns an error if the value does not match the pattern given as parameter
160
+ *
161
+ * @param {RegExp} pattern
162
+ * @param {string|Function} message
163
+ *
164
+ * @example
165
+ *
166
+ * const zipValidators = [regex(/^\d{5}(?:[-\s]\d{4})?$/, 'Must be a zip code')];
167
+ * <TextInput name="zip" validate={zipValidators} />
168
+ */
169
+ export const regex = lodashMemoize((pattern, message = "strato.validation.regex') => (value, values) => !isEmpty(value) && typeof value === 'string' && !pattern.test(value)
170
+ ? getMessage(message, { pattern }, value, values)
171
+ : undefined, (pattern, message) => {
172
+ return pattern.toString() + message;
173
+ });
174
+ /**
175
+ * Email validator
176
+ *
177
+ * Returns an error if the value is not a valid email
178
+ *
179
+ * @param {string|Function} message
180
+ *
181
+ * @example
182
+ *
183
+ * const emailValidators = [email('Must be an email')];
184
+ * <TextInput name="email" validate={emailValidators} />
185
+ */
186
+ export const email = memoize((message = "strato.validation.email') => regex(EMAIL_REGEX, message));
187
+ const oneOfTypeMessage = ({ args }) => ({
188
+ message: "strato.validation.oneOf',
189
+ args,
190
+ });
191
+ /**
192
+ * Choices validator
193
+ *
194
+ * Returns an error if the value is not among the list passed as parameter
195
+ *
196
+ * @param {array} list
197
+ * @param {string|Function} message
198
+ *
199
+ * @example
200
+ *
201
+ * const genderValidators = [choices(['male', 'female'], 'Must be either Male or Female')];
202
+ * <TextInput name="gender" validate={genderValidators} />
203
+ */
204
+ export const choices = memoize((list, message = oneOfTypeMessage) => (value, values) => !isEmpty(value) && list.indexOf(value) === -1
205
+ ? getMessage(message, { list }, value, values)
206
+ : undefined);
207
+ /**
208
+ * Given a validator, returns a boolean indicating whether the field is required or not.
209
+ */
210
+ export const isRequired = validate => {
211
+ if (validate && validate.isRequired) {
212
+ return true;
213
+ }
214
+ if (Array.isArray(validate)) {
215
+ return !!validate.find(it => it.isRequired);
216
+ }
217
+ return false;
218
+ };
@@ -0,0 +1,3 @@
1
+ import { I18nProvider } from '../types';
2
+ export type I18nContextProps = I18nProvider;
3
+ export declare const I18nContext: import("react").Context<I18nProvider>;
@@ -0,0 +1,11 @@
1
+ import { createContext } from 'react';
2
+ import { substituteTokens } from './substituteTokens';
3
+ const defaultI18nProvider = {
4
+ translate: (key, options) => options?._
5
+ ? substituteTokens(options._, options)
6
+ : substituteTokens(key, options),
7
+ changeLocale: () => Promise.resolve(),
8
+ getLocale: () => 'en',
9
+ };
10
+ export const I18nContext = createContext(defaultI18nProvider);
11
+ I18nContext.displayName = 'I18nContext';
@@ -0,0 +1,16 @@
1
+ export declare const TranslatableContext: import("react").Context<TranslatableContextValue | undefined>;
2
+ export interface TranslatableContextValue {
3
+ locales: string[];
4
+ selectedLocale: string;
5
+ selectLocale: SelectTranslatableLocale;
6
+ getRecordForLocale: GetRecordForLocale;
7
+ }
8
+ export type SelectTranslatableLocale = (locale: string) => void;
9
+ /**
10
+ * Returns a record where translatable fields have their values set to the value of the given locale.
11
+ * This is necessary because the fields rely on the RecordContext to get their values and have no knowledge of the locale.
12
+ *
13
+ * Given the record { title: { en: 'title_en', fr: 'title_fr' } } and the locale 'fr',
14
+ * the record for the locale 'fr' will be { title: 'title_fr' }
15
+ */
16
+ export type GetRecordForLocale = (record: any, locale: string) => any;
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'react';
2
+ export const TranslatableContext = createContext(undefined);