@refinedev/core 4.47.2 → 4.48.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 (409) hide show
  1. package/CHANGELOG.md +2944 -2919
  2. package/dist/components/authenticated/index.d.ts.map +1 -1
  3. package/dist/components/autoSaveIndicator/index.d.ts.map +1 -1
  4. package/dist/components/canAccess/index.d.ts.map +1 -1
  5. package/dist/components/containers/refine/index.d.ts.map +1 -1
  6. package/dist/components/layoutWrapper/index.d.ts.map +1 -1
  7. package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -1
  8. package/dist/components/pages/auth/components/login/index.d.ts.map +1 -1
  9. package/dist/components/pages/auth/components/register/index.d.ts.map +1 -1
  10. package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -1
  11. package/dist/components/pages/auth/index.d.ts.map +1 -1
  12. package/dist/components/pages/config-error/index.d.ts.map +1 -1
  13. package/dist/components/pages/config-success/index.d.ts.map +1 -1
  14. package/dist/components/pages/login/index.d.ts.map +1 -1
  15. package/dist/components/pages/ready/index.d.ts.map +1 -1
  16. package/dist/components/undoableQueue/index.d.ts.map +1 -1
  17. package/dist/contexts/accessControl/IAccessControlContext.d.ts.map +1 -1
  18. package/dist/contexts/accessControl/index.d.ts.map +1 -1
  19. package/dist/contexts/auditLog/IAuditLogContext.d.ts.map +1 -1
  20. package/dist/contexts/auditLog/index.d.ts.map +1 -1
  21. package/dist/contexts/auth/IAuthContext.d.ts +1 -1
  22. package/dist/contexts/auth/IAuthContext.d.ts.map +1 -1
  23. package/dist/contexts/auth/index.d.ts.map +1 -1
  24. package/dist/contexts/data/IDataContext.d.ts.map +1 -1
  25. package/dist/contexts/data/index.d.ts.map +1 -1
  26. package/dist/contexts/legacy-router/IRouterContext.d.ts.map +1 -1
  27. package/dist/contexts/legacy-router/index.d.ts.map +1 -1
  28. package/dist/contexts/live/ILiveContext.d.ts.map +1 -1
  29. package/dist/contexts/live/index.d.ts.map +1 -1
  30. package/dist/contexts/notification/INotificationContext.d.ts.map +1 -1
  31. package/dist/contexts/notification/index.d.ts.map +1 -1
  32. package/dist/contexts/refine/IRefineContext.d.ts.map +1 -1
  33. package/dist/contexts/refine/index.d.ts.map +1 -1
  34. package/dist/contexts/resource/IResourceContext.d.ts.map +1 -1
  35. package/dist/contexts/resource/index.d.ts.map +1 -1
  36. package/dist/contexts/router/index.d.ts.map +1 -1
  37. package/dist/contexts/translation/ITranslationContext.d.ts.map +1 -1
  38. package/dist/contexts/translation/index.d.ts.map +1 -1
  39. package/dist/contexts/undoableQueue/IUndoableQueueContext.d.ts.map +1 -1
  40. package/dist/contexts/undoableQueue/actionTypes.d.ts.map +1 -1
  41. package/dist/contexts/undoableQueue/index.d.ts.map +1 -1
  42. package/dist/contexts/undoableQueue/undoableQueueContext.d.ts.map +1 -1
  43. package/dist/contexts/unsavedWarn/IUnsavedWarnContext.d.ts.map +1 -1
  44. package/dist/definitions/helpers/check-router-prop-misuse/index.d.ts.map +1 -1
  45. package/dist/definitions/helpers/downloadInBrowser/index.d.ts.map +1 -1
  46. package/dist/definitions/helpers/flatten-object-keys/index.d.ts.map +1 -1
  47. package/dist/definitions/helpers/generateDocumentTitle/index.d.ts.map +1 -1
  48. package/dist/definitions/helpers/handlePaginationParams/index.d.ts.map +1 -1
  49. package/dist/definitions/helpers/handleRefineOptions/index.d.ts.map +1 -1
  50. package/dist/definitions/helpers/hasPermission/index.d.ts.map +1 -1
  51. package/dist/definitions/helpers/importCSVMapper/index.d.ts.map +1 -1
  52. package/dist/definitions/helpers/index.d.ts.map +1 -1
  53. package/dist/definitions/helpers/keys/index.d.ts +0 -11
  54. package/dist/definitions/helpers/keys/index.d.ts.map +1 -1
  55. package/dist/definitions/helpers/legacy-resource-transform/index.d.ts.map +1 -1
  56. package/dist/definitions/helpers/menu/create-resource-key.d.ts.map +1 -1
  57. package/dist/definitions/helpers/menu/create-tree.d.ts.map +1 -1
  58. package/dist/definitions/helpers/pick-resource/index.d.ts.map +1 -1
  59. package/dist/definitions/helpers/pickDataProvider/index.d.ts.map +1 -1
  60. package/dist/definitions/helpers/queryKeys/index.d.ts.map +1 -1
  61. package/dist/definitions/helpers/redirectPage/index.d.ts.map +1 -1
  62. package/dist/definitions/helpers/routeGenerator/index.d.ts.map +1 -1
  63. package/dist/definitions/helpers/router/compose-route.d.ts.map +1 -1
  64. package/dist/definitions/helpers/router/get-action-routes-from-resource.d.ts.map +1 -1
  65. package/dist/definitions/helpers/router/get-default-action-path.d.ts.map +1 -1
  66. package/dist/definitions/helpers/router/get-parent-prefix-for-resource.d.ts.map +1 -1
  67. package/dist/definitions/helpers/router/get-parent-resource.d.ts.map +1 -1
  68. package/dist/definitions/helpers/router/match-resource-from-route.d.ts.map +1 -1
  69. package/dist/definitions/helpers/router/pick-matched-route.d.ts.map +1 -1
  70. package/dist/definitions/helpers/router/prepare-route-params.d.ts.map +1 -1
  71. package/dist/definitions/helpers/safe-translate/index.d.ts.map +1 -1
  72. package/dist/definitions/helpers/sanitize-resource/index.d.ts.map +1 -1
  73. package/dist/definitions/helpers/sequentialPromises/index.d.ts.map +1 -1
  74. package/dist/definitions/helpers/treeView/createTreeView/index.d.ts.map +1 -1
  75. package/dist/definitions/helpers/useActiveAuthProvider/index.d.ts +2 -2
  76. package/dist/definitions/helpers/useUserFriendlyName/index.d.ts.map +1 -1
  77. package/dist/definitions/helpers/userFriendlyResourceName/index.d.ts.map +1 -1
  78. package/dist/definitions/table/index.d.ts.map +1 -1
  79. package/dist/esm/index.js +18 -18
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/hooks/accessControl/useCan/index.d.ts.map +1 -1
  82. package/dist/hooks/accessControl/useCanWithoutCache.d.ts.map +1 -1
  83. package/dist/hooks/auditLog/useLog/index.d.ts.map +1 -1
  84. package/dist/hooks/auditLog/useLogList/index.d.ts.map +1 -1
  85. package/dist/hooks/auth/useForgotPassword/index.d.ts.map +1 -1
  86. package/dist/hooks/auth/useGetIdentity/index.d.ts.map +1 -1
  87. package/dist/hooks/auth/useIsAuthenticated/index.d.ts.map +1 -1
  88. package/dist/hooks/auth/useLogin/index.d.ts.map +1 -1
  89. package/dist/hooks/auth/useLogout/index.d.ts.map +1 -1
  90. package/dist/hooks/auth/useOnError/index.d.ts.map +1 -1
  91. package/dist/hooks/auth/usePermissions/index.d.ts +9 -6
  92. package/dist/hooks/auth/usePermissions/index.d.ts.map +1 -1
  93. package/dist/hooks/auth/useRegister/index.d.ts.map +1 -1
  94. package/dist/hooks/auth/useUpdatePassword/index.d.ts.map +1 -1
  95. package/dist/hooks/breadcrumb/index.d.ts.map +1 -1
  96. package/dist/hooks/data/useApiUrl.d.ts.map +1 -1
  97. package/dist/hooks/data/useCreate.d.ts.map +1 -1
  98. package/dist/hooks/data/useCreateMany.d.ts.map +1 -1
  99. package/dist/hooks/data/useCustom.d.ts.map +1 -1
  100. package/dist/hooks/data/useCustomMutation.d.ts.map +1 -1
  101. package/dist/hooks/data/useDataProvider.d.ts.map +1 -1
  102. package/dist/hooks/data/useDelete.d.ts.map +1 -1
  103. package/dist/hooks/data/useDeleteMany.d.ts.map +1 -1
  104. package/dist/hooks/data/useInfiniteList.d.ts.map +1 -1
  105. package/dist/hooks/data/useList.d.ts.map +1 -1
  106. package/dist/hooks/data/useMany.d.ts.map +1 -1
  107. package/dist/hooks/data/useOne.d.ts.map +1 -1
  108. package/dist/hooks/data/useUpdate.d.ts.map +1 -1
  109. package/dist/hooks/data/useUpdateMany.d.ts.map +1 -1
  110. package/dist/hooks/export/csvDownload.interface.d.ts.map +1 -1
  111. package/dist/hooks/export/index.d.ts +1 -1
  112. package/dist/hooks/export/index.d.ts.map +1 -1
  113. package/dist/hooks/form/useForm.d.ts.map +1 -1
  114. package/dist/hooks/import/index.d.ts.map +1 -1
  115. package/dist/hooks/invalidate/index.d.ts.map +1 -1
  116. package/dist/hooks/live/useLiveMode/index.d.ts.map +1 -1
  117. package/dist/hooks/live/useResourceSubscription/index.d.ts.map +1 -1
  118. package/dist/hooks/live/useSubscription/index.d.ts.map +1 -1
  119. package/dist/hooks/menu/useMenu.d.ts.map +1 -1
  120. package/dist/hooks/modal/useModal/index.d.ts.map +1 -1
  121. package/dist/hooks/navigation/index.d.ts.map +1 -1
  122. package/dist/hooks/notification/useCancelNotification/index.d.ts.map +1 -1
  123. package/dist/hooks/notification/useHandleNotification/index.d.ts.map +1 -1
  124. package/dist/hooks/redirection/index.d.ts.map +1 -1
  125. package/dist/hooks/refine/useMutationMode.d.ts.map +1 -1
  126. package/dist/hooks/refine/useSyncWithLocation.d.ts.map +1 -1
  127. package/dist/hooks/refine/useWarnAboutChange/index.d.ts.map +1 -1
  128. package/dist/hooks/resource/useResource/index.d.ts.map +1 -1
  129. package/dist/hooks/router/use-get-to-path/index.d.ts.map +1 -1
  130. package/dist/hooks/router/use-go/index.d.ts.map +1 -1
  131. package/dist/hooks/router/use-link/index.d.ts.map +1 -1
  132. package/dist/hooks/router/use-parse/index.d.ts.map +1 -1
  133. package/dist/hooks/router/use-to-path/index.d.ts.map +1 -1
  134. package/dist/hooks/show/useShow.d.ts.map +1 -1
  135. package/dist/hooks/translate/useSetLocale.d.ts.map +1 -1
  136. package/dist/hooks/translate/useTranslate.d.ts.map +1 -1
  137. package/dist/hooks/useLoadingOvertime/index.d.ts.map +1 -1
  138. package/dist/hooks/useSelect/index.d.ts +18 -4
  139. package/dist/hooks/useSelect/index.d.ts.map +1 -1
  140. package/dist/hooks/useTable/index.d.ts.map +1 -1
  141. package/dist/iife/index.js +18 -18
  142. package/dist/iife/index.js.map +1 -1
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +18 -18
  145. package/dist/index.js.map +1 -1
  146. package/dist/interfaces/actions.d.ts.map +1 -1
  147. package/dist/interfaces/auditLog/logData.d.ts.map +1 -1
  148. package/dist/interfaces/auth.d.ts.map +1 -1
  149. package/dist/interfaces/autoSave.d.ts.map +1 -1
  150. package/dist/interfaces/bindings/access-control.d.ts.map +1 -1
  151. package/dist/interfaces/bindings/auth.d.ts +1 -1
  152. package/dist/interfaces/bindings/auth.d.ts.map +1 -1
  153. package/dist/interfaces/bindings/data.d.ts.map +1 -1
  154. package/dist/interfaces/bindings/i18n.d.ts.map +1 -1
  155. package/dist/interfaces/bindings/index.d.ts.map +1 -1
  156. package/dist/interfaces/bindings/live.d.ts.map +1 -1
  157. package/dist/interfaces/bindings/notifications.d.ts.map +1 -1
  158. package/dist/interfaces/bindings/resource.d.ts.map +1 -1
  159. package/dist/interfaces/bindings/router.d.ts.map +1 -1
  160. package/dist/interfaces/customComponents.d.ts.map +1 -1
  161. package/dist/interfaces/errors/HttpError.d.ts.map +1 -1
  162. package/dist/interfaces/form-url-params.d.ts.map +1 -1
  163. package/dist/interfaces/index.d.ts.map +1 -1
  164. package/dist/interfaces/live/LiveEvent.d.ts.map +1 -1
  165. package/dist/interfaces/live/LiveModeProps.d.ts.map +1 -1
  166. package/dist/interfaces/mapDataFn.d.ts.map +1 -1
  167. package/dist/interfaces/metaData/graphqlQueryOptions.d.ts.map +1 -1
  168. package/dist/interfaces/metaData/metaDataQuery.d.ts.map +1 -1
  169. package/dist/interfaces/metaData/metaQuery.d.ts.map +1 -1
  170. package/dist/interfaces/metaData/nestedField.d.ts.map +1 -1
  171. package/dist/interfaces/metaData/queryBuilderOptions.d.ts.map +1 -1
  172. package/dist/interfaces/metaData/variableOptions.d.ts.map +1 -1
  173. package/dist/interfaces/mutationMode.d.ts.map +1 -1
  174. package/dist/interfaces/notification.d.ts.map +1 -1
  175. package/dist/interfaces/optimistic-update-map.d.ts.map +1 -1
  176. package/dist/interfaces/prettify.d.ts.map +1 -1
  177. package/dist/interfaces/queryKey.d.ts.map +1 -1
  178. package/dist/interfaces/resourceErrorRouterParams.d.ts.map +1 -1
  179. package/dist/interfaces/resourceRouterParams.d.ts.map +1 -1
  180. package/dist/interfaces/successErrorNotification.d.ts +4 -4
  181. package/dist/interfaces/successErrorNotification.d.ts.map +1 -1
  182. package/dist/interfaces/telemetry.d.ts.map +1 -1
  183. package/dist/interfaces/textTransformers.d.ts.map +1 -1
  184. package/package.json +2 -2
  185. package/refine.config.js +99 -102
  186. package/src/components/authenticated/index.tsx +157 -159
  187. package/src/components/autoSaveIndicator/index.tsx +23 -27
  188. package/src/components/canAccess/index.tsx +93 -93
  189. package/src/components/containers/refine/index.tsx +312 -353
  190. package/src/components/gh-banner/index.tsx +235 -242
  191. package/src/components/gh-banner/styles.ts +5 -5
  192. package/src/components/layoutWrapper/defaultLayout/index.tsx +1 -1
  193. package/src/components/layoutWrapper/index.tsx +87 -87
  194. package/src/components/pages/auth/components/forgotPassword/index.tsx +87 -96
  195. package/src/components/pages/auth/components/login/index.tsx +166 -181
  196. package/src/components/pages/auth/components/register/index.tsx +141 -159
  197. package/src/components/pages/auth/components/updatePassword/index.tsx +81 -87
  198. package/src/components/pages/auth/index.tsx +28 -28
  199. package/src/components/pages/config-error/index.tsx +422 -422
  200. package/src/components/pages/config-success/index.tsx +249 -260
  201. package/src/components/pages/error/index.tsx +48 -48
  202. package/src/components/pages/login/index.tsx +59 -73
  203. package/src/components/pages/ready/index.tsx +21 -29
  204. package/src/components/pages/welcome/index.tsx +7 -7
  205. package/src/components/routeChangeHandler/index.tsx +7 -7
  206. package/src/components/telemetry/index.tsx +31 -31
  207. package/src/components/undoableQueue/index.tsx +49 -49
  208. package/src/contexts/accessControl/IAccessControlContext.ts +34 -34
  209. package/src/contexts/accessControl/index.tsx +35 -35
  210. package/src/contexts/auditLog/IAuditLogContext.ts +22 -22
  211. package/src/contexts/auditLog/index.tsx +8 -8
  212. package/src/contexts/auth/IAuthContext.ts +10 -10
  213. package/src/contexts/auth/index.tsx +169 -169
  214. package/src/contexts/data/IDataContext.ts +203 -203
  215. package/src/contexts/data/index.tsx +18 -18
  216. package/src/contexts/legacy-router/IRouterContext.ts +23 -27
  217. package/src/contexts/legacy-router/index.tsx +30 -30
  218. package/src/contexts/live/ILiveContext.ts +49 -49
  219. package/src/contexts/live/index.tsx +5 -7
  220. package/src/contexts/notification/INotificationContext.ts +8 -8
  221. package/src/contexts/notification/index.tsx +8 -8
  222. package/src/contexts/refine/IRefineContext.ts +119 -119
  223. package/src/contexts/refine/index.tsx +80 -80
  224. package/src/contexts/resource/IResourceContext.ts +35 -35
  225. package/src/contexts/resource/index.tsx +16 -16
  226. package/src/contexts/router/index.tsx +7 -7
  227. package/src/contexts/router-picker/index.tsx +2 -2
  228. package/src/contexts/translation/ITranslationContext.ts +7 -7
  229. package/src/contexts/translation/index.tsx +12 -12
  230. package/src/contexts/undoableQueue/IUndoableQueueContext.ts +2 -2
  231. package/src/contexts/undoableQueue/actionTypes.ts +3 -3
  232. package/src/contexts/undoableQueue/index.ts +2 -2
  233. package/src/contexts/undoableQueue/undoableQueueContext.tsx +59 -60
  234. package/src/contexts/unsavedWarn/IUnsavedWarnContext.ts +2 -2
  235. package/src/contexts/unsavedWarn/index.tsx +7 -7
  236. package/src/definitions/helpers/check-router-prop-misuse/index.ts +20 -20
  237. package/src/definitions/helpers/downloadInBrowser/index.ts +19 -20
  238. package/src/definitions/helpers/flatten-object-keys/index.ts +26 -29
  239. package/src/definitions/helpers/generateDocumentTitle/index.ts +39 -45
  240. package/src/definitions/helpers/handleMultiple/index.ts +4 -4
  241. package/src/definitions/helpers/handlePaginationParams/index.ts +17 -18
  242. package/src/definitions/helpers/handleRefineOptions/index.ts +88 -90
  243. package/src/definitions/helpers/handleUseParams/index.tsx +7 -7
  244. package/src/definitions/helpers/hasPermission/index.ts +6 -6
  245. package/src/definitions/helpers/humanizeString/index.ts +9 -9
  246. package/src/definitions/helpers/importCSVMapper/index.ts +8 -8
  247. package/src/definitions/helpers/index.ts +2 -2
  248. package/src/definitions/helpers/keys/index.ts +205 -258
  249. package/src/definitions/helpers/legacy-resource-transform/index.ts +14 -14
  250. package/src/definitions/helpers/menu/create-resource-key.ts +20 -23
  251. package/src/definitions/helpers/menu/create-tree.ts +61 -63
  252. package/src/definitions/helpers/pick-resource/index.ts +25 -25
  253. package/src/definitions/helpers/pickDataProvider/index.ts +15 -15
  254. package/src/definitions/helpers/pickNotDeprecated/index.ts +2 -2
  255. package/src/definitions/helpers/property-path-to-array/index.ts +3 -3
  256. package/src/definitions/helpers/queryKeys/index.ts +92 -92
  257. package/src/definitions/helpers/redirectPage/index.ts +19 -19
  258. package/src/definitions/helpers/routeGenerator/index.ts +15 -15
  259. package/src/definitions/helpers/router/__tests__/check-by-segments.ts +12 -15
  260. package/src/definitions/helpers/router/__tests__/compose-route.ts +48 -48
  261. package/src/definitions/helpers/router/__tests__/get-action-routes-from-resource.ts +152 -152
  262. package/src/definitions/helpers/router/__tests__/get-default-action-path.ts +39 -41
  263. package/src/definitions/helpers/router/__tests__/get-parent-prefix-for-resource.ts +69 -73
  264. package/src/definitions/helpers/router/__tests__/get-parent-resource.ts +40 -40
  265. package/src/definitions/helpers/router/__tests__/is-segment-counts-same.ts +11 -14
  266. package/src/definitions/helpers/router/__tests__/match-resource-from-route.ts +55 -55
  267. package/src/definitions/helpers/router/__tests__/pick-matched-route.ts +74 -74
  268. package/src/definitions/helpers/router/__tests__/pick-route-params.ts +12 -12
  269. package/src/definitions/helpers/router/__tests__/prepare-route-params.ts +18 -18
  270. package/src/definitions/helpers/router/__tests__/remove-leading-trailing-slashes.ts +9 -9
  271. package/src/definitions/helpers/router/__tests__/split-to-segments.ts +9 -9
  272. package/src/definitions/helpers/router/check-by-segments.ts +12 -12
  273. package/src/definitions/helpers/router/compose-route.ts +25 -27
  274. package/src/definitions/helpers/router/get-action-routes-from-resource.ts +41 -47
  275. package/src/definitions/helpers/router/get-default-action-path.ts +19 -19
  276. package/src/definitions/helpers/router/get-parent-prefix-for-resource.ts +22 -24
  277. package/src/definitions/helpers/router/get-parent-resource.ts +18 -18
  278. package/src/definitions/helpers/router/is-parameter.ts +1 -1
  279. package/src/definitions/helpers/router/is-segment-counts-same.ts +3 -3
  280. package/src/definitions/helpers/router/match-resource-from-route.ts +19 -19
  281. package/src/definitions/helpers/router/pick-matched-route.ts +44 -44
  282. package/src/definitions/helpers/router/pick-route-params.ts +7 -7
  283. package/src/definitions/helpers/router/prepare-route-params.ts +13 -10
  284. package/src/definitions/helpers/router/remove-leading-trailing-slashes.ts +1 -1
  285. package/src/definitions/helpers/router/split-to-segments.ts +2 -2
  286. package/src/definitions/helpers/safe-translate/index.ts +12 -12
  287. package/src/definitions/helpers/sanitize-resource/index.ts +26 -27
  288. package/src/definitions/helpers/sequentialPromises/index.ts +21 -21
  289. package/src/definitions/helpers/treeView/createTreeView/index.ts +33 -33
  290. package/src/definitions/helpers/useActiveAuthProvider/index.ts +18 -18
  291. package/src/definitions/helpers/useInfinitePagination/index.ts +16 -16
  292. package/src/definitions/helpers/useMediaQuery/index.ts +11 -11
  293. package/src/definitions/helpers/useUserFriendlyName/index.ts +11 -14
  294. package/src/definitions/helpers/userFriendlyResourceName/index.ts +7 -7
  295. package/src/definitions/helpers/userFriendlySeconds/index.ts +1 -1
  296. package/src/definitions/table/index.ts +127 -130
  297. package/src/definitions/upload/file2Base64/index.ts +15 -15
  298. package/src/hooks/accessControl/useCan/index.ts +52 -54
  299. package/src/hooks/accessControl/useCanWithoutCache.ts +25 -26
  300. package/src/hooks/auditLog/useLog/index.ts +114 -114
  301. package/src/hooks/auditLog/useLogList/index.ts +44 -44
  302. package/src/hooks/auth/useForgotPassword/index.ts +158 -163
  303. package/src/hooks/auth/useGetIdentity/index.ts +55 -57
  304. package/src/hooks/auth/useInvalidateAuthStore/index.ts +12 -12
  305. package/src/hooks/auth/useIsAuthenticated/index.ts +44 -48
  306. package/src/hooks/auth/useIsExistAuthentication/index.ts +3 -3
  307. package/src/hooks/auth/useLogin/index.ts +181 -194
  308. package/src/hooks/auth/useLogout/index.ts +175 -177
  309. package/src/hooks/auth/useOnError/index.ts +76 -76
  310. package/src/hooks/auth/usePermissions/index.ts +94 -61
  311. package/src/hooks/auth/useRegister/index.ts +166 -178
  312. package/src/hooks/auth/useUpdatePassword/index.ts +183 -194
  313. package/src/hooks/breadcrumb/index.ts +99 -106
  314. package/src/hooks/data/useApiUrl.ts +7 -8
  315. package/src/hooks/data/useCreate.ts +241 -241
  316. package/src/hooks/data/useCreateMany.ts +219 -226
  317. package/src/hooks/data/useCustom.ts +181 -182
  318. package/src/hooks/data/useCustomMutation.ts +174 -174
  319. package/src/hooks/data/useDataProvider.tsx +27 -29
  320. package/src/hooks/data/useDelete.ts +447 -454
  321. package/src/hooks/data/useDeleteMany.ts +475 -484
  322. package/src/hooks/data/useInfiniteList.ts +280 -280
  323. package/src/hooks/data/useList.ts +280 -283
  324. package/src/hooks/data/useMany.ts +215 -216
  325. package/src/hooks/data/useOne.ts +210 -211
  326. package/src/hooks/data/useUpdate.ts +529 -556
  327. package/src/hooks/data/useUpdateMany.ts +556 -584
  328. package/src/hooks/deepMemo/index.tsx +5 -5
  329. package/src/hooks/export/csvDownload.interface.ts +13 -13
  330. package/src/hooks/export/index.ts +223 -217
  331. package/src/hooks/form/useForm.ts +543 -560
  332. package/src/hooks/import/index.tsx +254 -260
  333. package/src/hooks/invalidate/index.tsx +75 -75
  334. package/src/hooks/legacy-router/useRouterContext.ts +11 -11
  335. package/src/hooks/live/useLiveMode/index.ts +4 -4
  336. package/src/hooks/live/usePublish/index.ts +2 -2
  337. package/src/hooks/live/useResourceSubscription/index.ts +103 -103
  338. package/src/hooks/live/useSubscription/index.ts +77 -77
  339. package/src/hooks/memoized/index.tsx +6 -6
  340. package/src/hooks/menu/useMenu.tsx +113 -120
  341. package/src/hooks/modal/useModal/index.tsx +16 -16
  342. package/src/hooks/navigation/index.ts +362 -392
  343. package/src/hooks/notification/useCancelNotification/index.tsx +5 -5
  344. package/src/hooks/notification/useHandleNotification/index.ts +17 -17
  345. package/src/hooks/notification/useNotification/index.ts +2 -2
  346. package/src/hooks/redirection/index.ts +45 -46
  347. package/src/hooks/refine/useMutationMode.ts +4 -4
  348. package/src/hooks/refine/useRefineContext.ts +36 -36
  349. package/src/hooks/refine/useSyncWithLocation.ts +3 -3
  350. package/src/hooks/refine/useTitle.tsx +2 -2
  351. package/src/hooks/refine/useWarnAboutChange/index.ts +12 -12
  352. package/src/hooks/resource/useResource/index.ts +141 -146
  353. package/src/hooks/resource/useResourceWithRoute/index.ts +12 -12
  354. package/src/hooks/router/use-back/index.tsx +7 -7
  355. package/src/hooks/router/use-get-to-path/index.ts +35 -35
  356. package/src/hooks/router/use-go/index.tsx +66 -66
  357. package/src/hooks/router/use-link/index.tsx +8 -9
  358. package/src/hooks/router/use-parse/index.tsx +13 -13
  359. package/src/hooks/router/use-parsed/index.tsx +4 -4
  360. package/src/hooks/router/use-router-misuse-warning/index.ts +10 -10
  361. package/src/hooks/router/use-to-path/index.ts +10 -10
  362. package/src/hooks/show/useShow.ts +135 -135
  363. package/src/hooks/translate/useGetLocale.ts +2 -2
  364. package/src/hooks/translate/useSetLocale.ts +2 -2
  365. package/src/hooks/translate/useTranslate.ts +24 -25
  366. package/src/hooks/useKeys/index.tsx +7 -7
  367. package/src/hooks/useLoadingOvertime/index.ts +74 -76
  368. package/src/hooks/useMeta/index.ts +20 -20
  369. package/src/hooks/useSelect/index.ts +317 -277
  370. package/src/hooks/useTable/index.ts +483 -507
  371. package/src/hooks/useTelemetryData/index.ts +48 -48
  372. package/src/index.tsx +125 -125
  373. package/src/interfaces/actions.ts +2 -2
  374. package/src/interfaces/auditLog/logData.ts +9 -9
  375. package/src/interfaces/auth.tsx +176 -176
  376. package/src/interfaces/autoSave.ts +37 -37
  377. package/src/interfaces/bindings/access-control.ts +21 -21
  378. package/src/interfaces/bindings/auth.ts +27 -25
  379. package/src/interfaces/bindings/data.ts +2 -2
  380. package/src/interfaces/bindings/i18n.ts +8 -8
  381. package/src/interfaces/bindings/index.ts +15 -15
  382. package/src/interfaces/bindings/live.ts +28 -28
  383. package/src/interfaces/bindings/notifications.ts +8 -8
  384. package/src/interfaces/bindings/resource.ts +127 -127
  385. package/src/interfaces/bindings/router.ts +26 -26
  386. package/src/interfaces/customComponents.ts +17 -17
  387. package/src/interfaces/errors/HttpError.ts +8 -8
  388. package/src/interfaces/form-url-params.ts +6 -6
  389. package/src/interfaces/index.ts +8 -10
  390. package/src/interfaces/live/LiveEvent.ts +10 -10
  391. package/src/interfaces/live/LiveModeProps.ts +21 -21
  392. package/src/interfaces/mapDataFn.ts +1 -1
  393. package/src/interfaces/metaData/graphqlQueryOptions.ts +49 -49
  394. package/src/interfaces/metaData/metaDataQuery.ts +2 -2
  395. package/src/interfaces/metaData/metaQuery.ts +3 -3
  396. package/src/interfaces/metaData/nestedField.ts +3 -3
  397. package/src/interfaces/metaData/queryBuilderOptions.ts +3 -3
  398. package/src/interfaces/metaData/variableOptions.ts +8 -8
  399. package/src/interfaces/mutationMode.ts +14 -14
  400. package/src/interfaces/notification.ts +7 -7
  401. package/src/interfaces/optimistic-update-map.ts +42 -42
  402. package/src/interfaces/prettify.ts +1 -1
  403. package/src/interfaces/queryKey.ts +16 -16
  404. package/src/interfaces/resourceErrorRouterParams.ts +2 -2
  405. package/src/interfaces/resourceRouterParams.ts +3 -3
  406. package/src/interfaces/successErrorNotification.ts +24 -24
  407. package/src/interfaces/telemetry.ts +13 -13
  408. package/src/interfaces/textTransformers.ts +18 -18
  409. package/tsconfig.json +26 -26
