@firecms/core 3.0.0-canary.26 → 3.0.0-canary.260

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 (405) hide show
  1. package/README.md +3 -3
  2. package/dist/app/AppBar.d.ts +12 -0
  3. package/dist/app/Drawer.d.ts +16 -0
  4. package/dist/app/Scaffold.d.ts +34 -0
  5. package/dist/app/index.d.ts +4 -0
  6. package/dist/app/useApp.d.ts +16 -0
  7. package/dist/components/ArrayContainer.d.ts +31 -12
  8. package/dist/components/CircularProgressCenter.d.ts +1 -1
  9. package/dist/components/ClearFilterSortButton.d.ts +5 -0
  10. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  11. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +14 -13
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
  14. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
  15. package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
  16. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
  17. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  18. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
  19. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
  20. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
  21. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +20 -2
  22. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  23. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  24. package/dist/components/EntityJsonPreview.d.ts +3 -0
  25. package/dist/components/EntityPreview.d.ts +8 -5
  26. package/dist/components/ErrorView.d.ts +1 -1
  27. package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
  28. package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
  29. package/dist/components/HomePage/NavigationCard.d.ts +3 -1
  30. package/dist/components/HomePage/NavigationCardBinding.d.ts +4 -3
  31. package/dist/components/HomePage/NavigationGroup.d.ts +7 -1
  32. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  33. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  34. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  35. package/dist/components/ReferenceWidget.d.ts +3 -1
  36. package/dist/components/SelectableTable/SelectableTable.d.ts +14 -4
  37. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  38. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  39. package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -12
  40. package/dist/components/VirtualTable/types.d.ts +3 -3
  41. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
  42. package/dist/components/common/index.d.ts +2 -1
  43. package/dist/components/common/table_height.d.ts +5 -0
  44. package/dist/components/common/types.d.ts +4 -6
  45. package/dist/components/common/useColumnsIds.d.ts +3 -1
  46. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
  47. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  48. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  49. package/dist/components/index.d.ts +5 -2
  50. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  51. package/dist/core/DefaultAppBar.d.ts +29 -0
  52. package/dist/core/DefaultDrawer.d.ts +19 -0
  53. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  54. package/dist/core/EntityEditView.d.ts +43 -11
  55. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  56. package/dist/core/FireCMS.d.ts +3 -3
  57. package/dist/core/FireCMSRouter.d.ts +4 -0
  58. package/dist/core/NavigationRoutes.d.ts +2 -3
  59. package/dist/core/SideDialogs.d.ts +4 -2
  60. package/dist/core/field_configs.d.ts +1 -1
  61. package/dist/core/index.d.ts +4 -4
  62. package/dist/form/EntityForm.d.ts +37 -64
  63. package/dist/form/EntityFormActions.d.ts +21 -0
  64. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  65. package/dist/form/components/ErrorFocus.d.ts +1 -1
  66. package/dist/form/components/FieldHelperText.d.ts +3 -3
  67. package/dist/form/components/FormEntry.d.ts +6 -0
  68. package/dist/form/components/FormLayout.d.ts +5 -0
  69. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  70. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  71. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  72. package/dist/form/components/index.d.ts +3 -1
  73. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  74. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  75. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  76. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  77. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  78. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  79. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  80. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  81. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  82. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  83. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  84. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  85. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -13
  86. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  87. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  88. package/dist/form/index.d.ts +17 -18
  89. package/dist/form/useClearRestoreValue.d.ts +2 -2
  90. package/dist/hooks/data/delete.d.ts +4 -4
  91. package/dist/hooks/data/save.d.ts +4 -5
  92. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  93. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  94. package/dist/hooks/index.d.ts +1 -0
  95. package/dist/hooks/useAuthController.d.ts +1 -1
  96. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  97. package/dist/hooks/useBuildNavigationController.d.ts +57 -13
  98. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  99. package/dist/hooks/useModeController.d.ts +1 -2
  100. package/dist/hooks/useProjectLog.d.ts +8 -2
  101. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  102. package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.es.js +23088 -13940
  105. package/dist/index.es.js.map +1 -1
  106. package/dist/index.umd.js +25823 -588
  107. package/dist/index.umd.js.map +1 -1
  108. package/dist/internal/useBuildDataSource.d.ts +3 -17
  109. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  110. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  111. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  112. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  113. package/dist/preview/components/ReferencePreview.d.ts +3 -2
  114. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  115. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  116. package/dist/preview/util.d.ts +3 -3
  117. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  118. package/dist/routes/FireCMSRoute.d.ts +1 -0
  119. package/dist/routes/HomePageRoute.d.ts +3 -0
  120. package/dist/types/analytics.d.ts +1 -1
  121. package/dist/types/auth.d.ts +8 -10
  122. package/dist/types/collections.d.ts +110 -25
  123. package/dist/types/customization_controller.d.ts +8 -0
  124. package/dist/types/datasource.d.ts +52 -36
  125. package/dist/types/dialogs_controller.d.ts +7 -3
  126. package/dist/types/entities.d.ts +7 -2
  127. package/dist/types/entity_actions.d.ts +72 -8
  128. package/dist/types/entity_callbacks.d.ts +16 -16
  129. package/dist/types/entity_overrides.d.ts +2 -2
  130. package/dist/types/export_import.d.ts +4 -4
  131. package/dist/types/fields.d.ts +74 -42
  132. package/dist/types/firecms.d.ts +16 -3
  133. package/dist/types/firecms_context.d.ts +1 -1
  134. package/dist/types/index.d.ts +0 -1
  135. package/dist/types/navigation.d.ts +62 -19
  136. package/dist/types/permissions.d.ts +4 -4
  137. package/dist/types/plugins.d.ts +56 -13
  138. package/dist/types/properties.d.ts +80 -24
  139. package/dist/types/property_config.d.ts +1 -3
  140. package/dist/types/roles.d.ts +3 -0
  141. package/dist/types/side_dialogs_controller.d.ts +10 -0
  142. package/dist/types/side_entity_controller.d.ts +14 -1
  143. package/dist/types/storage.d.ts +75 -0
  144. package/dist/types/user.d.ts +1 -0
  145. package/dist/util/builders.d.ts +3 -3
  146. package/dist/util/callbacks.d.ts +2 -0
  147. package/dist/util/createFormexStub.d.ts +2 -0
  148. package/dist/util/entities.d.ts +3 -3
  149. package/dist/util/entity_actions.d.ts +2 -0
  150. package/dist/util/entity_cache.d.ts +23 -0
  151. package/dist/util/icon_list.d.ts +5 -1
  152. package/dist/util/icon_synonyms.d.ts +1 -98
  153. package/dist/util/icons.d.ts +7 -4
  154. package/dist/util/index.d.ts +3 -0
  155. package/dist/util/navigation_from_path.d.ts +10 -1
  156. package/dist/util/navigation_utils.d.ts +15 -3
  157. package/dist/util/objects.d.ts +2 -1
  158. package/dist/util/permissions.d.ts +4 -4
  159. package/dist/util/plurals.d.ts +0 -2
  160. package/dist/util/property_utils.d.ts +4 -4
  161. package/dist/util/references.d.ts +2 -2
  162. package/dist/util/resolutions.d.ts +42 -17
  163. package/dist/util/storage.d.ts +23 -2
  164. package/dist/util/useStorageUploadController.d.ts +3 -3
  165. package/package.json +64 -48
  166. package/src/app/AppBar.tsx +18 -0
  167. package/src/app/Drawer.tsx +24 -0
  168. package/src/app/Scaffold.tsx +253 -0
  169. package/src/app/index.ts +4 -0
  170. package/src/app/useApp.tsx +32 -0
  171. package/src/components/ArrayContainer.tsx +447 -229
  172. package/src/components/CircularProgressCenter.tsx +2 -2
  173. package/src/components/ClearFilterSortButton.tsx +41 -0
  174. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  175. package/src/components/DeleteEntityDialog.tsx +13 -20
  176. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +65 -40
  177. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
  178. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
  179. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +72 -42
  180. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  181. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
  182. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  183. package/src/components/EntityCollectionTable/index.tsx +1 -1
  184. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +34 -39
  185. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
  186. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  187. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
  188. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  189. package/src/components/EntityCollectionView/EntityCollectionView.tsx +235 -118
  190. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  191. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  192. package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
  193. package/src/components/EntityCollectionView/utils.ts +19 -0
  194. package/src/components/EntityJsonPreview.tsx +66 -0
  195. package/src/components/EntityPreview.tsx +80 -59
  196. package/src/components/EntityView.tsx +13 -10
  197. package/src/components/ErrorView.tsx +4 -4
  198. package/src/components/FireCMSLogo.tsx +7 -51
  199. package/src/components/HomePage/DefaultHomePage.tsx +499 -157
  200. package/src/components/HomePage/FavouritesView.tsx +9 -14
  201. package/src/components/HomePage/HomePageDnD.tsx +599 -0
  202. package/src/components/HomePage/NavigationCard.tsx +48 -39
  203. package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
  204. package/src/components/HomePage/NavigationGroup.tsx +63 -29
  205. package/src/components/HomePage/RenameGroupDialog.tsx +117 -0
  206. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  207. package/src/components/NotFoundPage.tsx +2 -2
  208. package/src/components/PropertyConfigBadge.tsx +9 -3
  209. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  210. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +21 -13
  211. package/src/components/ReferenceWidget.tsx +21 -11
  212. package/src/components/SearchIconsView.tsx +10 -7
  213. package/src/components/SelectableTable/SelectableTable.tsx +157 -145
  214. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  215. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
  216. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
  217. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
  218. package/src/components/UnsavedChangesDialog.tsx +46 -0
  219. package/src/components/VirtualTable/VirtualTable.tsx +105 -51
  220. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  221. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  222. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  223. package/src/components/VirtualTable/VirtualTableProps.tsx +28 -14
  224. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  225. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  226. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  227. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  228. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  229. package/src/components/VirtualTable/types.tsx +2 -3
  230. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +64 -44
  231. package/src/components/common/index.ts +2 -1
  232. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  233. package/src/components/common/types.tsx +4 -6
  234. package/src/components/common/useColumnsIds.tsx +24 -3
  235. package/src/components/common/useDataSourceTableController.tsx +420 -0
  236. package/src/components/common/useDebouncedCallback.tsx +20 -0
  237. package/src/components/common/useScrollRestoration.tsx +68 -0
  238. package/src/components/common/useTableSearchHelper.ts +53 -12
  239. package/src/components/index.tsx +6 -2
  240. package/src/contexts/BreacrumbsContext.tsx +38 -0
  241. package/src/contexts/DialogsProvider.tsx +5 -4
  242. package/src/contexts/ModeController.tsx +1 -3
  243. package/src/contexts/SnackbarProvider.tsx +2 -0
  244. package/src/core/DefaultAppBar.tsx +219 -0
  245. package/src/core/DefaultDrawer.tsx +185 -0
  246. package/src/core/DrawerNavigationItem.tsx +66 -0
  247. package/src/core/EntityEditView.tsx +435 -470
  248. package/src/core/EntityEditViewFormActions.tsx +329 -0
  249. package/src/core/EntitySidePanel.tsx +88 -21
  250. package/src/core/FireCMS.tsx +74 -58
  251. package/src/core/FireCMSRouter.tsx +17 -0
  252. package/src/core/NavigationRoutes.tsx +28 -38
  253. package/src/core/SideDialogs.tsx +22 -12
  254. package/src/core/field_configs.tsx +26 -13
  255. package/src/core/index.tsx +6 -5
  256. package/src/form/EntityForm.tsx +620 -534
  257. package/src/form/EntityFormActions.tsx +211 -0
  258. package/src/form/PropertyFieldBinding.tsx +88 -45
  259. package/src/form/components/CustomIdField.tsx +9 -3
  260. package/src/form/components/FieldHelperText.tsx +4 -4
  261. package/src/form/components/FormEntry.tsx +22 -0
  262. package/src/form/components/FormLayout.tsx +16 -0
  263. package/src/form/components/LabelWithIcon.tsx +30 -19
  264. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  265. package/src/form/components/StorageItemPreview.tsx +23 -13
  266. package/src/form/components/StorageUploadProgress.tsx +5 -6
  267. package/src/form/components/index.tsx +3 -1
  268. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
  269. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +50 -36
  270. package/src/form/field_bindings/BlockFieldBinding.tsx +56 -34
  271. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  272. package/src/form/field_bindings/KeyValueFieldBinding.tsx +61 -52
  273. package/src/form/field_bindings/MapFieldBinding.tsx +73 -55
  274. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  275. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  276. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  277. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  278. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  279. package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
  280. package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
  281. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +257 -199
  282. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  283. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  284. package/src/form/index.tsx +17 -37
  285. package/src/form/useClearRestoreValue.tsx +2 -2
  286. package/src/form/validation.ts +13 -23
  287. package/src/hooks/data/delete.ts +6 -5
  288. package/src/hooks/data/save.ts +26 -33
  289. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  290. package/src/hooks/data/useDataSource.tsx +11 -3
  291. package/src/hooks/data/useEntityFetch.tsx +10 -6
  292. package/src/hooks/index.tsx +1 -0
  293. package/src/hooks/useAuthController.tsx +1 -1
  294. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  295. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  296. package/src/hooks/useBuildModeController.tsx +22 -29
  297. package/src/hooks/useBuildNavigationController.tsx +440 -119
  298. package/src/hooks/useFireCMSContext.tsx +3 -33
  299. package/src/hooks/useLargeLayout.tsx +0 -35
  300. package/src/hooks/useModeController.tsx +1 -2
  301. package/src/hooks/useProjectLog.tsx +32 -10
  302. package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
  303. package/src/hooks/useValidateAuthenticator.tsx +17 -37
  304. package/src/index.ts +1 -0
  305. package/src/internal/useBuildDataSource.ts +79 -85
  306. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  307. package/src/internal/useBuildSideEntityController.tsx +204 -77
  308. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  309. package/src/preview/PropertyPreview.tsx +34 -25
  310. package/src/preview/PropertyPreviewProps.tsx +7 -1
  311. package/src/preview/components/BooleanPreview.tsx +2 -2
  312. package/src/preview/components/EmptyValue.tsx +1 -1
  313. package/src/preview/components/EnumValuesChip.tsx +2 -2
  314. package/src/preview/components/ImagePreview.tsx +26 -37
  315. package/src/preview/components/ReferencePreview.tsx +23 -34
  316. package/src/preview/components/StorageThumbnail.tsx +5 -1
  317. package/src/preview/components/UrlComponentPreview.tsx +60 -28
  318. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -6
  319. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +7 -5
  320. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -4
  321. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -4
  322. package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -6
  323. package/src/preview/property_previews/ArrayPropertyPreview.tsx +7 -6
  324. package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
  325. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  326. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  327. package/src/preview/util.ts +10 -10
  328. package/src/routes/CustomCMSRoute.tsx +21 -0
  329. package/src/routes/FireCMSRoute.tsx +246 -0
  330. package/src/routes/HomePageRoute.tsx +17 -0
  331. package/src/types/analytics.ts +3 -0
  332. package/src/types/auth.tsx +9 -13
  333. package/src/types/collections.ts +132 -30
  334. package/src/types/customization_controller.tsx +9 -1
  335. package/src/types/datasource.ts +61 -43
  336. package/src/types/dialogs_controller.tsx +7 -3
  337. package/src/types/entities.ts +12 -2
  338. package/src/types/entity_actions.tsx +86 -10
  339. package/src/types/entity_callbacks.ts +18 -18
  340. package/src/types/entity_overrides.tsx +2 -2
  341. package/src/types/export_import.ts +4 -4
  342. package/src/types/fields.tsx +85 -46
  343. package/src/types/firecms.tsx +18 -4
  344. package/src/types/firecms_context.tsx +1 -1
  345. package/src/types/index.ts +0 -1
  346. package/src/types/navigation.ts +77 -24
  347. package/src/types/permissions.ts +5 -5
  348. package/src/types/plugins.tsx +66 -15
  349. package/src/types/properties.ts +95 -26
  350. package/src/types/property_config.tsx +1 -2
  351. package/src/types/roles.ts +3 -0
  352. package/src/types/side_dialogs_controller.tsx +15 -0
  353. package/src/types/side_entity_controller.tsx +16 -1
  354. package/src/types/storage.ts +83 -1
  355. package/src/types/user.ts +2 -0
  356. package/src/util/builders.ts +10 -8
  357. package/src/util/callbacks.ts +119 -0
  358. package/src/util/createFormexStub.tsx +62 -0
  359. package/src/util/entities.ts +9 -6
  360. package/src/util/entity_actions.ts +28 -0
  361. package/src/util/entity_cache.ts +204 -0
  362. package/src/util/enums.ts +1 -1
  363. package/src/util/icon_list.ts +16 -10
  364. package/src/util/icon_synonyms.ts +3 -100
  365. package/src/util/icons.tsx +36 -11
  366. package/src/util/index.ts +3 -0
  367. package/src/util/join_collections.ts +9 -2
  368. package/src/util/make_properties_editable.ts +13 -5
  369. package/src/util/navigation_from_path.ts +33 -12
  370. package/src/util/navigation_utils.ts +141 -25
  371. package/src/util/objects.ts +90 -33
  372. package/src/util/parent_references_from_path.ts +3 -3
  373. package/src/util/permissions.ts +9 -8
  374. package/src/util/plurals.ts +0 -2
  375. package/src/util/property_utils.tsx +17 -6
  376. package/src/util/references.ts +19 -8
  377. package/src/util/resolutions.ts +122 -48
  378. package/src/util/storage.ts +79 -21
  379. package/src/util/strings.ts +2 -2
  380. package/src/util/useStorageUploadController.tsx +91 -28
  381. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  382. package/dist/components/FireCMSAppBar.d.ts +0 -26
  383. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  384. package/dist/components/VirtualTable/common.d.ts +0 -2
  385. package/dist/core/Drawer.d.ts +0 -23
  386. package/dist/core/Scaffold.d.ts +0 -55
  387. package/dist/core/SideEntityView.d.ts +0 -7
  388. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  389. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  390. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  391. package/dist/internal/useLocaleConfig.d.ts +0 -1
  392. package/dist/types/appcheck.d.ts +0 -26
  393. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  394. package/src/components/FireCMSAppBar.tsx +0 -165
  395. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  396. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
  397. package/src/core/Drawer.tsx +0 -191
  398. package/src/core/Scaffold.tsx +0 -281
  399. package/src/core/SideEntityView.tsx +0 -38
  400. package/src/form/components/FormikArrayContainer.tsx +0 -44
  401. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  402. package/src/internal/useBuildCustomizationController.tsx +0 -5
  403. package/src/internal/useLocaleConfig.tsx +0 -18
  404. package/src/types/appcheck.ts +0 -29
  405. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -1,6 +1,7 @@
