@firecms/core 3.0.0-alpha.7 → 3.0.0-alpha.70

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 (460) 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/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
  6. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
  7. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
  8. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
  9. package/dist/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
  10. package/dist/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
  11. package/dist/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
  12. package/dist/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
  13. package/dist/components/EntityCollectionTable/index.d.ts +4 -0
  14. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
  15. package/dist/components/EntityCollectionTable/internal/DeleteEntityDialog.d.ts +12 -0
  16. package/dist/components/EntityCollectionTable/internal/EntityCollectionRowActions.d.ts +35 -0
  17. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
  18. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  19. package/dist/components/EntityCollectionTable/internal/PropertyTableCell.d.ts +18 -0
  20. package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
  21. package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
  22. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
  23. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
  24. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  25. package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  26. package/dist/components/EntityCollectionTable/types.d.ts +39 -0
  27. package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
  28. package/dist/components/EntityCollectionTable/useEntityCollectionTableController.d.ts +21 -0
  29. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
  30. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
  31. package/dist/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
  32. package/dist/components/EntityPreview.d.ts +11 -0
  33. package/dist/components/ErrorBoundary.d.ts +11 -0
  34. package/dist/components/ErrorTooltip.d.ts +2 -0
  35. package/dist/components/ErrorView.d.ts +19 -0
  36. package/dist/components/FieldConfigBadge.d.ts +4 -0
  37. package/dist/components/FireCMSAppBar.d.ts +26 -0
  38. package/dist/components/FireCMSLogo.d.ts +7 -0
  39. package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
  40. package/dist/components/HomePage/FavouritesView.d.ts +3 -0
  41. package/dist/components/HomePage/NavigationCollectionCard.d.ts +17 -0
  42. package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
  43. package/dist/components/HomePage/index.d.ts +3 -0
  44. package/dist/components/LabelWithIcon.d.ts +14 -0
  45. package/dist/components/NotFoundPage.d.ts +1 -0
  46. package/dist/components/ReferenceSelectionInner.d.ts +58 -0
  47. package/dist/components/ReferenceWidget.d.ts +28 -0
  48. package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
  49. package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
  50. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
  51. package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  52. package/dist/components/VirtualTable/VirtualTableProps.d.ts +215 -0
  53. package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  54. package/dist/components/VirtualTable/common.d.ts +2 -0
  55. package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
  56. package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
  57. package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
  58. package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
  59. package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
  60. package/dist/components/VirtualTable/index.d.ts +2 -0
  61. package/dist/components/VirtualTable/types.d.ts +34 -0
  62. package/dist/components/index.d.ts +20 -0
  63. package/dist/contexts/AuthControllerContext.d.ts +3 -0
  64. package/dist/contexts/DataSourceContext.d.ts +3 -0
  65. package/dist/contexts/DialogsProvider.d.ts +4 -0
  66. package/dist/contexts/ModeController.d.ts +4 -0
  67. package/dist/contexts/NavigationContext.d.ts +3 -0
  68. package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
  69. package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
  70. package/dist/contexts/SnackbarProvider.d.ts +2 -0
  71. package/dist/contexts/StorageSourceContext.d.ts +3 -0
  72. package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  73. package/dist/contexts/index.d.ts +3 -0
  74. package/dist/core/Drawer.d.ts +23 -0
  75. package/dist/core/EntitySidePanel.d.ts +10 -0
  76. package/dist/core/FireCMS.d.ts +14 -0
  77. package/dist/core/NavigationRoutes.d.ts +21 -0
  78. package/dist/core/Scaffold.d.ts +52 -0
  79. package/dist/core/SideDialogs.d.ts +23 -0
  80. package/dist/core/field_configs.d.ts +7 -0
  81. package/dist/core/index.d.ts +10 -0
  82. package/dist/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
  83. package/dist/core/useBuildModeController.d.ts +6 -0
  84. package/dist/form/EntityForm.d.ts +75 -0
  85. package/dist/form/PropertyFieldBinding.d.ts +30 -0
  86. package/dist/form/components/CustomIdField.d.ts +9 -0
  87. package/dist/form/components/ErrorFocus.d.ts +4 -0
  88. package/dist/form/components/FieldHelperText.d.ts +12 -0
  89. package/dist/form/components/FormikArrayContainer.d.ts +18 -0
  90. package/dist/form/components/StorageItemPreview.d.ts +13 -0
  91. package/dist/form/components/StorageUploadProgress.d.ts +10 -0
  92. package/dist/form/components/SubmitListener.d.ts +1 -0
  93. package/dist/form/components/SwitchControl.d.ts +8 -0
  94. package/dist/form/components/index.d.ts +3 -0
  95. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
  96. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
  97. package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
  98. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
  99. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
  100. package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
  101. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
  102. package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
  103. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
  104. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
  105. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
  106. package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
  107. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
  108. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
  109. package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
  110. package/dist/form/index.d.ts +20 -0
  111. package/dist/form/useClearRestoreValue.d.ts +13 -0
  112. package/dist/form/validation.d.ts +25 -0
  113. package/dist/hooks/data/delete.d.ts +37 -0
  114. package/dist/hooks/data/save.d.ts +42 -0
  115. package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
  116. package/dist/hooks/data/useDataOrder.d.ts +12 -0
  117. package/dist/hooks/data/useDataSource.d.ts +6 -0
  118. package/dist/hooks/data/useEntityFetch.d.ts +28 -0
  119. package/dist/hooks/index.d.ts +19 -0
  120. package/dist/hooks/useAuthController.d.ts +11 -0
  121. package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  122. package/dist/hooks/useClipboard.d.ts +57 -0
  123. package/dist/hooks/useDialogsController.d.ts +11 -0
  124. package/dist/hooks/useFireCMSContext.d.ts +12 -0
  125. package/dist/hooks/useLargeLayout.d.ts +1 -0
  126. package/dist/hooks/useModeController.d.ts +20 -0
  127. package/dist/hooks/useNavigationController.d.ts +9 -0
  128. package/dist/hooks/useReferenceDialog.d.ts +18 -0
  129. package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
  130. package/dist/hooks/useSideDialogsController.d.ts +18 -0
  131. package/dist/hooks/useSideEntityController.d.ts +12 -0
  132. package/dist/hooks/useSnackbarController.d.ts +41 -0
  133. package/dist/hooks/useStorageSource.d.ts +6 -0
  134. package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
  135. package/dist/index.d.ts +8 -0
  136. package/dist/index.es.js +12415 -25618
  137. package/dist/index.es.js.map +1 -1
  138. package/dist/index.umd.js +5 -1027
  139. package/dist/index.umd.js.map +1 -1
  140. package/dist/internal/EntityView.d.ts +22 -0
  141. package/dist/internal/common.d.ts +3 -0
  142. package/dist/internal/useBuildDataSource.d.ts +22 -0
  143. package/dist/internal/useBuildNavigationController.d.ts +14 -0
  144. package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
  145. package/dist/internal/useBuildSideEntityController.d.ts +4 -0
  146. package/dist/internal/useLocaleConfig.d.ts +1 -0
  147. package/dist/internal/useRestoreScroll.d.ts +6 -0
  148. package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
  149. package/dist/preview/PropertyPreview.d.ts +7 -0
  150. package/dist/preview/PropertyPreviewProps.d.ts +43 -0
  151. package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
  152. package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
  153. package/dist/preview/components/BooleanPreview.d.ts +7 -0
  154. package/dist/preview/components/DatePreview.d.ts +7 -0
  155. package/dist/preview/components/EmptyValue.d.ts +4 -0
  156. package/dist/preview/components/EnumValuesChip.d.ts +13 -0
  157. package/dist/preview/components/ImagePreview.d.ts +12 -0
  158. package/dist/preview/components/ReferencePreview.d.ts +22 -0
  159. package/dist/preview/components/StorageThumbnail.d.ts +13 -0
  160. package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
  161. package/dist/preview/index.d.ts +23 -0
  162. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
  163. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
  164. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
  165. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
  166. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
  167. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
  168. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
  169. package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
  170. package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
  171. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  172. package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
  173. package/dist/preview/util.d.ts +7 -0
  174. package/dist/types/analytics.d.ts +1 -0
  175. package/dist/types/appcheck.d.ts +26 -0
  176. package/dist/types/auth.d.ts +40 -0
  177. package/dist/types/collections.d.ts +451 -0
  178. package/dist/types/datasource.d.ts +262 -0
  179. package/dist/types/dialogs_controller.d.ts +32 -0
  180. package/dist/types/entities.d.ts +57 -0
  181. package/dist/types/entity_actions.d.ts +35 -0
  182. package/dist/types/entity_callbacks.d.ts +171 -0
  183. package/dist/types/entity_link_builder.d.ts +7 -0
  184. package/dist/types/export_import.d.ts +21 -0
  185. package/dist/types/fields.d.ts +181 -0
  186. package/dist/types/firecms.d.ts +151 -0
  187. package/dist/types/firecms_context.d.ts +110 -0
  188. package/dist/types/index.d.ts +26 -0
  189. package/dist/types/local_config_persistence.d.ts +21 -0
  190. package/dist/types/locales.d.ts +4 -0
  191. package/dist/types/modify_collections.d.ts +5 -0
  192. package/dist/types/navigation.d.ts +178 -0
  193. package/dist/types/permissions.d.ts +63 -0
  194. package/dist/types/plugins.d.ts +179 -0
  195. package/dist/types/properties.d.ts +681 -0
  196. package/dist/types/property_config.d.ts +42 -0
  197. package/dist/types/resolved_entities.d.ts +98 -0
  198. package/dist/types/side_dialogs_controller.d.ts +57 -0
  199. package/dist/types/side_entity_controller.d.ts +83 -0
  200. package/dist/types/storage.d.ts +82 -0
  201. package/dist/types/user.d.ts +36 -0
  202. package/dist/util/arrays.d.ts +1 -0
  203. package/dist/util/builders.d.ts +64 -0
  204. package/dist/util/chip_utils.d.ts +3 -0
  205. package/dist/util/collections.d.ts +3 -0
  206. package/dist/util/common.d.ts +2 -0
  207. package/dist/util/dates.d.ts +1 -0
  208. package/dist/util/entities.d.ts +28 -0
  209. package/dist/util/enums.d.ts +7 -0
  210. package/dist/util/flatten_object.d.ts +3 -0
  211. package/dist/util/hash.d.ts +1 -0
  212. package/dist/util/icons.d.ts +4 -0
  213. package/dist/util/index.d.ts +20 -0
  214. package/dist/util/join_collections.d.ts +9 -0
  215. package/dist/util/make_properties_editable.d.ts +3 -0
  216. package/dist/util/navigation_from_path.d.ts +24 -0
  217. package/dist/util/navigation_utils.d.ts +20 -0
  218. package/dist/util/objects.d.ts +10 -0
  219. package/dist/util/os.d.ts +2 -0
  220. package/dist/util/parent_references_from_path.d.ts +6 -0
  221. package/dist/util/paths.d.ts +14 -0
  222. package/dist/util/permissions.d.ts +5 -0
  223. package/dist/util/plurals.d.ts +18 -0
  224. package/dist/util/property_utils.d.ts +23 -0
  225. package/dist/util/references.d.ts +2 -0
  226. package/dist/util/regexp.d.ts +7 -0
  227. package/dist/util/resolutions.d.ts +64 -0
  228. package/dist/util/storage.d.ts +3 -0
  229. package/dist/util/strings.d.ts +6 -0
  230. package/dist/util/useDebounce.d.ts +1 -0
  231. package/dist/util/useStorageUploadController.d.ts +36 -0
  232. package/dist/util/useTraceUpdate.d.ts +1 -0
  233. package/package.json +114 -142
  234. package/src/components/ArrayContainer.tsx +369 -0
  235. package/src/components/CircularProgressCenter.tsx +26 -0
  236. package/src/components/DeleteConfirmationDialog.tsx +47 -0
  237. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +520 -0
  238. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
  239. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
  240. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
  241. package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
  242. package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
  243. package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
  244. package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
  245. package/src/components/EntityCollectionTable/index.tsx +16 -0
  246. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
  247. package/src/components/EntityCollectionTable/internal/DeleteEntityDialog.tsx +207 -0
  248. package/src/components/EntityCollectionTable/internal/EntityCollectionRowActions.tsx +174 -0
  249. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +264 -0
  250. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
  251. package/src/components/EntityCollectionTable/internal/PropertyTableCell.tsx +460 -0
  252. package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
  253. package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
  254. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
  255. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
  256. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
  257. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
  258. package/src/components/EntityCollectionTable/types.tsx +44 -0
  259. package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
  260. package/src/components/EntityCollectionTable/useEntityCollectionTableController.tsx +213 -0
  261. package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
  262. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
  263. package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
  264. package/src/components/EntityPreview.tsx +83 -0
  265. package/src/components/ErrorBoundary.tsx +40 -0
  266. package/src/components/ErrorTooltip.tsx +11 -0
  267. package/src/components/ErrorView.tsx +52 -0
  268. package/src/components/FieldConfigBadge.tsx +17 -0
  269. package/src/components/FireCMSAppBar.tsx +157 -0
  270. package/src/components/FireCMSLogo.tsx +73 -0
  271. package/src/components/HomePage/DefaultHomePage.tsx +209 -0
  272. package/src/components/HomePage/FavouritesView.tsx +64 -0
  273. package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
  274. package/src/components/HomePage/NavigationGroup.tsx +39 -0
  275. package/src/components/HomePage/index.tsx +3 -0
  276. package/src/components/LabelWithIcon.tsx +33 -0
  277. package/src/components/NotFoundPage.tsx +25 -0
  278. package/src/components/ReferenceSelectionInner.tsx +364 -0
  279. package/src/components/ReferenceWidget.tsx +145 -0
  280. package/src/components/VirtualTable/VirtualTable.tsx +402 -0
  281. package/src/components/VirtualTable/VirtualTableCell.tsx +36 -0
  282. package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
  283. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
  284. package/src/components/VirtualTable/VirtualTableProps.tsx +270 -0
  285. package/src/components/VirtualTable/VirtualTableRow.tsx +54 -0
  286. package/src/components/VirtualTable/common.tsx +18 -0
  287. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
  288. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
  289. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
  290. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
  291. package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
  292. package/src/components/VirtualTable/index.tsx +2 -0
  293. package/src/components/VirtualTable/types.tsx +44 -0
  294. package/src/components/index.tsx +30 -0
  295. package/src/contexts/AuthControllerContext.tsx +4 -0
  296. package/src/contexts/DataSourceContext.tsx +4 -0
  297. package/src/contexts/DialogsProvider.tsx +52 -0
  298. package/src/contexts/ModeController.tsx +13 -0
  299. package/src/contexts/NavigationContext.tsx +4 -0
  300. package/src/contexts/SideDialogsControllerContext.tsx +4 -0
  301. package/src/contexts/SideEntityControllerContext.tsx +4 -0
  302. package/src/contexts/SnackbarProvider.tsx +12 -0
  303. package/src/contexts/StorageSourceContext.tsx +4 -0
  304. package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
  305. package/src/contexts/index.ts +3 -0
  306. package/src/core/Drawer.tsx +161 -0
  307. package/src/core/EntitySidePanel.tsx +90 -0
  308. package/src/core/FireCMS.tsx +184 -0
  309. package/src/core/NavigationRoutes.tsx +118 -0
  310. package/src/core/Scaffold.tsx +278 -0
  311. package/src/core/SideDialogs.tsx +156 -0
  312. package/src/core/field_configs.tsx +400 -0
  313. package/src/core/index.tsx +14 -0
  314. package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
  315. package/src/core/useBuildModeController.tsx +60 -0
  316. package/src/form/EntityForm.tsx +647 -0
  317. package/src/form/PropertyFieldBinding.tsx +311 -0
  318. package/src/form/components/CustomIdField.tsx +124 -0
  319. package/src/form/components/ErrorFocus.tsx +51 -0
  320. package/src/form/components/FieldHelperText.tsx +58 -0
  321. package/src/form/components/FormikArrayContainer.tsx +44 -0
  322. package/src/form/components/StorageItemPreview.tsx +66 -0
  323. package/src/form/components/StorageUploadProgress.tsx +104 -0
  324. package/src/form/components/SubmitListener.tsx +32 -0
  325. package/src/form/components/SwitchControl.tsx +39 -0
  326. package/src/form/components/index.tsx +3 -0
  327. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
  328. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
  329. package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
  330. package/src/form/field_bindings/DateTimeFieldBinding.tsx +66 -0
  331. package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
  332. package/src/form/field_bindings/MapFieldBinding.tsx +142 -0
  333. package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
  334. package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
  335. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
  336. package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
  337. package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
  338. package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
  339. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
  340. package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
  341. package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
  342. package/src/form/index.tsx +42 -0
  343. package/src/form/useClearRestoreValue.tsx +35 -0
  344. package/src/form/validation.ts +409 -0
  345. package/src/hooks/data/delete.ts +101 -0
  346. package/src/hooks/data/save.ts +165 -0
  347. package/src/hooks/data/useCollectionFetch.tsx +162 -0
  348. package/src/hooks/data/useDataOrder.ts +26 -0
  349. package/src/hooks/data/useDataSource.tsx +9 -0
  350. package/src/hooks/data/useEntityFetch.tsx +129 -0
  351. package/src/hooks/index.tsx +23 -0
  352. package/src/hooks/useAuthController.tsx +14 -0
  353. package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
  354. package/src/hooks/useClipboard.tsx +158 -0
  355. package/src/hooks/useDialogsController.tsx +14 -0
  356. package/src/hooks/useFireCMSContext.tsx +50 -0
  357. package/src/hooks/useLargeLayout.tsx +34 -0
  358. package/src/hooks/useModeController.tsx +24 -0
  359. package/src/hooks/useNavigationController.tsx +12 -0
  360. package/src/hooks/useReferenceDialog.tsx +56 -0
  361. package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
  362. package/src/hooks/useSideDialogsController.tsx +21 -0
  363. package/src/hooks/useSideEntityController.tsx +15 -0
  364. package/src/hooks/useSnackbarController.tsx +76 -0
  365. package/src/hooks/useStorageSource.tsx +9 -0
  366. package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
  367. package/src/index.ts +8 -0
  368. package/src/internal/EntityView.tsx +576 -0
  369. package/src/internal/common.tsx +5 -0
  370. package/src/internal/useBuildDataSource.ts +360 -0
  371. package/src/internal/useBuildNavigationController.tsx +371 -0
  372. package/src/internal/useBuildSideDialogsController.tsx +125 -0
  373. package/src/internal/useBuildSideEntityController.tsx +160 -0
  374. package/src/internal/useLocaleConfig.tsx +18 -0
  375. package/src/internal/useRestoreScroll.tsx +48 -0
  376. package/src/internal/useUnsavedChangesDialog.tsx +106 -0
  377. package/src/preview/PropertyPreview.tsx +222 -0
  378. package/src/preview/PropertyPreviewProps.tsx +59 -0
  379. package/src/preview/components/ArrayEnumPreview.tsx +39 -0
  380. package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
  381. package/src/preview/components/BooleanPreview.tsx +11 -0
  382. package/src/preview/components/DatePreview.tsx +27 -0
  383. package/src/preview/components/EmptyValue.tsx +10 -0
  384. package/src/preview/components/EnumValuesChip.tsx +38 -0
  385. package/src/preview/components/ImagePreview.tsx +106 -0
  386. package/src/preview/components/ReferencePreview.tsx +249 -0
  387. package/src/preview/components/StorageThumbnail.tsx +84 -0
  388. package/src/preview/components/UrlComponentPreview.tsx +79 -0
  389. package/src/preview/index.ts +27 -0
  390. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
  391. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
  392. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
  393. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
  394. package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
  395. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
  396. package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
  397. package/src/preview/property_previews/MapPropertyPreview.tsx +144 -0
  398. package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
  399. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
  400. package/src/preview/property_previews/StringPropertyPreview.tsx +60 -0
  401. package/src/preview/util.ts +31 -0
  402. package/src/types/analytics.ts +34 -0
  403. package/src/types/appcheck.ts +29 -0
  404. package/src/types/auth.tsx +49 -0
  405. package/src/types/collections.ts +530 -0
  406. package/src/types/datasource.ts +389 -0
  407. package/src/types/dialogs_controller.tsx +33 -0
  408. package/src/types/entities.ts +76 -0
  409. package/src/types/entity_actions.tsx +39 -0
  410. package/src/types/entity_callbacks.ts +209 -0
  411. package/src/types/entity_link_builder.ts +8 -0
  412. package/src/types/export_import.ts +26 -0
  413. package/src/types/fields.tsx +220 -0
  414. package/src/types/firecms.tsx +175 -0
  415. package/src/types/firecms_context.tsx +128 -0
  416. package/src/types/index.ts +26 -0
  417. package/src/types/local_config_persistence.tsx +23 -0
  418. package/src/types/locales.ts +81 -0
  419. package/src/types/modify_collections.tsx +6 -0
  420. package/src/types/navigation.ts +214 -0
  421. package/src/types/permissions.ts +76 -0
  422. package/src/types/plugins.tsx +217 -0
  423. package/src/types/properties.ts +851 -0
  424. package/src/types/property_config.tsx +72 -0
  425. package/src/types/resolved_entities.ts +148 -0
  426. package/src/types/side_dialogs_controller.tsx +68 -0
  427. package/src/types/side_entity_controller.tsx +96 -0
  428. package/src/types/storage.ts +96 -0
  429. package/src/types/user.ts +37 -0
  430. package/src/util/arrays.ts +3 -0
  431. package/src/util/builders.ts +139 -0
  432. package/src/util/chip_utils.ts +13 -0
  433. package/src/util/collections.ts +50 -0
  434. package/src/util/common.tsx +2 -0
  435. package/src/util/dates.ts +1 -0
  436. package/src/util/entities.ts +196 -0
  437. package/src/util/enums.ts +57 -0
  438. package/src/util/flatten_object.ts +45 -0
  439. package/src/util/hash.ts +11 -0
  440. package/src/util/icons.tsx +45 -0
  441. package/src/util/index.ts +20 -0
  442. package/src/util/join_collections.ts +172 -0
  443. package/src/util/make_properties_editable.ts +29 -0
  444. package/src/util/navigation_from_path.ts +107 -0
  445. package/src/util/navigation_utils.ts +111 -0
  446. package/src/util/objects.ts +168 -0
  447. package/src/util/os.ts +13 -0
  448. package/src/util/parent_references_from_path.ts +56 -0
  449. package/src/util/paths.ts +27 -0
  450. package/src/util/permissions.ts +80 -0
  451. package/src/util/plurals.ts +190 -0
  452. package/src/util/property_utils.tsx +130 -0
  453. package/src/util/references.ts +20 -0
  454. package/src/util/regexp.ts +32 -0
  455. package/src/util/resolutions.ts +399 -0
  456. package/src/util/storage.ts +92 -0
  457. package/src/util/strings.ts +62 -0
  458. package/src/util/useDebounce.ts +25 -0
  459. package/src/util/useStorageUploadController.tsx +243 -0
  460. package/src/util/useTraceUpdate.tsx +23 -0