@@ -6,12 +6,12 @@ import { useMemoized } from "@hooks/memoized";
6
6
  * @internal
7
7
  */
8
8
  export const useDeepMemo = <T,>(
9
- fn: () => T,
10
- dependencies: React.DependencyList,
9
+ fn: () => T,
10
+ dependencies: React.DependencyList,
11
11
  ): T => {
12
- const memoizedDependencies = useMemoized(dependencies);
12
+ const memoizedDependencies = useMemoized(dependencies);
13
13
 
14
- const value = useMemo(fn, memoizedDependencies);
14
+ const value = useMemo(fn, memoizedDependencies);
15
15
 
16
- return value;
16
+ return value;
17
17
  };
@@ -1,27 +1,27 @@
1
1
  import { MouseEventHandler } from "react";
2
2
 
3
3
  export interface LabelKeyObject {
4
- label: string;
5
- key: string;
4
+ label: string;
5
+ key: string;
6
6
  }
7
7
 
8
8
  export type Data = object[];
9
9
  export type Headers = LabelKeyObject[] | string[];
10
10
  export type SyncClickHandler = (
11
- event: MouseEventHandler<HTMLAnchorElement>,
11
+ event: MouseEventHandler<HTMLAnchorElement>,
12
12
  ) => boolean | void;