1
- import { Entity, EntityReference, EntityStatus, EntityValues, GeoPoint } from "./entities";
1
+ import { Entity, EntityStatus, EntityValues } from "./entities";
2
2
  import { EntityCollection, FilterValues } from "./collections";
3
3
  import { ResolvedEntityCollection } from "./resolved_entities";
4
+ import { FireCMSContext } from "./firecms_context";
4
5
 
5
6
  /**
6
7
  * @group Datasource
@@ -8,6 +9,7 @@ import { ResolvedEntityCollection } from "./resolved_entities";
8
9
  export interface FetchEntityProps<M extends Record<string, any> = any> {
9
10
  path: string;
10
11
  entityId: string;
12
+ databaseId?: string;
11
13
  collection?: EntityCollection<M, any>
12
14
  }
13
15
 
@@ -62,12 +64,12 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
62
64
  */
63
65
  export interface DeleteEntityProps<M extends Record<string, any> = any> {
64
66
  entity: Entity<M>;
67
+ collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
65
68
  }
66
69
 
67
70
  /**
68
- * Implement this interface and pass it to a {@link FireCMS}
69
- * to connect it to your data source.
70
- * A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
71
+ * Component in charge of communicating with the data source.
72
+ * Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
71
73
  * @group Datasource
72
74
  */
