@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
package/README.md CHANGED
@@ -83,7 +83,7 @@ data.
83
83
 
84
84
  ### ✨ Robust Forms
85
85
 
86
- ![fields](https://firecms.co/img/post_editing.png)
86
+ ![fields](https://firecms.co/img/post_editing.webp)
87
87
 
88
88
  When editing an entity, FireCMS offers a nested system of side dialogs for
89
89
  navigating through **subcollections** and accessing custom views (such as custom
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+ import { DraggableProvided } from "@hello-pangea/dnd";
3
+ interface ArrayContainerProps<T> {
4
+ droppableId: string;
5
+ value: T[];
6
+ addLabel: string;
7
+ buildEntry: (index: number, internalId: number) => React.ReactNode;
8
+ disabled?: boolean;
9
+ size?: "small" | "medium";
10
+ onInternalIdAdded?: (id: number) => void;
11
+ includeAddButton?: boolean;
12
+ newDefaultEntry: T;
13
+ onValueChange: (value: T[]) => void;
14
+ }
15
+ /**
16
+ * @group Form custom fields
17
+ */
18
+ export declare function ArrayContainer<T>({ droppableId, addLabel, value, disabled, buildEntry, size, onInternalIdAdded, includeAddButton, newDefaultEntry, onValueChange }: ArrayContainerProps<T>): import("react/jsx-runtime").JSX.Element;
19
+ type ArrayContainerItemProps = {
20
+ provided: DraggableProvided;
21
+ index: number;
22
+ internalId: number;
23
+ size?: "small" | "medium";
24
+ disabled: boolean;
25
+ buildEntry: (index: number, internalId: number) => React.ReactNode;
26
+ remove: (index: number) => void;
27
+ copy: (index: number) => void;
28
+ isDragging: boolean;
29
+ };
30
+ export declare function ArrayContainerItem({ provided, index, internalId, size, disabled, buildEntry, remove, copy, isDragging }: ArrayContainerItemProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare function ArrayItemOptions({ direction, disabled, remove, index, provided, copy, contentOverflow, measuring }: {
32
+ direction?: "row" | "column";
33
+ contentOverflow: boolean;
34
+ measuring: boolean;
35
+ disabled: boolean;
36
+ remove: (index: number) => void;
37
+ index: number;
38
+ provided: any;
39
+ copy: (index: number) => void;
40
+ }): import("react/jsx-runtime").JSX.Element;
41
+ export declare function getRandomId(): number;
42
+ export {};
@@ -0,0 +1,11 @@
1
+ import { CircularProgressProps } from "@firecms/ui";
2
+ /**
3
+ *
4
+ * @param text
5
+ * @param props
6
+ * @constructor
7
+ * @ignore
8
+ */
9
+ export declare function CircularProgressCenter({ text, ...props }: CircularProgressProps & {
10
+ text?: string;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export declare function DeleteConfirmationDialog({ open, onAccept, onCancel, title, loading, body }: {
3
+ open: boolean;
4
+ onAccept: () => void;
5
+ onCancel: () => void;
6
+ loading?: boolean;
7
+ title: React.ReactNode;
8
+ body?: React.ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import { EntityCollectionTableController } from "./types";
3
+ import { EntityCollectionTableProps } from "./EntityCollectionTableProps";
4
+ export declare const EntityCollectionTableContext: React.Context<EntityCollectionTableController<any>>;
5
+ export declare const useEntityCollectionTableController: () => EntityCollectionTableController<any>;
6
+ /**
7
+ * This component is in charge of rendering a collection table with a high
8
+ * degree of customization. It is in charge of fetching data from
9
+ * the {@link DataSource} and holding the state of filtering and sorting.
10
+ *
11
+ * This component is used internally by {@link EntityCollectionView} and
12
+ * {@link useReferenceDialog}
13
+ *
14
+ * Please note that you only need to use this component if you are building
15
+ * a custom view. If you just need to create a default view you can do it
16
+ * exclusively with config options.
17
+ *
18
+ * If you want to bind a {@link EntityCollection} to a table with the default
19
+ * options you see in collections in the top level navigation, you can
20
+ * check {@link EntityCollectionView}
21
+ *
22
+ * If you need a table that is not bound to the datasource or entities and
23
+ * properties at all, you can check {@link VirtualTable}
24
+ *
25
+ * @see EntityCollectionTableProps
26
+ * @see EntityCollectionView
27
+ * @see VirtualTable
28
+ * @group Components
29
+ */
30
+ export declare const EntityCollectionTable: React.NamedExoticComponent<EntityCollectionTableProps<any>>;
@@ -0,0 +1,106 @@
1
+ import React from "react";
2
+ import { AdditionalFieldDelegate, CollectionSize, Entity, FilterValues, ResolvedProperties, ResolvedProperty, SelectionController, TableController, User } from "../../types";
3
+ import { OnCellValueChange, UniqueFieldValidator } from "./types";
4
+ /**
5
+ * @group Collection components
6
+ */
7
+ export type OnColumnResizeParams = {
8
+ width: number;
9
+ key: string;
10
+ };
11
+ /**
12
+ * @group Collection components
13
+ */
14
+ export type EntityCollectionTableProps<M extends Record<string, any>, UserType extends User = User> = {
15
+ /**
16
+ * Display these entities as selected
17
+ */
18
+ selectionController: SelectionController<M>;
19
+ /**
20
+ * List of entities that will be displayed as selected;
21
+ */
22
+ highlightedEntities?: Entity<M>[];
23
+ /**
24
+ * Override the title in the toolbar
25
+ */
26
+ title?: React.ReactNode;
27
+ /**
28
+ * Additional component that renders actions such as buttons in the
29
+ * collection toolbar, displayed on the left side
30
+ */
31
+ actionsStart?: React.ReactNode;
32
+ /**
33
+ * Callback when a cell value changes.
34
+ */
35
+ onValueChange?: OnCellValueChange<any, M>;
36
+ uniqueFieldValidator?: UniqueFieldValidator;
37
+ /**
38
+ * Builder for creating the buttons in each row
39
+ * @param entity
40
+ * @param size
41
+ */
42
+ tableRowActionsBuilder?: (params: {
43
+ entity: Entity<M>;
44
+ size: CollectionSize;
45
+ width: number;
46
+ frozen?: boolean;
47
+ }) => React.ReactNode;
48
+ /**
49
+ * Callback when anywhere on the table is clicked
50
+ */
51
+ onEntityClick?(entity: Entity<M>): void;
52
+ /**
53
+ * Callback when a column is resized
54
+ */
55
+ onColumnResize?(params: OnColumnResizeParams): void;
56
+ /**
57
+ * Callback when the selected size of the table is changed
58
+ */
59
+ onSizeChanged?(size: CollectionSize): void;
60
+ /**
61
+ * Should apply a different style to a row when hovering
62
+ */
63
+ hoverRow?: boolean;
64
+ /**
65
+ * Additional component that renders actions such as buttons in the
66
+ * collection toolbar, displayed on the right side
67
+ */
68
+ actions?: React.ReactNode;
69
+ /**
70
+ * Controller holding the logic for the table
71
+ * {@link useEntityCollectionTableController}
72
+ * {@link TableController}
73
+ */
74
+ tableController: TableController<M>;
75
+ displayedColumnIds: PropertyColumnConfig[];
76
+ forceFilter?: FilterValues<Extract<keyof M, string>>;
77
+ textSearchEnabled?: boolean;
78
+ inlineEditing?: boolean | ((entity: Entity<M>) => boolean);
79
+ additionalFields?: AdditionalFieldDelegate<M, UserType>[];
80
+ defaultSize?: CollectionSize;
81
+ properties: ResolvedProperties<M>;
82
+ getPropertyFor?: (props: GetPropertyForProps<M>) => ResolvedProperties<M>[string];
83
+ filterable?: boolean;
84
+ sortable?: boolean;
85
+ endAdornment?: React.ReactNode;
86
+ AdditionalHeaderWidget?: (props: {
87
+ property: ResolvedProperty;
88
+ propertyKey: string;
89
+ onHover: boolean;
90
+ }) => React.ReactNode;
91
+ AddColumnComponent?: React.ComponentType;
92
+ additionalIDHeaderWidget?: React.ReactNode;
93
+ emptyComponent?: React.ReactNode;
94
+ getIdColumnWidth?: () => number;
95
+ onTextSearchClick?: () => void;
96
+ textSearchLoading?: boolean;
97
+ };
98
+ export type GetPropertyForProps<M extends Record<string, any>> = {
99
+ propertyKey: string;
100
+ propertyValue: any;
101
+ entity: Entity<M>;
102
+ };
103
+ export type PropertyColumnConfig = {
104
+ key: string;
105
+ disabled: boolean;
106
+ };
@@ -0,0 +1,15 @@
1
+ import { CollectionSize, EntityReference, FilterValues } from "../../../types";
2
+ type TableReferenceFieldProps = {
3
+ name: string;
4
+ disabled: boolean;
5
+ internalValue: EntityReference | EntityReference[] | undefined | null;
6
+ updateValue: (newValue: (EntityReference | EntityReference[] | null)) => void;
7
+ size: CollectionSize;
8
+ multiselect: boolean;
9
+ previewProperties?: string[];
10
+ title?: string;
11
+ path: string;
12
+ forceFilter?: FilterValues<string>;
13
+ };
14
+ export declare function TableReferenceField(props: TableReferenceFieldProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,33 @@
1
+ import * as React from "react";
2
+ import { Entity, ResolvedArrayProperty, ResolvedStringProperty } from "../../../types";
3
+ import { PreviewSize } from "../../../preview";
4
+ /**
5
+ * Field that allows to upload files to Google Cloud Storage.
6
+ *
7
+ * This is one of the internal components that get mapped natively inside forms
8
+ * and tables to the specified properties.
9
+ * @group Form fields
10
+ */
11
+ export declare function TableStorageUpload(props: {
12
+ propertyKey: string;
13
+ error: Error | undefined;
14
+ disabled: boolean;
15
+ value: string | string[] | null;
16
+ updateValue: (newValue: (string | string[] | null)) => void;
17
+ selected: boolean;
18
+ focused: boolean;
19
+ property: ResolvedStringProperty | ResolvedArrayProperty<string[]>;
20
+ entity: Entity<any>;
21
+ path: string;
22
+ previewSize: PreviewSize;
23
+ openPopup?: (cellRect?: DOMRect) => void;
24
+ onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
25
+ }): import("react/jsx-runtime").JSX.Element;
26
+ interface TableStorageItemPreviewProps {
27
+ property: ResolvedStringProperty;
28
+ value: string;
29
+ size: PreviewSize;
30
+ entity: Entity<any>;
31
+ }
32
+ export declare function TableStorageItemPreview({ property, value, size, entity }: TableStorageItemPreviewProps): import("react/jsx-runtime").JSX.Element;
33
+ export {};
@@ -0,0 +1,9 @@
1
+ import { VirtualTableWhereFilterOp } from "../../VirtualTable";
2
+ interface BooleanFieldProps {
3
+ name: string;
4
+ value?: [op: VirtualTableWhereFilterOp, fieldValue: any];
5
+ setValue: (value?: [op: VirtualTableWhereFilterOp, newValue: any]) => void;
6
+ title?: string;
7
+ }
8
+ export declare function BooleanFilterField({ name, title, value, setValue }: BooleanFieldProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,11 @@
1
+ import { VirtualTableWhereFilterOp } from "../../VirtualTable";
2
+ interface DateTimeFilterFieldProps {
3
+ name: string;
4
+ mode?: "date" | "date_time";
5
+ value?: [op: VirtualTableWhereFilterOp, fieldValue: any];
6
+ setValue: (value?: [op: VirtualTableWhereFilterOp, newValue: any]) => void;
7
+ isArray?: boolean;
8
+ title?: string;
9
+ }
10
+ export declare function DateTimeFilterField({ name, isArray, mode, value, setValue, title }: DateTimeFilterFieldProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,14 @@
1
+ import { VirtualTableWhereFilterOp } from "../../VirtualTable";
2
+ interface ReferenceFilterFieldProps {
3
+ name: string;
4
+ value?: [op: VirtualTableWhereFilterOp, fieldValue: any];
5
+ setValue: (filterValue?: [VirtualTableWhereFilterOp, any]) => void;
6
+ isArray?: boolean;
7
+ path?: string;
8
+ title?: string;
9
+ previewProperties?: string[];
10
+ hidden: boolean;
11
+ setHidden: (hidden: boolean) => void;
12
+ }
13
+ export declare function ReferenceFilterField({ name, value, setValue, isArray, path, title, previewProperties, setHidden }: ReferenceFilterFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,13 @@
1
+ import { VirtualTableWhereFilterOp } from "../../VirtualTable";
2
+ import { EnumValueConfig } from "../../../types";
3
+ interface StringNumberFilterFieldProps {
4
+ name: string;
5
+ dataType: "string" | "number";
6
+ value?: [op: VirtualTableWhereFilterOp, fieldValue: any];
7
+ setValue: (value?: [op: VirtualTableWhereFilterOp, newValue: any]) => void;
8
+ isArray?: boolean;
9
+ enumValues?: EnumValueConfig[];
10
+ title?: string;
11
+ }
12
+ export declare function StringNumberFilterField({ name, value, setValue, dataType, isArray, enumValues, title }: StringNumberFilterFieldProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,4 @@
1
+ export { EntityCollectionTable } from "./EntityCollectionTable";
2
+ export type { EntityCollectionTableProps, OnColumnResizeParams } from "./EntityCollectionTableProps";
3
+ export type { UniqueFieldValidator, OnCellValueChange, OnCellValueChangeParams } from "./types";
4
+ export * from "./useEntityCollectionTableController";
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { CollectionSize } from "../../../types";
3
+ interface CollectionTableToolbarProps {
4
+ size: CollectionSize;
5
+ filterIsSet: boolean;
6
+ loading: boolean;
7
+ forceFilter: boolean;
8
+ actionsStart?: React.ReactNode;
9
+ actions?: React.ReactNode;
10
+ title?: React.ReactNode;
11
+ onTextSearchClick?: () => void;
12
+ onTextSearch?: (searchString?: string) => void;
13
+ onSizeChanged: (size: CollectionSize) => void;
14
+ clearFilter?: () => void;
15
+ textSearchLoading?: boolean;
16
+ }
17
+ export declare function CollectionTableToolbar(props: CollectionTableToolbarProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,12 @@
1
+ import { Entity, EntityCallbacks, EntityCollection } from "../../../types";
2
+ export interface DeleteEntityDialogProps<M extends Record<string, any>> {
3
+ entityOrEntitiesToDelete?: Entity<M> | Entity<M>[];
4
+ path: string;
5
+ collection: EntityCollection<M>;
6
+ open: boolean;
7
+ onClose: () => void;
8
+ callbacks?: EntityCallbacks<M>;
9
+ onEntityDelete?(path: string, entity: Entity<M>): void;
10
+ onMultipleEntitiesDelete?(path: string, entities: Entity<M>[]): void;
11
+ }
12
+ export declare function DeleteEntityDialog<M extends Record<string, any>>({ entityOrEntitiesToDelete, collection, onClose, open, callbacks, onEntityDelete, onMultipleEntitiesDelete, path }: DeleteEntityDialogProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import { CollectionSize, Entity, EntityAction, EntityCollection, SelectionController } from "../../../types";
3
+ /**
4
+ *
5
+ * @param entity
6
+ * @param width
7
+ * @param frozen
8
+ * @param isSelected
9
+ * @param selectionEnabled
10
+ * @param size
11
+ * @param toggleEntitySelection
12
+ * @param onCopyClicked
13
+ * @param onEditClicked
14
+ * @param onDeleteClicked
15
+ * @param hideId
16
+ * @constructor
17
+ *
18
+ * @group Collection components
19
+ */
20
+ export declare const EntityCollectionRowActions: React.NamedExoticComponent<{
21
+ entity: Entity<any>;
22
+ collection?: EntityCollection<any, import("../../../types").User> | undefined;
23
+ fullPath?: string | undefined;
24
+ width: number;
25
+ frozen?: boolean | undefined;
26
+ size: CollectionSize;
27
+ isSelected: boolean;
28
+ selectionEnabled?: boolean | undefined;
29
+ actions?: EntityAction[] | undefined;
30
+ hideId?: boolean | undefined;
31
+ onCollectionChange?: (() => void) | undefined;
32
+ selectionController?: SelectionController | undefined;
33
+ highlightEntity?: ((entity: Entity<any>) => void) | undefined;
34
+ unhighlightEntity?: ((entity: Entity<any>) => void) | undefined;
35
+ }>;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { VirtualTableSize } from "../../VirtualTable";
3
+ interface EntityTableCellProps {
4
+ children: React.ReactNode;
5
+ actions?: React.ReactNode;
6
+ /**
7
+ * The value is used only to check changes and force re-renders
8
+ */
9
+ value?: any;
10
+ disabled: boolean;
11
+ saved?: boolean;
12
+ error?: Error;
13
+ allowScroll?: boolean;
14
+ align: "right" | "left" | "center";
15
+ size: VirtualTableSize;
16
+ disabledTooltip?: string;
17
+ width: number;
18
+ showExpandIcon?: boolean;
19
+ removePadding?: boolean;
20
+ fullHeight?: boolean;
21
+ selected?: boolean;
22
+ hideOverflow?: boolean;
23
+ onSelect?: (cellRect: DOMRect | undefined) => void;
24
+ }
25
+ export declare const EntityTableCell: React.FunctionComponent<EntityTableCellProps>;
26
+ export {};
@@ -0,0 +1,9 @@
1
+ export interface EntityTableCellActionsProps {
2
+ showError: false | Error | undefined;
3
+ disabled: boolean;
4
+ showExpandIcon: boolean | undefined;
5
+ selected: boolean | undefined;
6
+ openPopup?: (cellRect: DOMRect | undefined) => void;
7
+ children?: React.ReactNode;
8
+ }
9
+ export declare function EntityTableCellActions({ showError, disabled, showExpandIcon, selected, openPopup, children }: EntityTableCellActionsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { CMSType, Entity, ResolvedProperty } from "../../../types";
3
+ import { CustomFieldValidator } from "../../../form/validation";
4
+ export interface PropertyTableCellProps<T extends CMSType, M extends Record<string, any>> {
5
+ propertyKey: string;
6
+ columnIndex: number;
7
+ align: "right" | "left" | "center";
8
+ customFieldValidator?: CustomFieldValidator;
9
+ value: T;
10
+ readonly: boolean;
11
+ property: ResolvedProperty<T>;
12
+ height: number;
13
+ width: number;
14
+ entity: Entity<any>;
15
+ path: string;
16
+ disabled: boolean;
17
+ }
18
+ export declare const PropertyTableCell: React.FunctionComponent<PropertyTableCellProps<any, any>>;
@@ -0,0 +1,4 @@
1
+ import { EntityCollection, Property, ResolvedProperty } from "../../../types";
2
+ export declare function getTableCellAlignment(property: Property | ResolvedProperty): "right" | "left" | "center";
3
+ export declare function getTablePropertyColumnWidth(property: ResolvedProperty): number;
4
+ export declare function getSubcollectionColumnId(collection: EntityCollection): string;
@@ -0,0 +1,6 @@
1
+ import { EntityAction } from "../../../types";
2
+ export declare const editEntityAction: EntityAction;
3
+ export declare const copyEntityAction: EntityAction;
4
+ export declare const archiveEntityAction: EntityAction;
5
+ export declare const openWebsiteAction: EntityAction;
6
+ export declare const deleteEntityAction: EntityAction;
@@ -0,0 +1,5 @@
1
+ interface Props {
2
+ onResize: (event: Event) => void;
3
+ }
4
+ export declare const ElementResizeListener: React.FC<Props>;
5
+ export {};
@@ -0,0 +1,23 @@
1
+ import { Entity, EntityCollection } from "../../../../types";
2
+ import { CustomFieldValidator } from "../../../../form/validation";
3
+ import { OnCellValueChangeParams } from "../../../../components";
4
+ interface PopupFormFieldProps<M extends Record<string, any>> {
5
+ entity?: Entity<M>;
6
+ customFieldValidator?: CustomFieldValidator;
7
+ path: string;
8
+ tableKey: string;
9
+ propertyKey?: Extract<keyof M, string>;
10
+ collection?: EntityCollection<M>;
11
+ cellRect?: DOMRect;
12
+ open: boolean;
13
+ onClose: () => void;
14
+ container: HTMLElement | null;
15
+ /**
16
+ * Callback when the value of a cell has been edited
17
+ * @param params
18
+ */
19
+ onCellValueChange?: (params: OnCellValueChangeParams<any, M>) => Promise<void>;
20
+ }
21
+ export declare function PopupFormField<M extends Record<string, any>>(props: PopupFormFieldProps<M>): import("react/jsx-runtime").JSX.Element | null;
22
+ export declare function PopupFormFieldInternal<M extends Record<string, any>>({ tableKey, entity: entityProp, customFieldValidator, propertyKey, collection: inputCollection, path, cellRect, open, onClose, onCellValueChange, container }: PopupFormFieldProps<M>): import("react/jsx-runtime").JSX.Element;
23
+ export {};
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ interface DraggableProps {
3
+ containerRef: React.RefObject<HTMLDivElement>;
4
+ innerRef: React.RefObject<HTMLDivElement>;
5
+ x?: number;
6
+ y?: number;
7
+ onMove: (params: {
8
+ x: number;
9
+ y: number;
10
+ }) => void;
11
+ }
12
+ export declare function useDraggable({ containerRef, innerRef, x, y, onMove }: DraggableProps): void;
13
+ export {};
@@ -0,0 +1,6 @@
1
+ interface WindowSize {
2
+ width: number;
3
+ height: number;
4
+ }
5
+ export declare function useWindowSize(): WindowSize;
6
+ export {};
@@ -0,0 +1,39 @@
1
+ import { CollectionSize, Entity, FireCMSContext, ResolvedProperty, SelectedCellProps } from "../../types";
2
+ export type EntityCollectionTableController<M extends Record<string, any>> = {
3
+ selectedCell?: SelectedCellProps<any>;
4
+ select: (cell?: SelectedCellProps<M>) => void;
5
+ setPopupCell?: (cell?: SelectedCellProps<M>) => void;
6
+ onValueChange?: (params: OnCellValueChangeParams<any, M>) => void;
7
+ selectedEntityIds?: string[];
8
+ /**
9
+ * Size of the elements in the collection
10
+ */
11
+ size: CollectionSize;
12
+ };
13
+ /**
14
+ * Props passed in a callback when the content of a cell in a table has been edited
15
+ * @group Collection components
16
+ */
17
+ export interface OnCellValueChangeParams<T, M extends Record<string, any>> {
18
+ value: T;
19
+ propertyKey: string;
20
+ entity: Entity<M>;
21
+ onValueUpdated: () => void;
22
+ setError: (e: Error) => void;
23
+ fullPath: string;
24
+ context: FireCMSContext;
25
+ }
26
+ /**
27
+ * @group Collection components
28
+ */
29
+ export type UniqueFieldValidator = (props: {
30
+ name: string;
31
+ value: any;
32
+ property: ResolvedProperty;
33
+ entityId?: string;
34
+ }) => Promise<boolean>;
35
+ /**
36
+ * Callback when a cell has changed in a table
37
+ * @group Collection components
38
+ */
39
+ export type OnCellValueChange<T, M extends Record<string, any>> = (params: OnCellValueChangeParams<T, M>) => Promise<void>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Hack to prevent data updates for incomplete callbacks from Firestore
3
+ * triggers.
4
+ * If any deps change, the update is immediate
5
+ * @param data
6
+ * @param deps
7
+ * @param timeoutMs
8
+ */
9
+ export declare function useDebouncedData<T>(data: T[], deps: any, timeoutMs?: number): T[];
@@ -0,0 +1,21 @@
1
+ import { Entity, EntityCollection, FilterValues, TableController, User } from "../../types";
2
+ export type EntityCollectionTableControllerProps<M extends Record<string, any> = any> = {
3
+ fullPath: string;
4
+ collection: EntityCollection<M>;
5
+ /**
6
+ * List of entities that will be displayed on top, no matter the ordering.
7
+ * This is used for reference fields selection
8
+ */
9
+ entitiesDisplayedFirst?: Entity<M>[];
10
+ lastDeleteTimestamp?: number;
11
+ forceFilter?: FilterValues<string>;
12
+ };
13
+ /**
14
+ * Use this hook to build a controller for the {@link EntityCollectionTable}
15
+ * @param fullPath
16
+ * @param collection
17
+ * @param entitiesDisplayedFirst
18
+ * @param lastDeleteTimestamp
19
+ * @param forceFilterFromProps
20
+ */
21
+ export declare function useEntityCollectionTableController<M extends Record<string, any> = any, UserType extends User = User>({ fullPath, collection, entitiesDisplayedFirst, lastDeleteTimestamp, forceFilter: forceFilterFromProps, }: EntityCollectionTableControllerProps<M>): TableController<M>;
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ import { EntityCollection, SelectionController } from "../../types";
3
+ /**
4
+ * @group Components
5
+ */
6
+ export type EntityCollectionViewProps<M extends Record<string, any>> = {
7
+ fullPath: string;
8
+ parentCollectionIds?: string[];
9
+ isSubCollection?: boolean;
10
+ className?: string;
11
+ } & EntityCollection<M>;
12
+ /**
13
+ * This component is in charge of binding a datasource path with an {@link EntityCollection}
14
+ * where it's configuration is defined. It includes an infinite scrolling table
15
+ * and a 'Add' new entities button,
16
+ *
17
+ * This component is the default one used for displaying entity collections
18
+ * and is in charge of generating all the specific actions and customization
19
+ * of the lower level {@link EntityCollectionTable}
20
+ *
21
+ * Please **note** that you only need to use this component if you are building
22
+ * a custom view. If you just need to create a default view you can do it
23
+ * exclusively with config options.
24
+ *
25
+ * If you need a lower level implementation with more granular options, you
26
+ * can use {@link EntityCollectionTable}.
27
+ *
28
+ * If you need a generic table that is not bound to the datasource or entities and
29
+ * properties at all, you can check {@link VirtualTable}
30
+ *
31
+ * @param fullPath
32
+ * @param collection
33
+ * @constructor
34
+ * @group Components
35
+ */
36
+ export declare const EntityCollectionView: React.FunctionComponent<EntityCollectionViewProps<any>>;
37
+ export declare function useSelectionController<M extends Record<string, any>>(): SelectionController<M>;
@@ -0,0 +1,14 @@
1
+ import { EntityCollection, SelectionController, TableController } from "../../types";
2
+ export type EntityCollectionViewActionsProps<M extends Record<string, any>> = {
3
+ collection: EntityCollection<M>;
4
+ path: string;
5
+ relativePath: string;
6
+ parentCollectionIds: string[];
7
+ selectionEnabled: boolean;
8
+ onNewClick: () => void;
9
+ onMultipleDeleteClick: () => void;
10
+ selectionController: SelectionController<M>;
11
+ tableController: TableController<M>;
12
+ collectionEntitiesCount: number;
13
+ };
14
+ export declare function EntityCollectionViewActions<M extends Record<string, any>>({ collection, relativePath, parentCollectionIds, onNewClick, onMultipleDeleteClick, selectionEnabled, path, selectionController, tableController, collectionEntitiesCount }: EntityCollectionViewActionsProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { ResolvedEntityCollection, ResolvedProperty } from "../../types";
2
+ import { PropertyColumnConfig } from "../EntityCollectionTable/EntityCollectionTableProps";
3
+ export declare function useColumnIds<M extends Record<string, any>>(collection: ResolvedEntityCollection<M>, includeSubcollections: boolean): PropertyColumnConfig[];
4
+ export declare function getColumnKeysForProperty(property: ResolvedProperty, key: string, disabled?: boolean): PropertyColumnConfig[];