13
13
  export type AsyncClickHandler = (
14
- event: MouseEventHandler<HTMLAnchorElement>,
15
- done: (proceed?: boolean) => void,
14
+ event: MouseEventHandler<HTMLAnchorElement>,
15
+ done: (proceed?: boolean) => void,
16
16
  ) => void;
17
17
 
18
18
  export interface CSVDownloadProps {
19
- data: string | Data;
20
- headers?: Headers;
21
- enclosingCharacter?: string;
22
- separator?: string;
23
- filename?: string;
24
- uFEFF?: boolean;
25
- onClick?: SyncClickHandler | AsyncClickHandler;
26
- asyncOnClick?: boolean;
19
+ data: string | Data;
20
+ headers?: Headers;
21
+ enclosingCharacter?: string;
22
+ separator?: string;
23
+ filename?: string;
24
+ uFEFF?: boolean;
25
+ onClick?: SyncClickHandler | AsyncClickHandler;
26
+ asyncOnClick?: boolean;
27
27
  }
@@ -3,109 +3,109 @@ import { unparse, UnparseConfig } from "papaparse";
3
3
  import warnOnce from "warn-once";
4
4
  import { useResource, useDataProvider, useMeta } from "@hooks";
5
5
  import {
6
- BaseRecord,
7
- MapDataFn,
8
- CrudSorting,
9
- CrudFilters,
10
- MetaQuery,
6
+ BaseRecord,
7
+ MapDataFn,
8
+ CrudSorting,
9
+ CrudFilters,
10
+ MetaQuery,
11
11
  } from "../../interfaces";