@@ -0,0 +1,209 @@
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
+ /**
8
+ * This interface defines all the callbacks that can be used when an entity
9
+ * is being created, updated or deleted.
10
+ * Useful for adding your own logic or blocking the execution of the operation.
11
+ * @group Models
12
+ */
13
+ export type EntityCallbacks<M extends Record<string, any> = any, UserType extends User = User> = {
14
+
15
+ /**
16
+ * Callback used after fetching data
17
+ * @param entityFetchProps
18
+ */
19
+ onFetch?(entityFetchProps: EntityOnFetchProps<M, UserType>)
20
+ : Promise<Entity<M>> | Entity<M>;
21
+
22
+ /**
23
+ * Callback used when save is successful
24
+ * @param entitySaveProps
25
+ */
26
+ onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M, UserType>)
27
+ : Promise<void> | void;
28
+
29
+ /**
30
+ * Callback used when saving fails
31
+ * @param entitySaveProps
32
+ */
33
+ onSaveFailure?(entitySaveProps: EntityOnSaveProps<M, UserType>)
34
+ : Promise<void> | void;
35
+
36
+ /**
37
+ * Callback used before saving, you need to return the values that will get
38
+ * saved. If you throw an error in this method the process stops, and an
39
+ * error snackbar gets displayed.
40
+ * @param entitySaveProps
41
+ */
42
+ onPreSave?(entitySaveProps: EntityOnSaveProps<M, UserType>)
43
+ : Promise<Partial<EntityValues<M>>> | Partial<EntityValues<M>>;
44
+
45
+ /**
46
+ * Callback used after the entity is deleted.
47
+ * If you throw an error in this method the process stops, and an
48
+ * error snackbar gets displayed.
49
+ *
50
+ * @param entityDeleteProps
51
+ */
52
+ onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M, UserType>): void;
53
+
54
+ /**
55
+ * Callback used after the entity is deleted.
56
+ *
57
+ * @param entityDeleteProps
58
+ */
59
+ onDelete?(entityDeleteProps: EntityOnDeleteProps<M, UserType>): void;
60
+
61
+ /**
62
+ * Callback fired when any value in the form changes. You can use it
63
+ * to define the ID of a `new` entity based on the current values.
64
+ * The returned string will be used as the ID of the entity.
65
+ *
66
+ * @param idUpdateProps
67
+ */
68
+ onIdUpdate?(idUpdateProps: EntityIdUpdateProps<M>): string;
69
+ }
70
+
71
+ /**
72
+ * Parameters passed to hooks when an entity is fetched
73
+ * @group Models
74
+ */
75
+ export interface EntityOnFetchProps<M extends Record<string, any> = any, UserType extends User = User> {
76
+
77
+ /**
78
+ * Collection of the entity
79
+ */
80
+ collection: EntityCollection<M>;
81
+
82
+ /**
83
+ * Full path of the CMS where this collection is being fetched.
84
+ * Might contain unresolved aliases.
85
+ */
86
+ path: string;
87
+
88
+ /**
89
+ * Fetched entity
90
+ */
91
+ entity: Entity<M>
92
+
93
+ /**
94
+ * Context of the app status
95
+ */
96
+ context: FireCMSContext<UserType>;
97
+ }
98
+
99
+ /**
100
+ * Parameters passed to hooks when an entity is saved
101
+ * @group Models
102
+ */
103
+ export interface EntityOnSaveProps<M extends Record<string, any> = any, UserType extends User = User> {
104
+
105
+ /**
106
+ * Resolved collection of the entity
107
+ */
108
+ collection: ResolvedEntityCollection<M>;
109
+
110
+ /**
111
+ * Full path of the CMS where this entity is being saved.
112
+ * Might contain unresolved aliases.
113
+ */
114
+ path: string;
115
+
116
+ /**
117
+ * Full path where this entity is being saved, with alias resolved
118
+ */
119
+ resolvedPath: string;
120
+
121
+ /**
122
+ * ID of the entity
123
+ */
124
+ entityId?: string;
125
+
126
+ /**
127
+ * Values being saved
128
+ */
129
+ values: Partial<EntityValues<M>>;
130
+
131
+ /**
132
+ * Previous values
133
+ */
134
+ previousValues?: Partial<EntityValues<M>>;
135
+
136
+ /**
137
+ * New or existing entity
138
+ */
139
+ status: EntityStatus;
140
+
141
+ /**
142
+ * Context of the app status
143
+ */
144
+ context: FireCMSContext<UserType>;
145
+ }
146
+
147
+ /**
148
+ * Parameters passed to hooks when an entity is deleted
149
+ * @group Models
150
+ */
151
+ export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserType extends User = User> {
152
+
153
+ /**
154
+ * collection of the entity being deleted
155
+ */
156
+ collection: ResolvedEntityCollection<M>;
157
+
158
+ /**
159
+ * Path of the parent collection
160
+ */
161
+ path: string;
162
+
163
+ /**
164
+ * Deleted entity id
165
+ */
166
+ entityId: string;
167
+
168
+ /**
169
+ * Deleted entity
170
+ */
171
+ entity: Entity<M>;
172
+
173
+ /**
174
+ * Context of the app status
175
+ */
176
+ context: FireCMSContext;
177
+ }
178
+
179
+ /**
180
+ * Parameters passed to hooks when an entity is deleted
181
+ * @group Models
182
+ */
183
+ export interface EntityIdUpdateProps<M extends Record<string, any> = any> {
184
+
185
+ /**
186
+ * collection of the entity being deleted
187
+ */
188
+ collection: ResolvedEntityCollection<M>;
189
+
190
+ /**
191
+ * Path of the parent collection
192
+ */
193
+ path: string;
194
+
195
+ /**
196
+ * Current entity id
197
+ */
198
+ entityId?: string;
199
+
200
+ /**
201
+ * Entity values
202
+ */
203
+ values: EntityValues<M>;
204
+
205
+ /**
206
+ * Context of the app status
207
+ */
208
+ context: FireCMSContext;
209
+ }
@@ -0,0 +1,8 @@
1
+ import { Entity } from "./entities";
2
+
3
+ /**
4
+ * @group Models
5
+ */
6
+ export type EntityLinkBuilder<M extends Record<string, any> = any> = ({ entity }: {
7
+ entity: Entity<M>
8
+ }) => string;
@@ -0,0 +1,26 @@
1
+ import { User } from "./user";
2
+ import { Entity } from "./entities";
3
+ import { FireCMSContext } from "./firecms_context";
4
+
5
+ /**
6
+ * You can use this configuration to add additional fields to the data
7
+ * exports
8
+ * @group Models
9
+ */
10
+ export interface ExportConfig<UserType extends User = User> {
11
+ additionalFields: ExportMappingFunction<UserType> [];
12
+ }
13
+
14
+ /**
15
+ * @group Models
16
+ */
17
+ export interface ExportMappingFunction<UserType extends User = User> {
18
+ key: string;
19
+ builder: ({
20
+ entity,
21
+ context
22
+ }: {
23
+ entity: Entity<any>,
24
+ context: FireCMSContext<UserType>
25
+ }) => Promise<string> | string;
26
+ }
@@ -0,0 +1,220 @@
1
+ import { EntityValues } from "./entities";
2
+ import { CMSType, PropertyOrBuilder } from "./properties";
3
+ import { ResolvedEntityCollection, ResolvedProperty } from "./resolved_entities";
4
+
5
+ /**
6
+ * When building a custom field you need to create a React component that takes
7
+ * this interface as props.
8
+ *
9
+ * @group Form custom fields
10
+ */
11
+ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extends Record<string, any> = any> {
12
+
13
+ /**
14
+ * Key of the property
15
+ * E.g. "user.name" for a property with path "user.name"
16
+ */
17
+ propertyKey: string;
18
+
19
+ /**
20
+ * Current value of this field
21
+ */
22
+ value: T;
23
+
24
+ /**
25
+ * Initial value of this field
26
+ */
27
+ initialValue: T | undefined;
28
+
29
+ /**
30
+ * Set value of field directly
31
+ */
32
+ setValue: (value: T | null, shouldValidate?: boolean) => void;
33
+
34
+ /**
35
+ * Set value of a different field directly
36
+ * @param propertyKey
37
+ * @param value
38
+ * @param shouldValidate
39
+ */
40
+ setFieldValue: (propertyKey: string, value: CMSType | null, shouldValidate?: boolean) => void;
41
+
42
+ /**
43
+ * Is the form currently submitting
44
+ */
45
+ isSubmitting: boolean;
46
+
47
+ /**
48
+ * Should this field show the error indicator.
49
+ * Note that there might be an error (like an empty field that should be
50
+ * filled) but we don't want to show the error until the user has tried
51
+ * saving.
52
+ */
53
+ showError: boolean;
54
+
55
+ /**
56
+ * Is there an error in this field. The error field has the same shape as
57
+ * the field, replacing values with a string containing the error.
58
+ * It takes the value `null` if there is no error
59
+ */
60
+ error: any | null;
61
+
62
+ /**
63
+ * Has this field been touched
64
+ */
65
+ touched: boolean;
66
+
67
+ /**
68
+ * Property related to this field
69
+ */
70
+ property: ResolvedProperty<T>;
71
+
72
+ /**
73
+ * Should this field include a description
74
+ */
75
+ includeDescription: boolean;
76
+
77
+ /**
78
+ * Flag to indicate that the underlying value has been updated in the
79
+ * datasource
80
+ */
81
+ underlyingValueHasChanged: boolean;
82
+
83
+ /**
84
+ * Is this field part of an array
85
+ */
86
+ partOfArray: boolean;
87
+
88
+ /**
89
+ * Is this field part of a block (oneOf array)
90
+ */
91
+ partOfBlock: boolean;
92
+
93
+ /**
94
+ * Is this field being rendered in the entity table popup
95
+ */
96
+ tableMode: boolean;
97
+
98
+ /**
99
+ * Should this field autofocus on mount
100
+ */
101
+ autoFocus: boolean;
102
+
103
+ /**
104
+ * Additional properties set by the developer
105
+ */
106
+ customProps: CustomProps
107
+
108
+ /**
109
+ * Additional values related to the state of the form or the entity
110
+ */
111
+ context: FormContext<M>;
112
+
113
+ /**
114
+ * Flag to indicate if this field should be disabled
115
+ */
116
+ disabled: boolean;
117
+
118
+ }
119
+
120
+ /**
121
+ * Context passed to custom fields
122
+ * @group Form custom fields
123
+ */
124
+ export interface FormContext<M extends Record<string, any> = any> {
125
+
126
+ /**
127
+ * Collection of the entity being modified
128
+ */
129
+ collection: ResolvedEntityCollection<M>;
130
+
131
+ /**
132
+ * Current values of the entity
133
+ */
134
+ values: EntityValues<M>;
135
+
136
+ /**
137
+ * Entity id, it can be null if it's a new entity
138
+ */
139
+ entityId?: string;
140
+
141
+ /**
142
+ * Path this entity is located at
143
+ */
144
+ path: string;
145
+
146
+ /**
147
+ * Update the value of a field
148
+ * @param key
149
+ * @param value
150
+ * @param shouldValidate
151
+ */
152
+ setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
153
+
154
+ /**
155
+ * Save the entity
156
+ */
157
+ save: (values: EntityValues<M>) => void;
158
+ }
159
+
160
+ /**
161
+ * In case you need to render a field bound to a Property inside your
162
+ * custom field you can use {@link PropertyFieldBinding} with these props.
163
+ * @group Form custom fields
164
+ */
165
+ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<string, any> = any> {
166
+
167
+ /**
168
+ * The key/path of the property, such as `age`. You can use nested and array
169
+ * indexed such as `address.street` or `people[3]`
170
+ */
171
+ propertyKey: string;
172
+
173
+ /**
174
+ * The CMS property you are binding this field to
175
+ */
176
+ property: PropertyOrBuilder<T> | ResolvedProperty<T>;
177
+
178
+ /**
179
+ * The context where this field is being rendered. You get a context as a
180
+ * prop when creating a custom field.
181
+ */
182
+ context: FormContext<M>;
183
+
184
+ /**
185
+ * Should the description be included in this field
186
+ */
187
+ includeDescription?: boolean;
188
+
189
+ /**
190
+ * Has the value of this property been updated in the database while this
191
+ * field is being edited
192
+ */
193
+ underlyingValueHasChanged?: boolean;
194
+
195
+ /**
196
+ * Is this field being rendered in a table
197
+ */
198
+ tableMode?: boolean;
199
+
200
+ /**
201
+ * Is this field part of an array
202
+ */
203
+ partOfArray?: boolean;
204
+
205
+ /**
206
+ * Is this field part of a block (oneOf array)
207
+ */
208
+ partOfBlock?: boolean;
209
+
210
+ /**
211
+ * Should the field take focus when rendered. When opening the popup view
212
+ * in table mode, it makes sense to put the focus on the only field rendered.
213
+ */
214
+ autoFocus?: boolean;
215
+
216
+ /**
217
+ * Should this field be disabled
218
+ */
219
+ disabled?: boolean;
220
+ }
@@ -0,0 +1,175 @@
1
+ import React from "react";
2
+ import { User } from "./user";
3
+ import { AuthController } from "./auth";
4
+ import { DataSourceDelegate } from "./datasource";
5
+ import { EntityCollection, EntityCustomView } from "./collections";
6
+ import { CMSView } from "./navigation";
7
+ import { FireCMSContext } from "./firecms_context";
8
+ import { PropertyConfig } from "./property_config";
9
+ import { Locale } from "./locales";
10
+ import { StorageSource } from "./storage";
11
+ import { EntityLinkBuilder } from "./entity_link_builder";
12
+ import { UserConfigurationPersistence } from "./local_config_persistence";
13
+ import { FireCMSPlugin } from "./plugins";
14
+ import { CMSAnalyticsEvent } from "./analytics";
15
+
16
+ /**
17
+ * Use this callback to build entity collections dynamically.
18
+ * You can use the user to decide which collections to show.
19
+ * You can also use the data source to fetch additional data to build the
20
+ * collections.
21
+ * Note: you can use any type of synchronous or asynchronous code here,
22
+ * including fetching data from external sources, like using the Firestore
23
+ * APIs directly, or a REST API.
24
+ * @group Models
25
+ */
26
+ export type EntityCollectionsBuilder<EC extends EntityCollection = EntityCollection> = (params: {
27
+ user: User | null,
28
+ authController: AuthController,
29
+ dataSource: DataSourceDelegate
30
+ }) => EC[] | Promise<EC[]>;
31
+
32
+ /**
33
+ * Use this callback to build custom views dynamically.
34
+ * You can use the user to decide which views to show.
35
+ * You can also use the data source to fetch additional data to build the
36
+ * views. Note: you can use any type of synchronous or asynchronous code here,
37
+ * including fetching data from external sources, like using the Firestore
38
+ * APIs directly, or a REST API.
39
+ * @group Models
40
+ */
41
+ export type CMSViewsBuilder = (params: {
42
+ user: User | null,
43
+ authController: AuthController,
44
+ dataSource: DataSourceDelegate
45
+ }) => CMSView[] | Promise<CMSView[]>;
46
+
47
+ /**
48
+ * @group Models
49
+ */
50
+ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
51
+
52
+ /**
53
+ * Use this function to return the components you want to render under
54
+ * FireCMS
55
+ * @param props
56
+ */
57
+ children: (props: {
58
+ /**
59
+ * Context of the app
60
+ */
61
+ context: FireCMSContext;
62
+ /**
63
+ * Is one of the main processes, auth and navigation resolving, currently
64
+ * loading. If you are building your custom implementation, you probably
65
+ * want to show a loading indicator if this flag is `true`
66
+ */
67
+ loading: boolean;
68
+ }) => React.ReactNode;
69
+
70
+ /**
71
+ * List of the mapped collections in the CMS.
72
+ * Each entry relates to a collection in the root database.
73
+ * Each of the navigation entries in this field
74
+ * generates an entry in the main menu.
75
+ */
76
+ collections?: EC[] | EntityCollectionsBuilder<EC>;
77
+
78
+ /**
79
+ * Custom additional views created by the developer, added to the main
80
+ * navigation
81
+ */
82
+ views?: CMSView[] | CMSViewsBuilder;
83
+
84
+ /**
85
+ * Record of custom form fields to be used in the CMS.
86
+ * You can use the key to reference the custom field in
87
+ * the `propertyConfig` prop of a property in a collection.
88
+ */
89
+ propertyConfigs?: Record<string, PropertyConfig>;
90
+
91
+ /**
92
+ * List of additional custom views for entities.
93
+ * You can use the key to reference the custom view in
94
+ * the `entityViews` prop of a collection.
95
+ *
96
+ * You can also define an entity view from the UI.
97
+ */
98
+
99
+ entityViews?: EntityCustomView[];
100
+
101
+ /**
102
+ * Format of the dates in the CMS.
103
+ * Defaults to 'MMMM dd, yyyy, HH:mm:ss'
104
+ */
105
+ dateTimeFormat?: string;
106
+
107
+ /**
108
+ * Locale of the CMS, currently only affecting dates
109
+ */
110
+ locale?: Locale;
111
+
112
+ /**
113
+ * Connector to your database
114
+ */
115
+ dataSourceDelegate: DataSourceDelegate;
116
+
117
+ /**
118
+ * Connector to your file upload/fetch implementation
119
+ */
120
+ storageSource: StorageSource;
121
+
122
+ /**
123
+ * Delegate for implementing your auth operations.
124
+ */
125
+ authController: AuthController<UserType>;
126
+
127
+ /**
128
+ * Path under the navigation routes of the CMS will be created. Defaults to `/`.
129
+ * Internally FireCMS uses `react-router` to create the routes, the base path is attached to the
130
+ * `BrowserRouter` component. If you are using FireCMS in a subpath of your website, you can use
131
+ * this prop to specify the base path.
132
+ */
133
+ basePath?: string;
134
+
135
+ /**
136
+ * Path under the collection routes of the CMS will be created.
137
+ * Defaults to `/c`.
138
+ */
139
+ baseCollectionPath?: string;
140
+
141
+ /**
142
+ * Use this controller to access the configuration that is stored locally,
143
+ * and not defined in code
144
+ */
145
+ userConfigPersistence?: UserConfigurationPersistence;
146
+
147
+ /**
148
+ * Use plugins to modify the behaviour of the CMS.
149
+ * Currently, in ALPHA, and likely subject to change.
150
+ */
151
+ plugins?: FireCMSPlugin<any, any, any>[];
152
+
153
+ /**
154
+ * Callback used to get analytics events from the CMS
155
+ */
156
+ onAnalyticsEvent?: (event: CMSAnalyticsEvent, data?: object) => void;
157
+
158
+ /**
159
+ * Optional link builder you can add to generate a button in your entity forms.
160
+ * The function must return a URL that gets opened when the button is clicked
161
+ */
162
+ entityLinkBuilder?: EntityLinkBuilder;
163
+
164
+ components?: {
165
+
166
+ /**
167
+ * Component to render when a reference is missing
168
+ */
169
+ missingReference?: React.ComponentType<{
170
+ path: string,
171
+ }>;
172
+
173
+ }
174
+
175
+ };