@firecms/core 3.0.0-alpha.8 → 3.0.0-alpha.80

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 (470) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ArrayContainer.d.ts +42 -0
  3. package/dist/components/CircularProgressCenter.d.ts +11 -0
  4. package/dist/components/DeleteConfirmationDialog.d.ts +9 -0
  5. package/dist/components/DeleteEntityDialog.d.ts +12 -0
  6. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +35 -0
  7. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
  8. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
  9. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +18 -0
  10. package/dist/components/EntityCollectionTable/SimpleEntityCollectionTable.d.ts +95 -0
  11. package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
  12. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
  13. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
  14. package/dist/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
  15. package/dist/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
  16. package/dist/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
  17. package/dist/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
  18. package/dist/components/EntityCollectionTable/index.d.ts +8 -0
  19. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
  20. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
  21. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  22. package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
  23. package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
  24. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
  25. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
  26. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  27. package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  28. package/dist/components/EntityCollectionTable/types.d.ts +53 -0
  29. package/dist/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.d.ts +32 -0
  30. package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
  31. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
  32. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
  33. package/dist/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
  34. package/dist/components/EntityPreview.d.ts +11 -0
  35. package/dist/components/ErrorBoundary.d.ts +11 -0
  36. package/dist/components/ErrorTooltip.d.ts +2 -0
  37. package/dist/components/ErrorView.d.ts +19 -0
  38. package/dist/components/FieldConfigBadge.d.ts +4 -0
  39. package/dist/components/FireCMSAppBar.d.ts +26 -0
  40. package/dist/components/FireCMSLogo.d.ts +7 -0
  41. package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
  42. package/dist/components/HomePage/FavouritesView.d.ts +3 -0
  43. package/dist/components/HomePage/NavigationCollectionCard.d.ts +17 -0
  44. package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
  45. package/dist/components/HomePage/index.d.ts +3 -0
  46. package/dist/components/LabelWithIcon.d.ts +14 -0
  47. package/dist/components/NotFoundPage.d.ts +1 -0
  48. package/dist/components/ReferenceSelectionInner.d.ts +58 -0
  49. package/dist/components/ReferenceWidget.d.ts +28 -0
  50. package/dist/components/SearchIconsView.d.ts +5 -0
  51. package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
  52. package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
  53. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
  54. package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  55. package/dist/components/VirtualTable/VirtualTableProps.d.ts +214 -0
  56. package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  57. package/dist/components/VirtualTable/common.d.ts +2 -0
  58. package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
  59. package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
  60. package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
  61. package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
  62. package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
  63. package/dist/components/VirtualTable/index.d.ts +2 -0
  64. package/dist/components/VirtualTable/types.d.ts +34 -0
  65. package/dist/components/index.d.ts +21 -0
  66. package/dist/contexts/AuthControllerContext.d.ts +3 -0
  67. package/dist/contexts/DataSourceContext.d.ts +3 -0
  68. package/dist/contexts/DialogsProvider.d.ts +4 -0
  69. package/dist/contexts/ModeController.d.ts +4 -0
  70. package/dist/contexts/NavigationContext.d.ts +3 -0
  71. package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
  72. package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
  73. package/dist/contexts/SnackbarProvider.d.ts +2 -0
  74. package/dist/contexts/StorageSourceContext.d.ts +3 -0
  75. package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  76. package/dist/contexts/index.d.ts +3 -0
  77. package/dist/core/Drawer.d.ts +23 -0
  78. package/dist/core/EntitySidePanel.d.ts +10 -0
  79. package/dist/core/FireCMS.d.ts +14 -0
  80. package/dist/core/NavigationRoutes.d.ts +21 -0
  81. package/dist/core/Scaffold.d.ts +52 -0
  82. package/dist/core/SideDialogs.d.ts +23 -0
  83. package/dist/core/field_configs.d.ts +7 -0
  84. package/dist/core/index.d.ts +10 -0
  85. package/dist/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
  86. package/dist/core/useBuildModeController.d.ts +6 -0
  87. package/dist/form/EntityForm.d.ts +75 -0
  88. package/dist/form/PropertyFieldBinding.d.ts +30 -0
  89. package/dist/form/components/CustomIdField.d.ts +9 -0
  90. package/dist/form/components/ErrorFocus.d.ts +4 -0
  91. package/dist/form/components/FieldHelperText.d.ts +12 -0
  92. package/dist/form/components/FormikArrayContainer.d.ts +18 -0
  93. package/dist/form/components/StorageItemPreview.d.ts +13 -0
  94. package/dist/form/components/StorageUploadProgress.d.ts +10 -0
  95. package/dist/form/components/SubmitListener.d.ts +1 -0
  96. package/dist/form/components/SwitchControl.d.ts +8 -0
  97. package/dist/form/components/index.d.ts +3 -0
  98. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
  99. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
  100. package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
  101. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
  102. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
  103. package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
  104. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
  105. package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
  106. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
  107. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
  108. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
  109. package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
  110. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
  111. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
  112. package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
  113. package/dist/form/index.d.ts +20 -0
  114. package/dist/form/useClearRestoreValue.d.ts +13 -0
  115. package/dist/form/validation.d.ts +25 -0
  116. package/dist/hooks/data/delete.d.ts +37 -0
  117. package/dist/hooks/data/save.d.ts +42 -0
  118. package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
  119. package/dist/hooks/data/useDataOrder.d.ts +12 -0
  120. package/dist/hooks/data/useDataSource.d.ts +6 -0
  121. package/dist/hooks/data/useEntityFetch.d.ts +28 -0
  122. package/dist/hooks/index.d.ts +19 -0
  123. package/dist/hooks/useAuthController.d.ts +11 -0
  124. package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  125. package/dist/hooks/useClipboard.d.ts +57 -0
  126. package/dist/hooks/useDialogsController.d.ts +11 -0
  127. package/dist/hooks/useFireCMSContext.d.ts +12 -0
  128. package/dist/hooks/useLargeLayout.d.ts +1 -0
  129. package/dist/hooks/useModeController.d.ts +20 -0
  130. package/dist/hooks/useNavigationController.d.ts +9 -0
  131. package/dist/hooks/useReferenceDialog.d.ts +18 -0
  132. package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
  133. package/dist/hooks/useSideDialogsController.d.ts +18 -0
  134. package/dist/hooks/useSideEntityController.d.ts +12 -0
  135. package/dist/hooks/useSnackbarController.d.ts +41 -0
  136. package/dist/hooks/useStorageSource.d.ts +6 -0
  137. package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
  138. package/dist/hooks/useVerifyLicense.d.ts +0 -0
  139. package/dist/index.d.ts +8 -0
  140. package/dist/index.es.js +15810 -26791
  141. package/dist/index.es.js.map +1 -1
  142. package/dist/index.umd.js +5 -1027
  143. package/dist/index.umd.js.map +1 -1
  144. package/dist/internal/EntityView.d.ts +22 -0
  145. package/dist/internal/common.d.ts +3 -0
  146. package/dist/internal/useBuildDataSource.d.ts +22 -0
  147. package/dist/internal/useBuildNavigationController.d.ts +14 -0
  148. package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
  149. package/dist/internal/useBuildSideEntityController.d.ts +4 -0
  150. package/dist/internal/useLocaleConfig.d.ts +1 -0
  151. package/dist/internal/useRestoreScroll.d.ts +6 -0
  152. package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
  153. package/dist/preview/PropertyPreview.d.ts +7 -0
  154. package/dist/preview/PropertyPreviewProps.d.ts +43 -0
  155. package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
  156. package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
  157. package/dist/preview/components/BooleanPreview.d.ts +7 -0
  158. package/dist/preview/components/DatePreview.d.ts +7 -0
  159. package/dist/preview/components/EmptyValue.d.ts +4 -0
  160. package/dist/preview/components/EnumValuesChip.d.ts +13 -0
  161. package/dist/preview/components/ImagePreview.d.ts +12 -0
  162. package/dist/preview/components/ReferencePreview.d.ts +22 -0
  163. package/dist/preview/components/StorageThumbnail.d.ts +13 -0
  164. package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
  165. package/dist/preview/index.d.ts +23 -0
  166. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
  167. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
  168. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
  169. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
  170. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
  171. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
  172. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
  173. package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
  174. package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
  175. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  176. package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
  177. package/dist/preview/util.d.ts +7 -0
  178. package/dist/types/analytics.d.ts +1 -0
  179. package/dist/types/appcheck.d.ts +26 -0
  180. package/dist/types/auth.d.ts +40 -0
  181. package/dist/types/collections.d.ts +451 -0
  182. package/dist/types/datasource.d.ts +262 -0
  183. package/dist/types/dialogs_controller.d.ts +32 -0
  184. package/dist/types/entities.d.ts +57 -0
  185. package/dist/types/entity_actions.d.ts +35 -0
  186. package/dist/types/entity_callbacks.d.ts +171 -0
  187. package/dist/types/entity_link_builder.d.ts +7 -0
  188. package/dist/types/export_import.d.ts +21 -0
  189. package/dist/types/fields.d.ts +181 -0
  190. package/dist/types/firecms.d.ts +151 -0
  191. package/dist/types/firecms_context.d.ts +110 -0
  192. package/dist/types/index.d.ts +26 -0
  193. package/dist/types/local_config_persistence.d.ts +21 -0
  194. package/dist/types/locales.d.ts +4 -0
  195. package/dist/types/modify_collections.d.ts +5 -0
  196. package/dist/types/navigation.d.ts +178 -0
  197. package/dist/types/permissions.d.ts +63 -0
  198. package/dist/types/plugins.d.ts +181 -0
  199. package/dist/types/properties.d.ts +681 -0
  200. package/dist/types/property_config.d.ts +42 -0
  201. package/dist/types/resolved_entities.d.ts +98 -0
  202. package/dist/types/side_dialogs_controller.d.ts +57 -0
  203. package/dist/types/side_entity_controller.d.ts +83 -0
  204. package/dist/types/storage.d.ts +82 -0
  205. package/dist/types/user.d.ts +36 -0
  206. package/dist/util/arrays.d.ts +1 -0
  207. package/dist/util/builders.d.ts +64 -0
  208. package/dist/util/collections.d.ts +3 -0
  209. package/dist/util/common.d.ts +2 -0
  210. package/dist/util/dates.d.ts +1 -0
  211. package/dist/util/entities.d.ts +28 -0
  212. package/dist/util/enums.d.ts +7 -0
  213. package/dist/util/flatten_object.d.ts +3 -0
  214. package/dist/util/hash.d.ts +1 -0
  215. package/dist/util/icon_list.d.ts +1 -0
  216. package/dist/util/icon_synonyms.d.ts +1950 -0
  217. package/dist/util/icons.d.ts +4 -0
  218. package/dist/util/index.d.ts +22 -0
  219. package/dist/util/join_collections.d.ts +9 -0
  220. package/dist/util/make_properties_editable.d.ts +3 -0
  221. package/dist/util/navigation_from_path.d.ts +24 -0
  222. package/dist/util/navigation_utils.d.ts +20 -0
  223. package/dist/util/objects.d.ts +10 -0
  224. package/dist/util/os.d.ts +2 -0
  225. package/dist/util/parent_references_from_path.d.ts +6 -0
  226. package/dist/util/paths.d.ts +14 -0
  227. package/dist/util/permissions.d.ts +5 -0
  228. package/dist/util/plurals.d.ts +18 -0
  229. package/dist/util/property_utils.d.ts +23 -0
  230. package/dist/util/references.d.ts +2 -0
  231. package/dist/util/regexp.d.ts +7 -0
  232. package/dist/util/resolutions.d.ts +64 -0
  233. package/dist/util/storage.d.ts +3 -0
  234. package/dist/util/strings.d.ts +6 -0
  235. package/dist/util/useDebounce.d.ts +1 -0
  236. package/dist/util/useStorageUploadController.d.ts +36 -0
  237. package/dist/util/useTraceUpdate.d.ts +1 -0
  238. package/package.json +112 -142
  239. package/src/components/ArrayContainer.tsx +369 -0
  240. package/src/components/CircularProgressCenter.tsx +26 -0
  241. package/src/components/DeleteConfirmationDialog.tsx +47 -0
  242. package/src/components/DeleteEntityDialog.tsx +207 -0
  243. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +174 -0
  244. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +496 -0
  245. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
  246. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +461 -0
  247. package/src/components/EntityCollectionTable/SimpleEntityCollectionTable.tsx +369 -0
  248. package/src/components/EntityCollectionTable/column_utils.tsx +74 -0
  249. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
  250. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
  251. package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
  252. package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
  253. package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
  254. package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
  255. package/src/components/EntityCollectionTable/index.tsx +20 -0
  256. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
  257. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +257 -0
  258. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
  259. package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
  260. package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
  261. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
  262. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
  263. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
  264. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
  265. package/src/components/EntityCollectionTable/types.tsx +58 -0
  266. package/src/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.tsx +225 -0
  267. package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
  268. package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
  269. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
  270. package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
  271. package/src/components/EntityPreview.tsx +83 -0
  272. package/src/components/ErrorBoundary.tsx +40 -0
  273. package/src/components/ErrorTooltip.tsx +11 -0
  274. package/src/components/ErrorView.tsx +52 -0
  275. package/src/components/FieldConfigBadge.tsx +17 -0
  276. package/src/components/FireCMSAppBar.tsx +157 -0
  277. package/src/components/FireCMSLogo.tsx +73 -0
  278. package/src/components/HomePage/DefaultHomePage.tsx +209 -0
  279. package/src/components/HomePage/FavouritesView.tsx +64 -0
  280. package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
  281. package/src/components/HomePage/NavigationGroup.tsx +39 -0
  282. package/src/components/HomePage/index.tsx +3 -0
  283. package/src/components/LabelWithIcon.tsx +33 -0
  284. package/src/components/NotFoundPage.tsx +25 -0
  285. package/src/components/ReferenceSelectionInner.tsx +364 -0
  286. package/src/components/ReferenceWidget.tsx +145 -0
  287. package/src/components/SearchIconsView.tsx +75 -0
  288. package/src/components/VirtualTable/VirtualTable.tsx +402 -0
  289. package/src/components/VirtualTable/VirtualTableCell.tsx +32 -0
  290. package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
  291. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
  292. package/src/components/VirtualTable/VirtualTableProps.tsx +269 -0
  293. package/src/components/VirtualTable/VirtualTableRow.tsx +53 -0
  294. package/src/components/VirtualTable/common.tsx +18 -0
  295. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
  296. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
  297. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
  298. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
  299. package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
  300. package/src/components/VirtualTable/index.tsx +2 -0
  301. package/src/components/VirtualTable/types.tsx +44 -0
  302. package/src/components/index.tsx +31 -0
  303. package/src/contexts/AuthControllerContext.tsx +4 -0
  304. package/src/contexts/DataSourceContext.tsx +4 -0
  305. package/src/contexts/DialogsProvider.tsx +52 -0
  306. package/src/contexts/ModeController.tsx +13 -0
  307. package/src/contexts/NavigationContext.tsx +4 -0
  308. package/src/contexts/SideDialogsControllerContext.tsx +4 -0
  309. package/src/contexts/SideEntityControllerContext.tsx +4 -0
  310. package/src/contexts/SnackbarProvider.tsx +12 -0
  311. package/src/contexts/StorageSourceContext.tsx +4 -0
  312. package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
  313. package/src/contexts/index.ts +3 -0
  314. package/src/core/Drawer.tsx +161 -0
  315. package/src/core/EntitySidePanel.tsx +89 -0
  316. package/src/core/FireCMS.tsx +184 -0
  317. package/src/core/NavigationRoutes.tsx +118 -0
  318. package/src/core/Scaffold.tsx +278 -0
  319. package/src/core/SideDialogs.tsx +156 -0
  320. package/src/core/field_configs.tsx +400 -0
  321. package/src/core/index.tsx +14 -0
  322. package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
  323. package/src/core/useBuildModeController.tsx +60 -0
  324. package/src/form/EntityForm.tsx +646 -0
  325. package/src/form/PropertyFieldBinding.tsx +313 -0
  326. package/src/form/components/CustomIdField.tsx +124 -0
  327. package/src/form/components/ErrorFocus.tsx +51 -0
  328. package/src/form/components/FieldHelperText.tsx +58 -0
  329. package/src/form/components/FormikArrayContainer.tsx +44 -0
  330. package/src/form/components/StorageItemPreview.tsx +66 -0
  331. package/src/form/components/StorageUploadProgress.tsx +104 -0
  332. package/src/form/components/SubmitListener.tsx +32 -0
  333. package/src/form/components/SwitchControl.tsx +39 -0
  334. package/src/form/components/index.tsx +3 -0
  335. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
  336. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
  337. package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
  338. package/src/form/field_bindings/DateTimeFieldBinding.tsx +67 -0
  339. package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
  340. package/src/form/field_bindings/MapFieldBinding.tsx +136 -0
  341. package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
  342. package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
  343. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
  344. package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
  345. package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
  346. package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
  347. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
  348. package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
  349. package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
  350. package/src/form/index.tsx +42 -0
  351. package/src/form/useClearRestoreValue.tsx +35 -0
  352. package/src/form/validation.ts +413 -0
  353. package/src/hooks/data/delete.ts +101 -0
  354. package/src/hooks/data/save.ts +165 -0
  355. package/src/hooks/data/useCollectionFetch.tsx +162 -0
  356. package/src/hooks/data/useDataOrder.ts +26 -0
  357. package/src/hooks/data/useDataSource.tsx +9 -0
  358. package/src/hooks/data/useEntityFetch.tsx +129 -0
  359. package/src/hooks/index.tsx +23 -0
  360. package/src/hooks/useAuthController.tsx +14 -0
  361. package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
  362. package/src/hooks/useClipboard.tsx +158 -0
  363. package/src/hooks/useDialogsController.tsx +14 -0
  364. package/src/hooks/useFireCMSContext.tsx +50 -0
  365. package/src/hooks/useLargeLayout.tsx +97 -0
  366. package/src/hooks/useModeController.tsx +24 -0
  367. package/src/hooks/useNavigationController.tsx +12 -0
  368. package/src/hooks/useReferenceDialog.tsx +56 -0
  369. package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
  370. package/src/hooks/useSideDialogsController.tsx +21 -0
  371. package/src/hooks/useSideEntityController.tsx +15 -0
  372. package/src/hooks/useSnackbarController.tsx +76 -0
  373. package/src/hooks/useStorageSource.tsx +9 -0
  374. package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
  375. package/src/hooks/useVerifyLicense.tsx +1 -0
  376. package/src/index.ts +8 -0
  377. package/src/internal/EntityView.tsx +576 -0
  378. package/src/internal/common.tsx +5 -0
  379. package/src/internal/useBuildDataSource.ts +358 -0
  380. package/src/internal/useBuildNavigationController.tsx +371 -0
  381. package/src/internal/useBuildSideDialogsController.tsx +126 -0
  382. package/src/internal/useBuildSideEntityController.tsx +172 -0
  383. package/src/internal/useLocaleConfig.tsx +18 -0
  384. package/src/internal/useRestoreScroll.tsx +48 -0
  385. package/src/internal/useUnsavedChangesDialog.tsx +106 -0
  386. package/src/preview/PropertyPreview.tsx +222 -0
  387. package/src/preview/PropertyPreviewProps.tsx +59 -0
  388. package/src/preview/components/ArrayEnumPreview.tsx +39 -0
  389. package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
  390. package/src/preview/components/BooleanPreview.tsx +11 -0
  391. package/src/preview/components/DatePreview.tsx +27 -0
  392. package/src/preview/components/EmptyValue.tsx +10 -0
  393. package/src/preview/components/EnumValuesChip.tsx +38 -0
  394. package/src/preview/components/ImagePreview.tsx +106 -0
  395. package/src/preview/components/ReferencePreview.tsx +249 -0
  396. package/src/preview/components/StorageThumbnail.tsx +84 -0
  397. package/src/preview/components/UrlComponentPreview.tsx +79 -0
  398. package/src/preview/index.ts +27 -0
  399. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
  400. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
  401. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
  402. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
  403. package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
  404. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
  405. package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
  406. package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
  407. package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
  408. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
  409. package/src/preview/property_previews/StringPropertyPreview.tsx +59 -0
  410. package/src/preview/util.ts +31 -0
  411. package/src/types/analytics.ts +34 -0
  412. package/src/types/appcheck.ts +29 -0
  413. package/src/types/auth.tsx +49 -0
  414. package/src/types/collections.ts +530 -0
  415. package/src/types/datasource.ts +389 -0
  416. package/src/types/dialogs_controller.tsx +33 -0
  417. package/src/types/entities.ts +76 -0
  418. package/src/types/entity_actions.tsx +39 -0
  419. package/src/types/entity_callbacks.ts +209 -0
  420. package/src/types/entity_link_builder.ts +8 -0
  421. package/src/types/export_import.ts +26 -0
  422. package/src/types/fields.tsx +220 -0
  423. package/src/types/firecms.tsx +175 -0
  424. package/src/types/firecms_context.tsx +128 -0
  425. package/src/types/index.ts +26 -0
  426. package/src/types/local_config_persistence.tsx +23 -0
  427. package/src/types/locales.ts +81 -0
  428. package/src/types/modify_collections.tsx +6 -0
  429. package/src/types/navigation.ts +214 -0
  430. package/src/types/permissions.ts +76 -0
  431. package/src/types/plugins.tsx +219 -0
  432. package/src/types/properties.ts +851 -0
  433. package/src/types/property_config.tsx +72 -0
  434. package/src/types/resolved_entities.ts +148 -0
  435. package/src/types/side_dialogs_controller.tsx +68 -0
  436. package/src/types/side_entity_controller.tsx +96 -0
  437. package/src/types/storage.ts +96 -0
  438. package/src/types/user.ts +37 -0
  439. package/src/util/arrays.ts +3 -0
  440. package/src/util/builders.ts +139 -0
  441. package/src/util/collections.ts +50 -0
  442. package/src/util/common.tsx +2 -0
  443. package/src/util/dates.ts +1 -0
  444. package/src/util/entities.ts +196 -0
  445. package/src/util/enums.ts +56 -0
  446. package/src/util/flatten_object.ts +45 -0
  447. package/src/util/hash.ts +11 -0
  448. package/src/util/icon_list.ts +17 -0
  449. package/src/util/icon_synonyms.ts +1950 -0
  450. package/src/util/icons.tsx +45 -0
  451. package/src/util/index.ts +22 -0
  452. package/src/util/join_collections.ts +172 -0
  453. package/src/util/make_properties_editable.ts +29 -0
  454. package/src/util/navigation_from_path.ts +107 -0
  455. package/src/util/navigation_utils.ts +111 -0
  456. package/src/util/objects.ts +168 -0
  457. package/src/util/os.ts +13 -0
  458. package/src/util/parent_references_from_path.ts +56 -0
  459. package/src/util/paths.ts +27 -0
  460. package/src/util/permissions.ts +80 -0
  461. package/src/util/plurals.ts +190 -0
  462. package/src/util/property_utils.tsx +130 -0
  463. package/src/util/references.ts +20 -0
  464. package/src/util/regexp.ts +32 -0
  465. package/src/util/resolutions.ts +399 -0
  466. package/src/util/storage.ts +92 -0
  467. package/src/util/strings.ts +62 -0
  468. package/src/util/useDebounce.ts +25 -0
  469. package/src/util/useStorageUploadController.tsx +243 -0
  470. package/src/util/useTraceUpdate.tsx +23 -0