12
12
  import {
13
- useUserFriendlyName,
14
- pickDataProvider,
15
- pickNotDeprecated,
16
- downloadInBrowser,
13
+ useUserFriendlyName,
14
+ pickDataProvider,
15
+ pickNotDeprecated,
16
+ downloadInBrowser,
17
17
  } from "@definitions";
18
18
 
19
19
  // Old options interface taken from export-to-csv-fix-source-map@0.2.1
20
20
  // Kept here to ensure backward compatibility
21
21
  export interface ExportOptions {
22
- filename?: string;
23
- fieldSeparator?: string;
24
- quoteStrings?: string;
25
- decimalSeparator?: string;
26
- showLabels?: boolean;
27
- showTitle?: boolean;
28
- title?: string;
29
- useTextFile?: boolean;
30
- useBom?: boolean;
31
- headers?: string[];
32
- useKeysAsHeaders?: boolean;
22
+ filename?: string;
23
+ fieldSeparator?: string;
24
+ quoteStrings?: string;
25
+ decimalSeparator?: string;
26
+ showLabels?: boolean;
27
+ showTitle?: boolean;
28
+ title?: string;
29
+ useTextFile?: boolean;
30
+ useBom?: boolean;
31
+ headers?: string[];
32
+ useKeysAsHeaders?: boolean;
33
33
  }