73
75
  export interface DataSource {
@@ -137,6 +139,7 @@ export interface DataSource {
137
139
  fetchEntity<M extends Record<string, any> = any>({
138
140
  path,
139
141
  entityId,
142
+ databaseId,
140
143
  collection
141
144
  }: FetchEntityProps<M>
142
145
  ): Promise<Entity<M> | undefined>;
@@ -181,7 +184,8 @@ export interface DataSource {
181
184
  */
182
185
  deleteEntity<M extends Record<string, any> = any>(
183
186
  {
184
- entity
187
+ entity,
188
+ collection
185
189
  }: DeleteEntityProps<M>
186
190
  ): Promise<void>;
187
191
 
@@ -190,7 +194,7 @@ export interface DataSource {
190
194
  * @param path Collection path
191
195
  * @param name of the property
192
196
  * @param value
193
- * @param property
197
+ * @param collection
194
198
  * @param entityId
195
199
  * @return `true` if there are no other fields besides the given entity
196
200
  */
@@ -198,13 +202,14 @@ export interface DataSource {
198
202
  path: string,
199
203
  name: string,
200
204
  value: any,
201
- entityId?: string
205
+ entityId?: string,
206
+ collection?: EntityCollection
202
207
  ): Promise<boolean>;
203
208
 
204
209
  /**
205
210
  * Generate an id for a new entity
206
211
  */
207
- generateEntityId(path: string): string;
212
+ generateEntityId(path: string, collection: EntityCollection): string;
208
213
 
209
214
  /**
210
215
  * Count the number of entities in a collection
@@ -216,6 +221,19 @@ export interface DataSource {
216
221
  * @param props
217
222
  */
218
223
  isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
224
+
225
+ /**
226
+ * Called when the user clicks on the search bar in a collection view.
227
+ * Useful for initializing a text search index.
228
+ * @param props
229
+ */
230
+ initTextSearch?: (props: {
231
+ context: FireCMSContext,
232
+ path: string,
233
+ collection: EntityCollection,
234
+ parentCollectionIds?: string[]
235
+ }) => Promise<boolean>;
236
+
219
237
  }
220
238
 
221
239
  export type FilterCombinationValidProps = {
@@ -225,21 +243,24 @@ export type FilterCombinationValidProps = {
225
243
  sortBy?: [string, "asc" | "desc"];
226
244
  };
227
245
 
228
- export type SaveEntityDelegateProps<M extends Record<string, any> = any> = Omit<SaveEntityProps<M>, "collection">;
246
+ export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
229
247
 
230
- export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
231
- Omit<FetchCollectionProps<M>, "collection">
232
- & {
233
- isCollectionGroup?: boolean
234
- };
248
+ export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
235
249
 
236
- export type ListenCollectionDelegateProps<M extends Record<string, any> = any> =
237
- ListenCollectionProps<M>
238
- & {
239
- isCollectionGroup?: boolean;
240
- };
250
+ export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
241
251
 
242
252
  export interface DataSourceDelegate {
253
+
254
+ /**
255
+ * Key that identifies this data source delegate
256
+ */
257
+ key: string;
258
+
259
+ /**
260
+ * If the data source has been initialised
261
+ */
262
+ initialised?: boolean;
263
+
243
264
  /**
244
265
  * Fetch data from a collection
245
266
  * @param path
@@ -297,7 +318,7 @@ export interface DataSourceDelegate {
297
318
  fetchEntity<M extends Record<string, any> = any>({
298
319
  path,
299
320
  entityId,
300
- }: Omit<FetchEntityProps<M>, "collection">): Promise<Entity<M> | undefined>;
321
+ }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
301
322
 
302
323
  /**
303
324
  * Get realtime updates on one entity.
@@ -313,13 +334,13 @@ export interface DataSourceDelegate {
313
334
  entityId,
314
335
  onUpdate,
315
336
  onError
316
- }: Omit<ListenEntityProps<M>, "collection">): () => void;
337
+ }: ListenEntityProps<M>): () => void;
317
338
 
318
339
  /**
319
340
  * Save entity to the specified path
320
341
  * @param path
321
- * @param id
322
- * @param collection
342
+ * @param entityId
343
+ * @param values
323
344
  * @param status
324
345
  */
325
346
  saveEntity<M extends Record<string, any> = any>({
@@ -342,14 +363,15 @@ export interface DataSourceDelegate {
342
363
  * @param name of the property
343
364
  * @param value
344
365
  * @param entityId
366
+ * @param collection
345
367
  * @return `true` if there are no other fields besides the given entity
346
368
  */
347
- checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
369
+ checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
348
370
 
349
371
  /**
350
372
  * Generate an id for a new entity
351
373
  */
352
- generateEntityId(path: string): string;
374
+ generateEntityId(path: string, collection?: EntityCollection): string;
353
375
 
354
376
  /**
355
377
  * Count the number of entities in a collection
@@ -360,30 +382,26 @@ export interface DataSourceDelegate {
360
382
  * Check if the given filter combination is valid
361
383
  * @param props
362
384
  */
363
- isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">): boolean;
364
-
365
- /**
366
- * Convert a FireCMS reference to a reference that can be used by the datasource
367
- * @param reference
368
- */
369
- buildReference: (reference: EntityReference) => any,
370
-
371
- /**
372
- * Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
373
- * @param geoPoint
374
- */
375
- buildGeoPoint: (geoPoint: GeoPoint) => any,
385
+ isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
386
+ databaseId?: string
387
+ }): boolean;
376
388
 
377
389
  /**
378
390
  * Get the object to generate the current time in the datasource
379
391
  */
380
- currentTime(): any;
381
-
382
- buildDate: (date: Date) => any;
383
-
384
- buildDeleteFieldValue: () => any;
392
+ currentTime?: () => any;
385
393
 
386
394
  delegateToCMSModel: (data: any) => any;
387
395
 
396
+ cmsToDelegateModel: (data: any) => any;
397
+
388
398
  setDateToMidnight: (input?: any) => any;
399
+
400
+ initTextSearch?: (props: {
401
+ context: FireCMSContext,
402
+ path: string,
403
+ databaseId?: string,
404
+ collection: EntityCollection,
405
+ parentCollectionIds?: string[]
406
+ }) => Promise<boolean>;
389
407
  }
@@ -15,19 +15,23 @@ export interface DialogsController {
15
15
  * Open a dialog
16
16
  * @param props
17
17
  */
18
- open: (props: DialogControllerEntryProps) => { closeDialog: () => void };
18
+ open: <T extends object = object>(props: DialogControllerEntryProps<T>) => { closeDialog: () => void };
19
19
  }
20
20
 
21
21
  /**
22
22
  * Props used to open a side dialog
23
23
  * @group Hooks and utilities
24
24
  */
25
- export interface DialogControllerEntryProps {
25
+ export interface DialogControllerEntryProps<T extends object = object> {
26
26
 
27
27
  key: string;
28
28
  /**
29
29
  * The component type that will be rendered
30
30
  */
31
- Component: React.ComponentType<{ open: boolean, closeDialog: () => void }>;
31
+ Component: React.ComponentType<{ open: boolean, closeDialog: () => void } & T>;
32
+ /**
33
+ * Props to pass to the dialog component
34
+ */
35
+ props?: T;
32
36
 
33
37
  }
@@ -8,7 +8,7 @@ export type EntityStatus = "new" | "existing" | "copy";
8
8
  * Representation of an entity fetched from the datasource
9
9
  * @group Models
10
10
  */
11
- export interface Entity<M extends object> {
11
+ export interface Entity<M extends object = any> {
12
12
 
13
13
  /**
14
14
  * ID of the entity
@@ -25,6 +25,8 @@ export interface Entity<M extends object> {
25
25
  * Current values
26
26
  */
27
27
  values: EntityValues<M>;
28
+
29
+ databaseId?: string;
28
30
  }
29
31
 
30
32
  /**
@@ -37,7 +39,7 @@ export type EntityValues<M extends object> = M;
37
39
  /**
38
40
  * Class used to create a reference to an entity in a different path
39
41
  */
40
- export class EntityReference<M extends Record<string, any> = any> {
42
+ export class EntityReference {
41
43
  /**
42
44
  * ID of the entity
43
45
  */
@@ -78,3 +80,11 @@ export class GeoPoint {
78
80
  this.longitude = longitude;
79
81
  }
80
82
  }
83
+
84
+ export class Vector {
85
+ readonly value: number[];
86
+
87
+ constructor(value: number[]) {
88
+ this.value = value;
89
+ }
90
+ }
@@ -4,12 +4,47 @@ import { Entity } from "./entities";
4
4
  import { EntityCollection, SelectionController } from "./collections";
5
5
  import { User } from "./user";
6
6
  import { SideEntityController } from "./side_entity_controller";
7
- import { EntityOverrides } from "./entity_overrides";
7
+ import { FormContext } from "./fields";
8
8
 
9
- export type EntityAction<M extends object = any, UserType extends User = User> = {
9
+ /**
10
+ * An entity action is a custom action that can be performed on an entity.
11
+ * They are displayed in the entity view and in the collection view.
12
+ */
13
+ export type EntityAction<M extends object = any, USER extends User = User> = {
14
+ /**
15
+ * Title of the action
16
+ */
10
17
  name: string;
18
+
19
+ /**
20
+ * Key of the action. You only need to provide this if you want to
21
+ * override the default actions, or if you are not passing the action
22
+ * directly to the `entityActions` prop of a collection.
23
+ * You can define your actions at the app level, in which case you
24
+ * must provide a key.
25
+ * The default actions are:
26
+ * - edit
27
+ * - delete
28
+ * - copy
29
+ */
30
+ key?: string;
31
+
32
+ /**
33
+ * Icon of the action
34
+ */
11
35
  icon?: React.ReactElement;
12
- onClick: (props: EntityActionClickProps<M, UserType>) => Promise<void> | void;
36
+
37
+ /**
38
+ * Callback when the action is clicked
39
+ * @param props
40
+ */
41
+ onClick: (props: EntityActionClickProps<M, USER>) => Promise<void> | void;
42
+
43
+ /**
44
+ * Optional callback in case you want to disable the action
45
+ * @param props
46
+ */
47
+ isEnabled?: (props: EntityActionClickProps<M, USER>) => boolean;
13
48
 
14
49
  /**
15
50
  * Show this action collapsed in the menu of the collection view.
@@ -25,19 +60,60 @@ export type EntityAction<M extends object = any, UserType extends User = User> =
25
60
 
26
61
  }
27
62
 
63
+ export type EntityActionClickProps<M extends object, USER extends User = User> = {
64
+ entity?: Entity<M>;
65
+ context: FireCMSContext<USER>;
28
66
 
29
-
30
- export type EntityActionClickProps<M extends object, UserType extends User = User> = {
31
- entity: Entity<M>;
32
- context: FireCMSContext<UserType>;
33
67
  fullPath?: string;
68
+ fullIdPath?: string;
34
69
  collection?: EntityCollection<M>;
70
+
71
+ /**
72
+ * Optional form context, present if the action is being called from a form.
73
+ * This allows you to access the form state and methods, including modifying the form values.
74
+ */
75
+ formContext?: FormContext;
76
+
77
+ /**
78
+ * Present if this actions is being called from a side dialog only
79
+ */
80
+ sideEntityController?: SideEntityController;
81
+
82
+ /**
83
+ * Is the action being called from the collection view or from the entity form view?
84
+ */
85
+ view: "collection" | "form";
86
+
87
+ /**
88
+ * If the action is rendered in the form, is it open in a side panel or full screen?
89
+ */
90
+ openEntityMode: "side_panel" | "full_screen";
91
+
92
+ /**
93
+ * Optional selection controller, present if the action is being called from a collection view
94
+ */
35
95
  selectionController?: SelectionController;
96
+
97
+ /**
98
+ * Optional highlight function to highlight the entity in the collection view
99
+ * @param entity
100
+ */
36
101
  highlightEntity?: (entity: Entity<any>) => void;
102
+
103
+ /**
104
+ * Optional unhighlight function to remove the highlight from the entity in the collection view
105
+ * @param entity
106
+ */
37
107
  unhighlightEntity?: (entity: Entity<any>) => void;
38
- onCollectionChange?: () => void;
108
+
39
109
  /**
40
- * If this actions is being called from a side dialog
110
+ * Optional function to navigate back (e.g. when deleting an entity or navigating from a form)
41
111
  */
42
- sideEntityController?: SideEntityController;
112
+ navigateBack?: () => void;
113
+
114
+ /**
115
+ * Callback to be called when the collection changes, e.g. after an entity is deleted or created.
116
+ */
117
+ onCollectionChange?: () => void;
118
+
43
119
  };
@@ -10,27 +10,27 @@ import { User } from "./user";
10
10
  * Useful for adding your own logic or blocking the execution of the operation.
11
11
  * @group Models
12
12
  */
13
- export type EntityCallbacks<M extends Record<string, any> = any, UserType extends User = User> = {
13
+ export type EntityCallbacks<M extends Record<string, any> = any, USER extends User = User> = {
14
14
 
15
15
  /**
16
16
  * Callback used after fetching data
17
17
  * @param entityFetchProps
18
18
  */
19
- onFetch?(entityFetchProps: EntityOnFetchProps<M, UserType>)
19
+ onFetch?(entityFetchProps: EntityOnFetchProps<M, USER>)
20
20
  : Promise<Entity<M>> | Entity<M>;
21
21
 
22
22
  /**
23
23
  * Callback used when save is successful
24
24
  * @param entitySaveProps
25
25
  */
26
- onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M, UserType>)
26
+ onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M, USER>)
27
27
  : Promise<void> | void;
28
28
 
29
29
  /**
30
30
  * Callback used when saving fails
31
31
  * @param entitySaveProps
32
32
  */
33
- onSaveFailure?(entitySaveProps: EntityOnSaveFailureProps<M, UserType>)
33
+ onSaveFailure?(entitySaveProps: EntityOnSaveFailureProps<M, USER>)
34
34
  : Promise<void> | void;
35
35
 
36
36
  /**
@@ -39,7 +39,7 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
39
39
  * error snackbar gets displayed.
40
40
  * @param entitySaveProps
41
41
  */
42
- onPreSave?(entitySaveProps: EntityOnPreSaveProps<M, UserType>)
42
+ onPreSave?(entitySaveProps: EntityOnPreSaveProps<M, USER>)
43
43
  : Promise<Partial<EntityValues<M>>> | Partial<EntityValues<M>>;
44
44
 
45
45
  /**
@@ -49,14 +49,14 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
49
49
  *
50
50
  * @param entityDeleteProps
51
51
  */
52
- onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M, UserType>): void;
52
+ onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M, USER>): void;
53
53
 
54
54
  /**
55
55
  * Callback used after the entity is deleted.
56
56
  *
57
57
  * @param entityDeleteProps
58
58
  */
59
- onDelete?(entityDeleteProps: EntityOnDeleteProps<M, UserType>): void;
59
+ onDelete?(entityDeleteProps: EntityOnDeleteProps<M, USER>): void;
60
60
 
61
61
  /**
62
62
  * Callback fired when any value in the form changes. You can use it
@@ -73,12 +73,12 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
73
73
  * Parameters passed to hooks when an entity is fetched
74
74
  * @group Models
75
75
  */
76
- export interface EntityOnFetchProps<M extends Record<string, any> = any, UserType extends User = User> {
76
+ export interface EntityOnFetchProps<M extends Record<string, any> = any, USER extends User = User> {
77
77
 
78
78
  /**
79
79
  * Collection of the entity
80
80
  */
81
- collection: EntityCollection<M, UserType>;
81
+ collection: EntityCollection<M, USER>;
82
82
 
83
83
  /**
84
84
  * Full path of the CMS where this collection is being fetched.
@@ -94,15 +94,15 @@ export interface EntityOnFetchProps<M extends Record<string, any> = any, UserTyp
94
94
  /**
95
95
  * Context of the app status
96
96
  */
97
- context: FireCMSContext<UserType>;
97
+ context: FireCMSContext<USER>;
98
98
  }
99
99
 
100
100
  /**
101
101
  * Parameters passed to hooks before an entity is saved
102
102
  * @group Models
103
103
  */
104
- export type EntityOnPreSaveProps<M extends Record<string, any> = any, UserType extends User = User> =
105
- Omit<EntityOnSaveProps<M, UserType>, "entityId">
104
+ export type EntityOnPreSaveProps<M extends Record<string, any> = any, USER extends User = User> =
105
+ Omit<EntityOnSaveProps<M, USER>, "entityId">
106
106
  & {
107
107
  entityId?: string;
108
108
  }
@@ -110,8 +110,8 @@ export type EntityOnPreSaveProps<M extends Record<string, any> = any, UserType e
110
110
  * Parameters passed to hooks before an entity is saved
111
111
  * @group Models
112
112
  */
113
- export type EntityOnSaveFailureProps<M extends Record<string, any> = any, UserType extends User = User> =
114
- Omit<EntityOnSaveProps<M, UserType>, "entityId">
113
+ export type EntityOnSaveFailureProps<M extends Record<string, any> = any, USER extends User = User> =
114
+ Omit<EntityOnSaveProps<M, USER>, "entityId">
115
115
  & {
116
116
  entityId?: string;
117
117
  }
@@ -120,7 +120,7 @@ export type EntityOnSaveFailureProps<M extends Record<string, any> = any, UserTy
120
120
  * Parameters passed to hooks when an entity is saved
121
121
  * @group Models
122
122
  */
123
- export interface EntityOnSaveProps<M extends Record<string, any> = any, UserType extends User = User> {
123
+ export interface EntityOnSaveProps<M extends Record<string, any> = any, USER extends User = User> {
124
124
 
125
125
  /**
126
126
  * Resolved collection of the entity
@@ -161,14 +161,14 @@ export interface EntityOnSaveProps<M extends Record<string, any> = any, UserType
161
161
  /**
162
162
  * Context of the app status
163
163
  */
164
- context: FireCMSContext<UserType>;
164
+ context: FireCMSContext<USER>;
165
165
  }
166
166
 
167
167
  /**
168
168
  * Parameters passed to hooks when an entity is deleted
169
169
  * @group Models
170
170
  */
171
- export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserType extends User = User> {
171
+ export interface EntityOnDeleteProps<M extends Record<string, any> = any, USER extends User = User> {
172
172
 
173
173
  /**
174
174
  * collection of the entity being deleted
@@ -193,7 +193,7 @@ export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserTy
193
193
  /**
194
194
  * Context of the app status
195
195
  */
196
- context: FireCMSContext<UserType>;
196
+ context: FireCMSContext<USER>;
197
197
  }
198
198
 
199
199
  /**
@@ -1,7 +1,7 @@
1
- import { DataSource } from "./datasource";
1
+ import { DataSource, DataSourceDelegate } from "./datasource";
2
2
  import { StorageSource } from "./storage";
3
3
 
4
4
  export type EntityOverrides = {
5
- dataSource?: DataSource;
5
+ dataSourceDelegate?: DataSourceDelegate;
6
6
  storageSource?: StorageSource;
7
7
  };
@@ -7,20 +7,20 @@ import { FireCMSContext } from "./firecms_context";
7
7
  * exports
8
8
  * @group Models
9
9
  */
10
- export interface ExportConfig<UserType extends User = User> {
11
- additionalFields: ExportMappingFunction<UserType> [];
10
+ export interface ExportConfig<USER extends User = User> {
11
+ additionalFields: ExportMappingFunction<USER> [];
12
12
  }
13
13
 
14
14
  /**
15
15
  * @group Models
16
16
  */
17
- export interface ExportMappingFunction<UserType extends User = User> {
17
+ export interface ExportMappingFunction<USER extends User = User> {
18
18
  key: string;
19
19
  builder: ({
20
20
  entity,
21
21
  context
22
22
  }: {
23
23
  entity: Entity<any>,
24
- context: FireCMSContext<UserType>
24
+ context: FireCMSContext<USER>
25
25
  }) => Promise<string> | string;
26
26
  }