@@ -0,0 +1,262 @@
1
+ import { Entity, EntityReference, EntityStatus, EntityValues, GeoPoint } from "./entities";
2
+ import { EntityCollection, FilterValues } from "./collections";
3
+ import { ResolvedEntityCollection } from "./resolved_entities";
4
+ /**
5
+ * @group Datasource
6
+ */
7
+ export interface FetchEntityProps<M extends Record<string, any> = any> {
8
+ path: string;
9
+ entityId: string;
10
+ collection?: EntityCollection<M>;
11
+ }
12
+ /**
13
+ * @group Datasource
14
+ */
15
+ export type ListenEntityProps<M extends Record<string, any> = any> = FetchEntityProps<M> & {
16
+ onUpdate: (entity: Entity<M>) => void;
17
+ onError?: (error: Error) => void;
18
+ };
19
+ /**
20
+ * @group Datasource
21
+ */
22
+ export interface FetchCollectionProps<M extends Record<string, any> = any> {
23
+ path: string;
24
+ collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
25
+ filter?: FilterValues<Extract<keyof M, string>>;
26
+ limit?: number;
27
+ startAfter?: any[];
28
+ orderBy?: string;
29
+ searchString?: string;
30
+ order?: "desc" | "asc";
31
+ }
32
+ /**
33
+ * @group Datasource
34
+ */
35
+ export type ListenCollectionProps<M extends Record<string, any> = any> = FetchCollectionProps<M> & {
36
+ onUpdate: (entities: Entity<M>[]) => void;
37
+ onError?: (error: Error) => void;
38
+ };
39
+ /**
40
+ * @group Datasource
41
+ */
42
+ export interface SaveEntityProps<M extends Record<string, any> = any> {
43
+ path: string;
44
+ values: Partial<EntityValues<M>>;
45
+ entityId?: string;
46
+ previousValues?: Partial<EntityValues<M>>;
47
+ collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
48
+ status: EntityStatus;
49
+ }
50
+ /**
51
+ * @group Datasource
52
+ */
53
+ export interface DeleteEntityProps<M extends Record<string, any> = any> {
54
+ entity: Entity<M>;
55
+ }
56
+ /**
57
+ * Implement this interface and pass it to a {@link FireCMS}
58
+ * to connect it to your data source.
59
+ * A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
60
+ * @group Datasource
61
+ */
62
+ export interface DataSource {
63
+ /**
64
+ * Fetch data from a collection
65
+ * @param path
66
+ * @param collection
67
+ * @param filter
68
+ * @param limit
69
+ * @param startAfter
70
+ * @param orderBy
71
+ * @param order
72
+ * @param searchString
73
+ * @return Function to cancel subscription
74
+ * @see useCollectionFetch if you need this functionality implemented as a hook
75
+ */
76
+ fetchCollection<M extends Record<string, any> = any>({ path, collection, filter, limit, startAfter, orderBy, order, searchString }: FetchCollectionProps<M>): Promise<Entity<M>[]>;
77
+ /**
78
+ * Listen to a collection in a given path. If you don't implement this method
79
+ * `fetchCollection` will be used instead, with no real time updates.
80
+ * @param path
81
+ * @param collection
82
+ * @param onUpdate
83
+ * @param onError
84
+ * @param filter
85
+ * @param limit
86
+ * @param startAfter
87
+ * @param orderBy
88
+ * @param order
89
+ * @param searchString
90
+ * @return Function to cancel subscription
91
+ * @see useCollectionFetch if you need this functionality implemented as a hook
92
+ */
93
+ listenCollection?<M extends Record<string, any> = any>({ path, collection, filter, limit, startAfter, searchString, orderBy, order, onUpdate, onError }: ListenCollectionProps<M>): () => void;
94
+ /**
95
+ * Retrieve an entity given a path and a collection
96
+ * @param path
97
+ * @param entityId
98
+ * @param collection
99
+ */
100
+ fetchEntity<M extends Record<string, any> = any>({ path, entityId, collection }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
101
+ /**
102
+ * Get realtime updates on one entity.
103
+ * @param path
104
+ * @param entityId
105
+ * @param collection
106
+ * @param onUpdate
107
+ * @param onError
108
+ * @return Function to cancel subscription
109
+ */
110
+ listenEntity?<M extends Record<string, any> = any>({ path, entityId, collection, onUpdate, onError }: ListenEntityProps<M>): () => void;
111
+ /**
112
+ * Save entity to the specified path
113
+ * @param path
114
+ * @param id
115
+ * @param collection
116
+ * @param status
117
+ */
118
+ saveEntity<M extends Record<string, any> = any>({ path, entityId, values, collection, status }: SaveEntityProps<M>): Promise<Entity<M>>;
119
+ /**
120
+ * Delete an entity
121
+ * @param entity
122
+ * @return was the whole deletion flow successful
123
+ */
124
+ deleteEntity<M extends Record<string, any> = any>({ entity }: DeleteEntityProps<M>): Promise<void>;
125
+ /**
126
+ * Check if the given property is unique in the given collection
127
+ * @param path Collection path
128
+ * @param name of the property
129
+ * @param value
130
+ * @param property
131
+ * @param entityId
132
+ * @return `true` if there are no other fields besides the given entity
133
+ */
134
+ checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
135
+ /**
136
+ * Generate an id for a new entity
137
+ */
138
+ generateEntityId(path: string): string;
139
+ /**
140
+ * Count the number of entities in a collection
141
+ */
142
+ countEntities<M extends Record<string, any> = any>(props: FetchCollectionProps<M>): Promise<number>;
143
+ /**
144
+ * Check if the given filter combination is valid
145
+ * @param props
146
+ */
147
+ isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
148
+ }
149
+ export type FilterCombinationValidProps = {
150
+ path: string;
151
+ collection: EntityCollection<any>;
152
+ filterValues: FilterValues<any>;
153
+ sortBy?: [string, "asc" | "desc"];
154
+ };
155
+ export type SaveEntityDelegateProps<M extends Record<string, any> = any> = Omit<SaveEntityProps<M>, "collection">;
156
+ export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = Omit<FetchCollectionProps<M>, "collection"> & {
157
+ isCollectionGroup?: boolean;
158
+ };
159
+ export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M> & {
160
+ isCollectionGroup?: boolean;
161
+ };
162
+ export interface DataSourceDelegate {
163
+ /**
164
+ * Fetch data from a collection
165
+ * @param path
166
+ * @param filter
167
+ * @param limit
168
+ * @param startAfter
169
+ * @param orderBy
170
+ * @param order
171
+ * @param searchString
172
+ * @return Function to cancel subscription
173
+ * @see useCollectionFetch if you need this functionality implemented as a hook
174
+ */
175
+ fetchCollection<M extends Record<string, any> = any>({ path, filter, limit, startAfter, orderBy, order, searchString }: FetchCollectionDelegateProps<M>): Promise<Entity<M>[]>;
176
+ /**
177
+ * Listen to a collection in a given path. If you don't implement this method
178
+ * `fetchCollection` will be used instead, with no real time updates.
179
+ * @param path
180
+ * @param onUpdate
181
+ * @param onError
182
+ * @param filter
183
+ * @param limit
184
+ * @param startAfter
185
+ * @param orderBy
186
+ * @param order
187
+ * @param searchString
188
+ * @return Function to cancel subscription
189
+ * @see useCollectionFetch if you need this functionality implemented as a hook
190
+ */
191
+ listenCollection?<M extends Record<string, any> = any>({ path, filter, limit, startAfter, searchString, orderBy, order, onUpdate, onError }: ListenCollectionDelegateProps<M>): () => void;
192
+ /**
193
+ * Retrieve an entity given a path and a collection
194
+ * @param path
195
+ * @param entityId
196
+ */
197
+ fetchEntity<M extends Record<string, any> = any>({ path, entityId, }: Omit<FetchEntityProps<M>, "collection">): Promise<Entity<M> | undefined>;
198
+ /**
199
+ * Get realtime updates on one entity.
200
+ * @param path
201
+ * @param entityId
202
+ * @param collection
203
+ * @param onUpdate
204
+ * @param onError
205
+ * @return Function to cancel subscription
206
+ */
207
+ listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }: Omit<ListenEntityProps<M>, "collection">): () => void;
208
+ /**
209
+ * Save entity to the specified path
210
+ * @param path
211
+ * @param id
212
+ * @param collection
213
+ * @param status
214
+ */
215
+ saveEntity<M extends Record<string, any> = any>({ path, entityId, values, status }: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
216
+ /**
217
+ * Delete an entity
218
+ * @param entity
219
+ * @return was the whole deletion flow successful
220
+ */
221
+ deleteEntity<M extends Record<string, any> = any>({ entity }: DeleteEntityProps<M>): Promise<void>;
222
+ /**
223
+ * Check if the given property is unique in the given collection
224
+ * @param path Collection path
225
+ * @param name of the property
226
+ * @param value
227
+ * @param entityId
228
+ * @return `true` if there are no other fields besides the given entity
229
+ */
230
+ checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
231
+ /**
232
+ * Generate an id for a new entity
233
+ */
234
+ generateEntityId(path: string): string;
235
+ /**
236
+ * Count the number of entities in a collection
237
+ */
238
+ countEntities<M extends Record<string, any> = any>(props: FetchCollectionDelegateProps<M>): Promise<number>;
239
+ /**
240
+ * Check if the given filter combination is valid
241
+ * @param props
242
+ */
243
+ isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">): boolean;
244
+ /**
245
+ * Convert a FireCMS reference to a reference that can be used by the datasource
246
+ * @param reference
247
+ */
248
+ buildReference: (reference: EntityReference) => any;
249
+ /**
250
+ * Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
251
+ * @param geoPoint
252
+ */
253
+ buildGeoPoint: (geoPoint: GeoPoint) => any;
254
+ /**
255
+ * Get the object to generate the current time in the datasource
256
+ */
257
+ currentTime(): any;
258
+ buildDate: (date: Date) => any;
259
+ buildDeleteFieldValue: () => any;
260
+ delegateToCMSModel: (data: any) => any;
261
+ setDateToMidnight: (input?: any) => any;
262
+ }
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ /**
3
+ * Controller to open the side dialog
4
+ * @group Hooks and utilities
5
+ */
6
+ export interface DialogsController {
7
+ /**
8
+ * Close the last dialog
9
+ */
10
+ close: () => void;
11
+ /**
12
+ * Open a dialog
13
+ * @param props
14
+ */
15
+ open: (props: DialogControllerEntryProps) => {
16
+ closeDialog: () => void;
17
+ };
18
+ }
19
+ /**
20
+ * Props used to open a side dialog
21
+ * @group Hooks and utilities
22
+ */
23
+ export interface DialogControllerEntryProps {
24
+ key: string;
25
+ /**
26
+ * The component type that will be rendered
27
+ */
28
+ Component: React.ComponentType<{
29
+ open: boolean;
30
+ closeDialog: () => void;
31
+ }>;
32
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * New or existing status
3
+ * @group Models
4
+ */
5
+ export type EntityStatus = "new" | "existing" | "copy";
6
+ /**
7
+ * Representation of an entity fetched from the datasource
8
+ * @group Models
9
+ */
10
+ export interface Entity<M extends object> {
11
+ /**
12
+ * ID of the entity
13
+ */
14
+ id: string;
15
+ /**
16
+ * A string representing the path of the referenced document (relative
17
+ * to the root of the database).
18
+ */
19
+ path: string;
20
+ /**
21
+ * Current values
22
+ */
23
+ values: EntityValues<M>;
24
+ }
25
+ /**
26
+ * This type represents a record of key value pairs as described in an
27
+ * entity collection.
28
+ * @group Models
29
+ */
30
+ export type EntityValues<M extends object> = M;
31
+ /**
32
+ * Class used to create a reference to an entity in a different path
33
+ */
34
+ export declare class EntityReference<M extends Record<string, any> = any> {
35
+ /**
36
+ * ID of the entity
37
+ */
38
+ readonly id: string;
39
+ /**
40
+ * A string representing the path of the referenced document (relative
41
+ * to the root of the database).
42
+ */
43
+ readonly path: string;
44
+ constructor(id: string, path: string);
45
+ get pathWithId(): string;
46
+ }
47
+ export declare class GeoPoint {
48
+ /**
49
+ * The latitude of this GeoPoint instance.
50
+ */
51
+ readonly latitude: number;
52
+ /**
53
+ * The longitude of this GeoPoint instance.
54
+ */
55
+ readonly longitude: number;
56
+ constructor(latitude: number, longitude: number);
57
+ }
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import { FireCMSContext } from "./firecms_context";
3
+ import { Entity } from "./entities";
4
+ import { EntityCollection, SelectionController } from "./collections";
5
+ import { User } from "./user";
6
+ import { SideEntityController } from "./side_entity_controller";
7
+ export type EntityAction<M extends object = any, UserType extends User = User> = {
8
+ name: string;
9
+ icon?: React.ReactElement;
10
+ onClick: (props: EntityActionClickProps<M, UserType>) => Promise<void> | void;
11
+ /**
12
+ * Show this action collapsed in the menu of the collection view.
13
+ * Defaults to true
14
+ * If false, the action will be shown in the menu
15
+ */
16
+ collapsed?: boolean;
17
+ /**
18
+ * Show this action in the form, defaults to true
19
+ */
20
+ includeInForm?: boolean;
21
+ };
22
+ export type EntityActionClickProps<M extends object, UserType extends User = User> = {
23
+ entity: Entity<M>;
24
+ context: FireCMSContext<UserType>;
25
+ fullPath?: string;
26
+ collection?: EntityCollection<M>;
27
+ selectionController?: SelectionController;
28
+ highlightEntity?: (entity: Entity<any>) => void;
29
+ unhighlightEntity?: (entity: Entity<any>) => void;
30
+ onCollectionChange?: () => void;
31
+ /**
32
+ * If this actions is being called from a side dialog
33
+ */
34
+ sideEntityController?: SideEntityController;
35
+ };
@@ -0,0 +1,171 @@
1
+ import { EntityCollection } from "./collections";
2
+ import { Entity, EntityStatus, EntityValues } from "./entities";
3
+ import { FireCMSContext } from "./firecms_context";
4
+ import { ResolvedEntityCollection } from "./resolved_entities";
5
+ import { User } from "./user";
6
+ /**
7
+ * This interface defines all the callbacks that can be used when an entity
8
+ * is being created, updated or deleted.
9
+ * Useful for adding your own logic or blocking the execution of the operation.
10
+ * @group Models
11
+ */
12
+ export type EntityCallbacks<M extends Record<string, any> = any, UserType extends User = User> = {
13
+ /**
14
+ * Callback used after fetching data
15
+ * @param entityFetchProps
16
+ */
17
+ onFetch?(entityFetchProps: EntityOnFetchProps<M, UserType>): Promise<Entity<M>> | Entity<M>;
18
+ /**
19
+ * Callback used when save is successful
20
+ * @param entitySaveProps
21
+ */
22
+ onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M, UserType>): Promise<void> | void;
23
+ /**
24
+ * Callback used when saving fails
25
+ * @param entitySaveProps
26
+ */
27
+ onSaveFailure?(entitySaveProps: EntityOnSaveProps<M, UserType>): Promise<void> | void;
28
+ /**
29
+ * Callback used before saving, you need to return the values that will get
30
+ * saved. If you throw an error in this method the process stops, and an
31
+ * error snackbar gets displayed.
32
+ * @param entitySaveProps
33
+ */
34
+ onPreSave?(entitySaveProps: EntityOnSaveProps<M, UserType>): Promise<Partial<EntityValues<M>>> | Partial<EntityValues<M>>;
35
+ /**
36
+ * Callback used after the entity is deleted.
37
+ * If you throw an error in this method the process stops, and an
38
+ * error snackbar gets displayed.
39
+ *
40
+ * @param entityDeleteProps
41
+ */
42
+ onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M, UserType>): void;
43
+ /**
44
+ * Callback used after the entity is deleted.
45
+ *
46
+ * @param entityDeleteProps
47
+ */
48
+ onDelete?(entityDeleteProps: EntityOnDeleteProps<M, UserType>): void;
49
+ /**
50
+ * Callback fired when any value in the form changes. You can use it
51
+ * to define the ID of a `new` entity based on the current values.
52
+ * The returned string will be used as the ID of the entity.
53
+ *
54
+ * @param idUpdateProps
55
+ */
56
+ onIdUpdate?(idUpdateProps: EntityIdUpdateProps<M>): string;
57
+ };
58
+ /**
59
+ * Parameters passed to hooks when an entity is fetched
60
+ * @group Models
61
+ */
62
+ export interface EntityOnFetchProps<M extends Record<string, any> = any, UserType extends User = User> {
63
+ /**
64
+ * Collection of the entity
65
+ */
66
+ collection: EntityCollection<M>;
67
+ /**
68
+ * Full path of the CMS where this collection is being fetched.
69
+ * Might contain unresolved aliases.
70
+ */
71
+ path: string;
72
+ /**
73
+ * Fetched entity
74
+ */
75
+ entity: Entity<M>;
76
+ /**
77
+ * Context of the app status
78
+ */
79
+ context: FireCMSContext<UserType>;
80
+ }
81
+ /**
82
+ * Parameters passed to hooks when an entity is saved
83
+ * @group Models
84
+ */
85
+ export interface EntityOnSaveProps<M extends Record<string, any> = any, UserType extends User = User> {
86
+ /**
87
+ * Resolved collection of the entity
88
+ */
89
+ collection: ResolvedEntityCollection<M>;
90
+ /**
91
+ * Full path of the CMS where this entity is being saved.
92
+ * Might contain unresolved aliases.
93
+ */
94
+ path: string;
95
+ /**
96
+ * Full path where this entity is being saved, with alias resolved
97
+ */
98
+ resolvedPath: string;
99
+ /**
100
+ * ID of the entity
101
+ */
102
+ entityId?: string;
103
+ /**
104
+ * Values being saved
105
+ */
106
+ values: Partial<EntityValues<M>>;
107
+ /**
108
+ * Previous values
109
+ */
110
+ previousValues?: Partial<EntityValues<M>>;
111
+ /**
112
+ * New or existing entity
113
+ */
114
+ status: EntityStatus;
115
+ /**
116
+ * Context of the app status
117
+ */
118
+ context: FireCMSContext<UserType>;
119
+ }
120
+ /**
121
+ * Parameters passed to hooks when an entity is deleted
122
+ * @group Models
123
+ */
124
+ export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserType extends User = User> {
125
+ /**
126
+ * collection of the entity being deleted
127
+ */
128
+ collection: ResolvedEntityCollection<M>;
129
+ /**
130
+ * Path of the parent collection
131
+ */
132
+ path: string;
133
+ /**
134
+ * Deleted entity id
135
+ */
136
+ entityId: string;
137
+ /**
138
+ * Deleted entity
139
+ */
140
+ entity: Entity<M>;
141
+ /**
142
+ * Context of the app status
143
+ */
144
+ context: FireCMSContext;
145
+ }
146
+ /**
147
+ * Parameters passed to hooks when an entity is deleted
148
+ * @group Models
149
+ */
150
+ export interface EntityIdUpdateProps<M extends Record<string, any> = any> {
151
+ /**
152
+ * collection of the entity being deleted
153
+ */
154
+ collection: ResolvedEntityCollection<M>;
155
+ /**
156
+ * Path of the parent collection
157
+ */
158
+ path: string;
159
+ /**
160
+ * Current entity id
161
+ */
162
+ entityId?: string;
163
+ /**
164
+ * Entity values
165
+ */
166
+ values: EntityValues<M>;
167
+ /**
168
+ * Context of the app status
169
+ */
170
+ context: FireCMSContext;
171
+ }
@@ -0,0 +1,7 @@
1
+ import { Entity } from "./entities";
2
+ /**
3
+ * @group Models
4
+ */
5
+ export type EntityLinkBuilder<M extends Record<string, any> = any> = ({ entity }: {
6
+ entity: Entity<M>;
7
+ }) => string;
@@ -0,0 +1,21 @@
1
+ import { User } from "./user";
2
+ import { Entity } from "./entities";
3
+ import { FireCMSContext } from "./firecms_context";
4
+ /**
5
+ * You can use this configuration to add additional fields to the data
6
+ * exports
7
+ * @group Models
8
+ */
9
+ export interface ExportConfig<UserType extends User = User> {
10
+ additionalFields: ExportMappingFunction<UserType>[];
11
+ }
12
+ /**
13
+ * @group Models
14
+ */
15
+ export interface ExportMappingFunction<UserType extends User = User> {
16
+ key: string;
17
+ builder: ({ entity, context }: {
18
+ entity: Entity<any>;
19
+ context: FireCMSContext<UserType>;
20
+ }) => Promise<string> | string;
21
+ }