34
34
 
35
35
  type UseExportOptionsType<
36
- TData extends BaseRecord = BaseRecord,
37
- TVariables = any,
36
+ TData extends BaseRecord = BaseRecord,
37
+ TVariables = any,
38
38
  > = {
39
- /**
40
- * Resource name for API data interactions
41
- * @default Resource name that it reads from route
42
- * @deprecated `resourceName` is deprecated. Use `resource` instead.
43
- */
44
- resourceName?: string;
45
- /**
46
- * Resource name for API data interactions
47
- * @default Resource name that it reads from route
48
- */
49
- resource?: string;
50
- /**
51
- * A mapping function that runs for every record. Mapped data will be included in the file contents
52
- */
53
- mapData?: MapDataFn<TData, TVariables>;
54
- /**
55
- * Sorts records
56
- * @deprecated `sorter` is deprecated. Use `sorters` instead.
57
- */
58
- sorter?: CrudSorting;
59
- /**
60
- * Sorts records
61
- */
62
- sorters?: CrudSorting;
63
- /**
64
- * Filters records
65
- */
66
- filters?: CrudFilters;
67
- maxItemCount?: number;
68
- /**
69
- * Requests to fetch data are made as batches by page size. By default, it is 20. Used for `getList` method of `DataProvider`
70
- */
71
- pageSize?: number;
72
- /**
73
- * Used for exporting options
74
- * @type [Options](https://github.com/alexcaza/export-to-csv)
75
- * @deprecated `exportOptions` is deprecated. Use `unparseConfig` instead.
76
- */
77
- exportOptions?: ExportOptions;
78
- /**
79
- * Used for exporting options
80
- * @type [UnparseConfig](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/papaparse)
81
- */
82
- unparseConfig?: UnparseConfig;
83
- /**
84
- * Metadata query for `dataProvider`
85
- */
86
- meta?: MetaQuery;
87
- /**
88
- * Metadata query for `dataProvider`
89
- * @deprecated `metaData` is deprecated with refine@4, refine will pass `meta` instead, however, we still support `metaData` for backward compatibility.
90
- */
91
- metaData?: MetaQuery;
92
- /**
93
- * If there is more than one `dataProvider`, you should use the `dataProviderName` that you will use.
94
- */
95
- dataProviderName?: string;
96
- /**
97
- * Callback to handle error events of this hook
98
- */
99
- onError?: (error: any) => void;
100
- /**
101
- * Whether to generate download of the CSV in browser environments, defaults to true.
102
- */
103
- download?: boolean;
39
+ /**
40
+ * Resource name for API data interactions
41
+ * @default Resource name that it reads from route
42
+ * @deprecated `resourceName` is deprecated. Use `resource` instead.
43
+ */
44
+ resourceName?: string;
45
+ /**
46
+ * Resource name for API data interactions
47
+ * @default Resource name that it reads from route
48
+ */
49
+ resource?: string;
50
+ /**
51
+ * A mapping function that runs for every record. Mapped data will be included in the file contents
52
+ */
53
+ mapData?: MapDataFn<TData, TVariables>;
54
+ /**
55
+ * Sorts records
56
+ * @deprecated `sorter` is deprecated. Use `sorters` instead.
57
+ */
58
+ sorter?: CrudSorting;
59
+ /**
60
+ * Sorts records
61
+ */
62
+ sorters?: CrudSorting;
63
+ /**
64
+ * Filters records
65
+ */
66
+ filters?: CrudFilters;
67
+ maxItemCount?: number;
68
+ /**
69
+ * Requests to fetch data are made as batches by page size. By default, it is 20. Used for `getList` method of `DataProvider`
70
+ */
71
+ pageSize?: number;
72
+ /**
73
+ * Used for exporting options
74
+ * @type [Options](https://github.com/alexcaza/export-to-csv)
75
+ * @deprecated `exportOptions` is deprecated. Use `unparseConfig` instead.
76
+ */
77
+ exportOptions?: ExportOptions;
78
+ /**
79
+ * Used for exporting options
80
+ * @type [UnparseConfig](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/papaparse)
81
+ */
82
+ unparseConfig?: UnparseConfig;
83
+ /**
84
+ * Metadata query for `dataProvider`
85
+ */
86
+ meta?: MetaQuery;
87
+ /**
88
+ * Metadata query for `dataProvider`
89
+ * @deprecated `metaData` is deprecated with refine@4, refine will pass `meta` instead, however, we still support `metaData` for backward compatibility.
90
+ */
91
+ metaData?: MetaQuery;
92
+ /**
93
+ * If there is more than one `dataProvider`, you should use the `dataProviderName` that you will use.
94
+ */
95
+ dataProviderName?: string;
96
+ /**
97
+ * Callback to handle error events of this hook
98
+ */
99
+ onError?: (error: any) => void;
100
+ /**
101
+ * Whether to generate download of the CSV in browser environments, defaults to true.
102
+ */
103
+ download?: boolean;
104
104
  };
