@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,72 @@
1
+ import React from "react";
2
+ import { CMSType, PropertyOrBuilder } from "./properties";
3
+
4
+ /**
5
+ * This is the configuration object for a property.
6
+ * These configs are generated by default for the properties defined in your
7
+ * collections' configuration, but you can define your own to be used.
8
+ */
9
+ export type PropertyConfig<T extends CMSType = any> = {
10
+
11
+ /**
12
+ * Key used to identify this property config.
13
+ */
14
+ key: string,
15
+
16
+ /**
17
+ * Name of this field type.
18
+ * This is not the name of the property.
19
+ */
20
+ name: string;
21
+
22
+ /**
23
+ * Default config for the property.
24
+ * This property or builder will be used as the base values for the resulting property.
25
+ * You can also use a builder function to generate the base property.
26
+ * You can use a builder function to generate the property based on the values or the path.
27
+ * You can also define a custom Field as a React component to be used for this property.
28
+ */
29
+ property: PropertyOrBuilder<T>;
30
+
31
+ /**
32
+ * Optional icon to be used in the field selector.
33
+ * Use a 24x24 component, in order not to break the layout.
34
+ * Any FireCMS icon can be used.
35
+ */
36
+ Icon?: React.ComponentType;
37
+
38
+ /**
39
+ * CSS color, used only in some plugins like the field selector.
40
+ * e.g. "#2d7ff9"
41
+ */
42
+ color?: string;
43
+
44
+ /**
45
+ * Description of this field type.
46
+ */
47
+ description?: string;
48
+
49
+ }
50
+
51
+ export type FieldConfigId =
52
+ "text_field" |
53
+ "multiline" |
54
+ "markdown" |
55
+ "url" |
56
+ "email" |
57
+ "select" |
58
+ "multi_select" |
59
+ "number_input" |
60
+ "number_select" |
61
+ "multi_number_select" |
62
+ "file_upload" |
63
+ "multi_file_upload" |
64
+ "group" |
65
+ "key_value" |
66
+ "reference" |
67
+ "multi_references" |
68
+ "switch" |
69
+ "date_time" |
70
+ "repeat" |
71
+ "custom_array" |
72
+ "block";
@@ -0,0 +1,148 @@
1
+ import {
2
+ ArrayProperty,
3
+ BooleanProperty,
4
+ CMSType,
5
+ DateProperty,
6
+ EnumValueConfig,
7
+ GeopointProperty,
8
+ MapProperty,
9
+ NumberProperty,
10
+ ReferenceProperty,
11
+ StringProperty
12
+ } from "./properties";
13
+ import { EntityReference, GeoPoint } from "./entities";
14
+ import { EntityCollection } from "./collections";
15
+
16
+ /**
17
+ * This is the same entity collection you define, only all the property builders
18
+ * are resolved to regular `Property` objects.
19
+ * @group Models
20
+ */
21
+ export type ResolvedEntityCollection<M extends Record<string, any> = any> =
22
+ Omit<EntityCollection<M>, "properties">
23
+ &
24
+ {
25
+ properties: ResolvedProperties<M>,
26
+ originalCollection: EntityCollection<M>,
27
+ editable?: boolean;
28
+ }
29
+
30
+ /**
31
+ * @group Entity properties
32
+ */
33
+ export type ResolvedProperty<T extends CMSType = CMSType> =
34
+ T extends string ? ResolvedStringProperty :
35
+ T extends number ? ResolvedNumberProperty :
36
+ T extends boolean ? ResolvedBooleanProperty :
37
+ T extends Date ? ResolvedTimestampProperty :
38
+ T extends GeoPoint ? ResolvedGeopointProperty :
39
+ T extends EntityReference ? ResolvedReferenceProperty :
40
+ T extends CMSType[] ? ResolvedArrayProperty<T> :
41
+ T extends Record<string, any> ? ResolvedMapProperty<T> : any;
42
+
43
+ /**
44
+ * @group Entity properties
45
+ */
46
+ export type ResolvedProperties<M extends Record<string, any> = any> = {
47
+ [k in keyof M]: ResolvedProperty<M[keyof M]>;
48
+ };
49
+
50
+ /**
51
+ * @group Entity properties
52
+ */
53
+ export type ResolvedStringProperty =
54
+ Omit<StringProperty, "enumValues" | "dataType"> &
55
+ {
56
+ dataType: "string";
57
+ resolved: true;
58
+ enumValues?: EnumValueConfig[];
59
+ fromBuilder: boolean;
60
+ }
61
+
62
+ /**
63
+ * @group Entity properties
64
+ */
65
+ export type ResolvedNumberProperty =
66
+ Omit<NumberProperty, "enumValues" | "dataType"> &
67
+ {
68
+ dataType: "number";
69
+ resolved: true;
70
+ enumValues?: EnumValueConfig[];
71
+ fromBuilder: boolean;
72
+ }
73
+
74
+ /**
75
+ * @group Entity properties
76
+ */
77
+ export type ResolvedBooleanProperty =
78
+ Omit<BooleanProperty, "dataType"> &
79
+ {
80
+ dataType: "boolean";
81
+ resolved: true;
82
+ fromBuilder: boolean;
83
+ }
84
+
85
+ /**
86
+ * @group Entity properties
87
+ */
88
+ export type ResolvedTimestampProperty =
89
+ Omit<DateProperty, "dataType"> &
90
+ {
91
+ dataType: "date";
92
+ resolved: true;
93
+ fromBuilder: boolean;
94
+ }
95
+
96
+ /**
97
+ * @group Entity properties
98
+ */
99
+ export type ResolvedGeopointProperty =
100
+ Omit<GeopointProperty, "dataType"> &
101
+ {
102
+ dataType: "geopoint";
103
+ resolved: true;
104
+ fromBuilder: boolean;
105
+ }
106
+
107
+ /**
108
+ * @group Entity properties
109
+ */
110
+ export type ResolvedReferenceProperty =
111
+ Omit<ReferenceProperty, "dataType"> &
112
+ {
113
+ dataType: "reference";
114
+ resolved: true;
115
+ fromBuilder: boolean;
116
+ }
117
+
118
+ /**
119
+ * @group Entity properties
120
+ */
121
+ export type ResolvedArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = CMSType>
122
+ =
123
+ Omit<ArrayProperty, "of" | "oneOf" | "dataType"> &
124
+ {
125
+ dataType: "array";
126
+ resolved: true;
127
+ of?: ResolvedProperty<any> | ResolvedProperty<any>[],
128
+ oneOf?: {
129
+ properties: ResolvedProperties
130
+ typeField?: string;
131
+ valueField?: string;
132
+ },
133
+ resolvedProperties: ResolvedProperty<any>[];
134
+ fromBuilder: boolean;
135
+ }
136
+
137
+ /**
138
+ * @group Entity properties
139
+ */
140
+ export type ResolvedMapProperty<T extends Record<string, any> = any> =
141
+ Omit<MapProperty, "properties" | "dataType" | "propertiesOrder"> &
142
+ {
143
+ dataType: "map";
144
+ resolved: true;
145
+ properties?: ResolvedProperties<T>;
146
+ propertiesOrder?: Extract<keyof T, string>[];
147
+ fromBuilder: boolean;
148
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Controller to open the side dialog
3
+ * @group Hooks and utilities
4
+ */
5
+ export interface SideDialogsController {
6
+
7
+ /**
8
+ * Close the last panel
9
+ */
10
+ close: () => void;
11
+
12
+ /**
13
+ * List of side panels currently open
14
+ */
15
+ sidePanels: SideDialogPanelProps[];
16
+
17
+ /**
18
+ * Open one or multiple side panels
19
+ * @param props
20
+ */
21
+ open: (panelProps: SideDialogPanelProps | SideDialogPanelProps[]) => void;
22
+
23
+ /**
24
+ * Replace the last open panel with the given one
25
+ * @param props
26
+ */
27
+ replace: (panelProps: SideDialogPanelProps | SideDialogPanelProps[]) => void;
28
+ }
29
+
30
+ /**
31
+ * Props used to open a side dialog
32
+ * @group Hooks and utilities
33
+ */
34
+ export interface SideDialogPanelProps {
35
+
36
+ /**
37
+ * A key that identifies this panel
38
+ */
39
+ key: string;
40
+
41
+ /**
42
+ * The component type that will be rendered
43
+ */
44
+ component: React.ReactNode;
45
+
46
+ /**
47
+ * Optional width of the panel
48
+ */
49
+ width?: string;
50
+
51
+ /**
52
+ * When open, change the URL to this path.
53
+ * Note that if you want to restore state from a URL you need to add the
54
+ * logic yourself by listening to URL updates, and probably call `open`.
55
+ */
56
+ urlPath?: string;
57
+
58
+ /**
59
+ * If the navigation stack is empty (you landed in the `urlPath` url), what
60
+ * url path to change to when the panel gets closed.
61
+ */
62
+ parentUrlPath?: string;
63
+
64
+ /**
65
+ * Callback when the panel is closed
66
+ */
67
+ onClose?: () => void;
68
+ }
@@ -0,0 +1,96 @@
1
+ import { EntityCollection } from "./collections";
2
+ import { ResolvedEntityCollection } from "./resolved_entities";
3
+ import { Entity } from "./entities";
4
+
5
+ /**
6
+ * Props used to open a side dialog
7
+ * @group Hooks and utilities
8
+ */
9
+ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
10
+
11
+ /**
12
+ * Absolute path of the entity
13
+ */
14
+ path: string;
15
+
16
+ /**
17
+ * ID of the entity, if not set, it means we are creating a new entity
18
+ */
19
+ entityId?: string;
20
+
21
+ /**
22
+ * Set this flag to true if you want to make a copy of an existing entity
23
+ */
24
+ copy?: boolean;
25
+
26
+ /**
27
+ * Open the entity with a selected sub-collection view. If the panel for this
28
+ * entity was already open, it is replaced.
29
+ */
30
+ selectedSubPath?: string;
31
+
32
+ /**
33
+ * Use this prop to override the width of the form view.
34
+ * e.g. "600px"
35
+ */
36
+ width?: number | string;
37
+
38
+ /**
39
+ * Collection representing the entities of this view.
40
+ * If you leave it blank it will be induced by your navigation
41
+ */
42
+ collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
43
+
44
+ /**
45
+ * Should update the URL when opening the dialog.
46
+ * Consider that if the collection that you provide is not defined in the base
47
+ * config of your `FireCMS` component, you will not be able to recreate
48
+ * the state if copying the URL to a different window.
49
+ */
50
+ updateUrl?: boolean;
51
+
52
+ /**
53
+ * Callback when the entity is updated
54
+ * @param params
55
+ */
56
+ onUpdate?: (params: { entity: Entity<any> }) => void;
57
+
58
+ /**
59
+ * Callback when the dialog is closed
60
+ */
61
+ onClose?: () => void;
62
+
63
+ /**
64
+ * Should this panel close when saving
65
+ */
66
+ closeOnSave?: boolean;
67
+
68
+ }
69
+
70
+ /**
71
+ * Controller to open the side dialog displaying entity forms
72
+ * @group Hooks and utilities
73
+ */
74
+ export interface SideEntityController {
75
+ /**
76
+ * Close the last panel
77
+ */
78
+ close: () => void;
79
+
80
+ /**
81
+ * Open a new entity sideDialog. By default, the collection and configuration
82
+ * of the view is fetched from the collections you have specified in the
83
+ * navigation.
84
+ * At least you need to pass the path of the entity you would like
85
+ * to edit. You can set an entityId if you would like to edit and existing one
86
+ * (or a new one with that id).
87
+ * @param props
88
+ */
89
+ open: <M extends Record<string, any> = any>(props: EntitySidePanelProps<M>) => void;
90
+
91
+ /**
92
+ * Replace the last open entity panel with the given one.
93
+ * @param props
94
+ */
95
+ replace: <M extends Record<string, any> = any>(props: EntitySidePanelProps<M>) => void;
96
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @group Models
3
+ */
4
+ export interface UploadFileProps {
5
+ file: File,
6
+ fileName?: string,
7
+ path?: string,
8
+ metadata?: any,
9
+ }
10
+
11
+ /**
12
+ * @group Models
13
+ */
14
+ export interface UploadFileResult {
15
+ /**
16
+ * Storage path including the file name where the file was uploaded.
17
+ */
18
+ path: string;
19
+ }
20
+
21
+ /**
22
+ * @group Models
23
+ */
24
+ export interface DownloadConfig {
25
+ /**
26
+ * Temporal url that can be used to download the file
27
+ */
28
+ url: string | null;
29
+
30
+ metadata?: DownloadMetadata;
31
+
32
+ fileNotFound?: boolean;
33
+ }
34
+
35
+ /**
36
+ * The full set of object metadata, including read-only properties.
37
+ * @public
38
+ */
39
+ export declare interface DownloadMetadata {
40
+ /**
41
+ * The bucket this object is contained in.
42
+ */
43
+ bucket: string;
44
+ /**
45
+ * The full path of this object.
46
+ */
47
+ fullPath: string;
48
+ /**
49
+ * The short name of this object, which is the last component of the full path.
50
+ * For example, if fullPath is 'full/path/image.png', name is 'image.png'.
51
+ */
52
+ name: string;
53
+ /**
54
+ * The size of this object, in bytes.
55
+ */
56
+ size: number;
57
+ /**
58
+ * Type of the uploaded file
59
+ * e.g. "image/jpeg"
60
+ */
61
+ contentType: string;
62
+
63
+ customMetadata: Record<string, unknown>;
64
+ }
65
+
66
+ /**
67
+ * @group Models
68
+ */
69
+ export interface StorageSource {
70
+ /**
71
+ * Upload a file, specifying a name and a path
72
+ * @param file
73
+ * @param fileName
74
+ * @param path
75
+ * @param metadata
76
+ */
77
+ uploadFile: ({
78
+ file,
79
+ fileName,
80
+ path,
81
+ metadata
82
+ }: UploadFileProps) => Promise<UploadFileResult>;
83
+
84
+ /**
85
+ * Convert a storage path or URL into a download configuration
86
+ * @param path
87
+ */
88
+ getDownloadURL: (pathOrUrl: string) => Promise<DownloadConfig>;
89
+
90
+ /**
91
+ * Get a file from a storage path.
92
+ * It returns null if the file does not exist.
93
+ * @param props
94
+ */
95
+ getFile: (path:string) => Promise<File | null>;
96
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * This interface represents a user.
3
+ * It has some of the same fields as a Firebase User.
4
+ * Note that in the default implementation, we simply take the Firebase user
5
+ * and use it as a FireCMS user, so that means that even if they are not mapped
6
+ * in this interface, it contains all the methods of the former, such as `delete`,
7
+ * `getIdToken`, etc.
8
+ *
9
+ * @group Models
10
+ */
11
+ export type User = {
12
+ /**
13
+ * The user's unique ID, scoped to the project.
14
+ */
15
+ readonly uid: string;
16
+ /**
17
+ * The display name of the user.
18
+ */
19
+ readonly displayName: string | null;
20
+ /**
21
+ * The email of the user.
22
+ */
23
+ readonly email: string | null;
24
+ /**
25
+ * The profile photo URL of the user.
26
+ */
27
+ readonly photoURL: string | null;
28
+ /**
29
+ * The provider used to authenticate the user.
30
+ */
31
+ readonly providerId: string;
32
+ /**
33
+ *
34
+ */
35
+ readonly isAnonymous: boolean;
36
+
37
+ };
@@ -0,0 +1,3 @@
1
+ export function toArray<T>(input?: T | T[]): T[] {
2
+ return Array.isArray(input) ? input : (input ? [input] : []);
3
+ }
@@ -0,0 +1,139 @@
1
+ import {
2
+ AdditionalFieldDelegate,
3
+ ArrayProperty,
4
+ BooleanProperty,
5
+ CMSType,
6
+ DateProperty,
7
+ EntityCallbacks,
8
+ EntityCollection,
9
+ EnumValueConfig,
10
+ EnumValues,
11
+ GeopointProperty,
12
+ MapProperty,
13
+ NumberProperty,
14
+ PropertiesOrBuilders,
15
+ PropertyBuilder,
16
+ PropertyConfig,
17
+ PropertyOrBuilder,
18
+ ReferenceProperty,
19
+ StringProperty,
20
+ User
21
+ } from "../types";
22
+
23
+ /**
24
+ * Identity function we use to defeat the type system of Typescript and build
25
+ * collection views with all its properties
26
+ * @param collection
27
+ * @group Builder
28
+ */
29
+ export function buildCollection<M extends Record<string, any> = any,
30
+ UserType extends User = User>(
31
+ collection: EntityCollection<M, UserType>
32
+ ): EntityCollection<M, UserType> {
33
+ return collection;
34
+ }
35
+
36
+ /**
37
+ * Identity function we use to defeat the type system of Typescript and preserve
38
+ * the property keys.
39
+ * @param property
40
+ * @group Builder
41
+ */
42
+ export function buildProperty<T extends CMSType = CMSType, P extends PropertyOrBuilder<T> = PropertyOrBuilder<T>, M extends Record<string, any> = Record<string, any>>(
43
+ property: P
44
+ ):
45
+ P extends StringProperty ? StringProperty :
46
+ P extends NumberProperty ? NumberProperty :
47
+ P extends BooleanProperty ? BooleanProperty :
48
+ P extends DateProperty ? DateProperty :
49
+ P extends GeopointProperty ? GeopointProperty :
50
+ P extends ReferenceProperty ? ReferenceProperty :
51
+ P extends ArrayProperty ? ArrayProperty :
52
+ P extends MapProperty ? MapProperty :
53
+ P extends PropertyBuilder<T, M> ? PropertyBuilder<T, M> : never {
54
+ return property as any;
55
+ }
56
+
57
+ /**
58
+ * Identity function we use to defeat the type system of Typescript and preserve
59
+ * the properties keys.
60
+ * @param properties
61
+ * @group Builder
62
+ */
63
+ export function buildProperties<M extends Record<string, any>>(
64
+ properties: PropertiesOrBuilders<M>
65
+ ): PropertiesOrBuilders<M> {
66
+ return properties;
67
+ }
68
+
69
+ /**
70
+ * Identity function we use to defeat the type system of Typescript and preserve
71
+ * the properties keys.
72
+ * @param propertiesOrBuilder
73
+ * @group Builder
74
+ */
75
+ export function buildPropertiesOrBuilder<M extends Record<string, any>>(
76
+ propertiesOrBuilder: PropertiesOrBuilders<M>
77
+ ): PropertiesOrBuilders<M> {
78
+ return propertiesOrBuilder;
79
+ }
80
+
81
+ /**
82
+ * Identity function we use to defeat the type system of Typescript and preserve
83
+ * the properties keys.
84
+ * @param enumValues
85
+ * @group Builder
86
+ */
87
+ export function buildEnumValues(
88
+ enumValues: EnumValues
89
+ ): EnumValues {
90
+ return enumValues;
91
+ }
92
+
93
+ /**
94
+ * Identity function we use to defeat the type system of Typescript and preserve
95
+ * the properties keys.
96
+ * @param enumValueConfig
97
+ * @group Builder
98
+ */
99
+ export function buildEnumValueConfig(
100
+ enumValueConfig: EnumValueConfig
101
+ ): EnumValueConfig {
102
+ return enumValueConfig;
103
+ }
104
+
105
+ /**
106
+ * Identity function we use to defeat the type system of Typescript and preserve
107
+ * the properties keys.
108
+ * @param callbacks
109
+ * @group Builder
110
+ */
111
+ export function buildEntityCallbacks<M extends Record<string, any> = any>(
112
+ callbacks: EntityCallbacks<M>
113
+ ): EntityCallbacks<M> {
114
+ return callbacks;
115
+ }
116
+
117
+ /**
118
+ * Identity function we use to defeat the type system of Typescript and build
119
+ * additional field delegates views with all its properties
120
+ * @param additionalFieldDelegate
121
+ * @group Builder
122
+ */
123
+ export function buildAdditionalFieldDelegate<M extends Record<string, any>, UserType extends User = User>(
124
+ additionalFieldDelegate: AdditionalFieldDelegate<M, UserType>
125
+ ): AdditionalFieldDelegate<M, UserType> {
126
+ return additionalFieldDelegate;
127
+ }
128
+
129
+ /**
130
+ * Identity function we use to defeat the type system of Typescript and build
131
+ * additional field delegates views with all its properties
132
+ * @param propertyConfig
133
+ * @group Builder
134
+ */
135
+ export function buildFieldConfig<T extends CMSType = CMSType>(
136
+ propertyConfig: PropertyConfig<T>
137
+ ): PropertyConfig<T> {
138
+ return propertyConfig;
139
+ }