105
105
 
106
106
  type UseExportReturnType = {
107
- isLoading: boolean;
108
- triggerExport: () => Promise<string | undefined>;
107
+ isLoading: boolean;
108
+ triggerExport: () => Promise<string | undefined>;
109
109
  };
110
110
 
111
111
  /**
@@ -118,157 +118,163 @@ type UseExportReturnType = {
118
118
  *
119
119
  */
120
120
  export const useExport = <
121
- TData extends BaseRecord = BaseRecord,
122
- TVariables = any,
121
+ TData extends BaseRecord = BaseRecord,
122
+ TVariables = any,
123
123
  >({
124
- resourceName,
125
- resource: resourceFromProps,
126
- sorter,
127
- sorters,
128
- filters,
129
- maxItemCount,
130
- pageSize = 20,
131
- mapData = (item) => item as any,
132
- exportOptions,
133
- unparseConfig,
134
- meta,
135
- metaData,
136
- dataProviderName,
137
- onError,
138
- download
124
+ resourceName,
125
+ resource: resourceFromProps,
126
+ sorter,
127
+ sorters,
128
+ filters,
129
+ maxItemCount,
130
+ pageSize = 20,
131
+ mapData = (item) => item as any,
132
+ exportOptions,
133
+ unparseConfig,
134
+ meta,
135
+ metaData,
136
+ dataProviderName,
137
+ onError,
138
+ download,
139
139
  }: UseExportOptionsType<TData, TVariables> = {}): UseExportReturnType => {
140
- const [isLoading, setIsLoading] = useState(false);
140
+ const [isLoading, setIsLoading] = useState(false);
141
141
 
142
- const dataProvider = useDataProvider();
143
- const getMeta = useMeta();
144
- const { resource, resources, identifier } = useResource(
145
- pickNotDeprecated(resourceFromProps, resourceName),
146
- );
147
- const getFriendlyName = useUserFriendlyName();
142
+ const dataProvider = useDataProvider();
143
+ const getMeta = useMeta();
144
+ const { resource, resources, identifier } = useResource(
145
+ pickNotDeprecated(resourceFromProps, resourceName),
146
+ );
147
+ const getFriendlyName = useUserFriendlyName();
148
148
 
149
- const filename = `${getFriendlyName(
150
- identifier,
151
- "plural",
152
- )}-${new Date().toLocaleString()}`;
149
+ const filename = `${getFriendlyName(
150
+ identifier,
151
+ "plural",
152
+ )}-${new Date().toLocaleString()}`;
153
153
 
154
- const { getList } = dataProvider(
155
- pickDataProvider(identifier, dataProviderName, resources),
156
- );
154
+ const { getList } = dataProvider(
155
+ pickDataProvider(identifier, dataProviderName, resources),
156
+ );
157
157
 
158
- const combinedMeta = getMeta({
159
- resource,
160
- meta: pickNotDeprecated(meta, metaData),
161
- });
158
+ const combinedMeta = getMeta({
159
+ resource,
160
+ meta: pickNotDeprecated(meta, metaData),
161
+ });
162
162
 
163
- const triggerExport = async () => {
164
- setIsLoading(true);
163
+ const triggerExport = async () => {
164
+ setIsLoading(true);
165
165
 
166
- let rawData: BaseRecord[] = [];
166
+ let rawData: BaseRecord[] = [];
167
167
 
168
- let current = 1;
169
- let preparingData = true;
170
- while (preparingData) {
171
- try {
172
- const { data, total } = await getList<TData>({
173
- resource: resource?.name ?? "",
174
- filters,
175
- sort: pickNotDeprecated(sorters, sorter),
176
- sorters: pickNotDeprecated(sorters, sorter),
177
- pagination: {
178
- current,
179
- pageSize,
180
- mode: "server",
181
- },
182
- meta: combinedMeta,
183
- metaData: combinedMeta,
184
- });
168
+ let current = 1;
169
+ let preparingData = true;
170
+ while (preparingData) {
171
+ try {
172
+ const { data, total } = await getList<TData>({
173
+ resource: resource?.name ?? "",
174
+ filters,
175
+ sort: pickNotDeprecated(sorters, sorter),
176
+ sorters: pickNotDeprecated(sorters, sorter),
177
+ pagination: {
178
+ current,
179
+ pageSize,
180
+ mode: "server",
181
+ },
182
+ meta: combinedMeta,
183
+ metaData: combinedMeta,
184
+ });
185
185
 
186
- current++;
186
+ current++;
187
187
 
188
- rawData.push(...data);
188
+ rawData.push(...data);
189
189
 
190
- if (maxItemCount && rawData.length >= maxItemCount) {
191
- rawData = rawData.slice(0, maxItemCount);
192
- preparingData = false;
193
- }
190
+ if (maxItemCount && rawData.length >= maxItemCount) {
191
+ rawData = rawData.slice(0, maxItemCount);
192
+ preparingData = false;
193
+ }
194
194
 
195
- if (total === rawData.length) {
196
- preparingData = false;
197
- }
198
- } catch (error) {
199
- setIsLoading(false);
200
- preparingData = false;
195
+ if (total === rawData.length) {
196
+ preparingData = false;
197
+ }
198
+ } catch (error) {
199
+ setIsLoading(false);
200
+ preparingData = false;
201
201
 
202
- onError?.(error);
202
+ onError?.(error);
203
203
 
204
- return;
205
- }
206
- }
204
+ return;
205
+ }
206
+ }
207
207
 
208
- const hasUnparseConfig = typeof unparseConfig !== "undefined" && unparseConfig !== null;
208
+ const hasUnparseConfig =
209
+ typeof unparseConfig !== "undefined" && unparseConfig !== null;
209
210
 
210
- warnOnce(hasUnparseConfig && typeof exportOptions !== "undefined" && exportOptions !== null,
211
- `[useExport]: resource: "${identifier}" \n\n` +
212
- `Both \`unparseConfig\` and \`exportOptions\` are set, \`unparseConfig\` will take precedence`,
213
- )
211
+ warnOnce(
212
+ hasUnparseConfig &&
213
+ typeof exportOptions !== "undefined" &&
214
+ exportOptions !== null,
215
+ `[useExport]: resource: "${identifier}" \n\nBoth \`unparseConfig\` and \`exportOptions\` are set, \`unparseConfig\` will take precedence`,
216
+ );
214
217
 
215
- const options: ExportOptions = {
216
- filename,
217
- useKeysAsHeaders: true,
218
- useBom: true, // original default
219
- title: 'My Generated Report', // original default
220
- quoteStrings: '"', // original default
221
- ...exportOptions
222
- }
218
+ const options: ExportOptions = {
219
+ filename,
220
+ useKeysAsHeaders: true,
221
+ useBom: true, // original default
222
+ title: "My Generated Report", // original default
223
+ quoteStrings: '"', // original default
224
+ ...exportOptions,
225
+ };
223
226
 
224
- warnOnce(exportOptions?.decimalSeparator !== undefined,
225
- `[useExport]: resource: "${identifier}" \n\n` +
226
- `Use of \`decimalSeparator\` no longer supported, please use \`mapData\` instead.\n\n` +
227
- `See https://refine.dev/docs/api-reference/core/hooks/import-export/useExport/`,
228
- )
227
+ warnOnce(
228
+ exportOptions?.decimalSeparator !== undefined,
229
+ `[useExport]: resource: "${identifier}" \n\nUse of \`decimalSeparator\` no longer supported, please use \`mapData\` instead.\n\nSee https://refine.dev/docs/api-reference/core/hooks/import-export/useExport/`,
230
+ );
229
231
 
230
- if(!hasUnparseConfig) {
231
- unparseConfig = {
232
- // useKeysAsHeaders takes priority over options.headers
233
- columns: options.useKeysAsHeaders ? undefined : options.headers,
234
- delimiter: options.fieldSeparator,
235
- header: options.showLabels || options.useKeysAsHeaders,
236
- quoteChar: options.quoteStrings,
237
- quotes: true
238
- }
239
- } else {
240
- unparseConfig = {
241
- // Set to force quote for better compatibility
242
- quotes: true,
243
- ...unparseConfig
244
- }
245
- }
232
+ if (!hasUnparseConfig) {
233
+ unparseConfig = {
234
+ // useKeysAsHeaders takes priority over options.headers
235
+ columns: options.useKeysAsHeaders ? undefined : options.headers,
236
+ delimiter: options.fieldSeparator,
237
+ header: options.showLabels || options.useKeysAsHeaders,
238
+ quoteChar: options.quoteStrings,
239
+ quotes: true,
240
+ };
241
+ } else {
242
+ unparseConfig = {
243
+ // Set to force quote for better compatibility
244
+ quotes: true,
245
+ ...unparseConfig,
246
+ };
247
+ }
246
248
 
247
- let csv = unparse(rawData.map(mapData as any), unparseConfig);
248
- if (options.showTitle) {
249
- csv = options.title + '\r\n\n' + csv
250
- }
249
+ let csv = unparse(rawData.map(mapData as any), unparseConfig);
250
+ if (options.showTitle) {
251
+ csv = `${options.title}\r\n\n${csv}`;
252
+ }
251
253
 
252
- // Backward compatibility support for downloadInBrowser of the exported file, only works for browsers.
253
- if(typeof window !== "undefined" && csv.length > 0 && (download ?? true)){
254
- const fileExtension = options.useTextFile ? '.txt' : '.csv';
255
- const fileType = `text/${options.useTextFile ? "plain" : "csv"};charset=utf8;`;
256
- const downloadFilename =
257
- `${(options.filename ?? 'download').replace(/ /g, "_")}${fileExtension}`
254
+ // Backward compatibility support for downloadInBrowser of the exported file, only works for browsers.
255
+ if (typeof window !== "undefined" && csv.length > 0 && (download ?? true)) {
256
+ const fileExtension = options.useTextFile ? ".txt" : ".csv";
257
+ const fileType = `text/${
258
+ options.useTextFile ? "plain" : "csv"
259
+ };charset=utf8;`;
260
+ const downloadFilename = `${(options.filename ?? "download").replace(
261
+ / /g,
262
+ "_",
263
+ )}${fileExtension}`;
258
264
 
259
- downloadInBrowser(
260
- downloadFilename,
261
- `${options?.useBom ? "\ufeff" : ""}${csv}`,
262
- fileType
263
- );
264
- }
265
+ downloadInBrowser(
266
+ downloadFilename,
267
+ `${options?.useBom ? "\ufeff" : ""}${csv}`,
268
+ fileType,
269
+ );
270
+ }
265
271
 
266
- setIsLoading(false);
267
- return csv;
268
- };
272
+ setIsLoading(false);
273
+ return csv;
274
+ };
269
275
 
270
- return {
271
- isLoading,
272
- triggerExport,
273
- };
276
+ return {
277
+ isLoading,
278
+ triggerExport,
279
+ };
274
280
  };