@firecms/core 3.0.0-3.0.0-beta.4.pre.1.0

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 (503) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/components/ArrayContainer.d.ts +40 -0
  4. package/dist/components/CircularProgressCenter.d.ts +11 -0
  5. package/dist/components/DeleteConfirmationDialog.d.ts +9 -0
  6. package/dist/components/DeleteEntityDialog.d.ts +12 -0
  7. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +31 -0
  8. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +27 -0
  9. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +99 -0
  10. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +18 -0
  11. package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
  12. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +19 -0
  13. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
  14. package/dist/components/EntityCollectionTable/index.d.ts +6 -0
  15. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
  16. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
  17. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  18. package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
  19. package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
  20. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
  21. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
  22. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  23. package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  24. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +36 -0
  25. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
  26. package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
  27. package/dist/components/EntityPreview.d.ts +29 -0
  28. package/dist/components/EntityView.d.ts +11 -0
  29. package/dist/components/ErrorBoundary.d.ts +11 -0
  30. package/dist/components/ErrorTooltip.d.ts +2 -0
  31. package/dist/components/ErrorView.d.ts +19 -0
  32. package/dist/components/FieldCaption.d.ts +4 -0
  33. package/dist/components/FireCMSAppBar.d.ts +26 -0
  34. package/dist/components/FireCMSLogo.d.ts +7 -0
  35. package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
  36. package/dist/components/HomePage/FavouritesView.d.ts +3 -0
  37. package/dist/components/HomePage/NavigationCard.d.ts +8 -0
  38. package/dist/components/HomePage/NavigationCardBinding.d.ts +17 -0
  39. package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
  40. package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
  41. package/dist/components/HomePage/index.d.ts +5 -0
  42. package/dist/components/NotFoundPage.d.ts +1 -0
  43. package/dist/components/PropertyConfigBadge.d.ts +4 -0
  44. package/dist/components/PropertyIdCopyTooltipContent.d.ts +3 -0
  45. package/dist/components/ReferenceTable/ReferenceSelectionTable.d.ts +58 -0
  46. package/dist/components/ReferenceWidget.d.ts +28 -0
  47. package/dist/components/SearchIconsView.d.ts +5 -0
  48. package/dist/components/SelectableTable/SelectableTable.d.ts +75 -0
  49. package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
  50. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +9 -0
  51. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +11 -0
  52. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +14 -0
  53. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +13 -0
  54. package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
  55. package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
  56. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
  57. package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  58. package/dist/components/VirtualTable/VirtualTableProps.d.ts +214 -0
  59. package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  60. package/dist/components/VirtualTable/common.d.ts +2 -0
  61. package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
  62. package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
  63. package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
  64. package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
  65. package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
  66. package/dist/components/VirtualTable/index.d.ts +2 -0
  67. package/dist/components/VirtualTable/types.d.ts +34 -0
  68. package/dist/components/common/index.d.ts +5 -0
  69. package/dist/components/common/types.d.ts +60 -0
  70. package/dist/components/common/useColumnsIds.d.ts +4 -0
  71. package/dist/components/common/useDataSourceEntityCollectionTableController.d.ts +32 -0
  72. package/dist/components/common/useDebouncedData.d.ts +9 -0
  73. package/dist/components/common/useTableSearchHelper.d.ts +12 -0
  74. package/dist/components/index.d.ts +25 -0
  75. package/dist/contexts/AnalyticsContext.d.ts +3 -0
  76. package/dist/contexts/AuthControllerContext.d.ts +3 -0
  77. package/dist/contexts/CustomizationControllerContext.d.ts +3 -0
  78. package/dist/contexts/DataSourceContext.d.ts +3 -0
  79. package/dist/contexts/DialogsProvider.d.ts +4 -0
  80. package/dist/contexts/ModeController.d.ts +4 -0
  81. package/dist/contexts/NavigationContext.d.ts +3 -0
  82. package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
  83. package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
  84. package/dist/contexts/SnackbarProvider.d.ts +2 -0
  85. package/dist/contexts/StorageSourceContext.d.ts +3 -0
  86. package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  87. package/dist/contexts/index.d.ts +3 -0
  88. package/dist/core/Drawer.d.ts +23 -0
  89. package/dist/core/EntityEditView.d.ts +22 -0
  90. package/dist/core/EntitySidePanel.d.ts +10 -0
  91. package/dist/core/FireCMS.d.ts +14 -0
  92. package/dist/core/NavigationRoutes.d.ts +21 -0
  93. package/dist/core/Scaffold.d.ts +55 -0
  94. package/dist/core/SideDialogs.d.ts +23 -0
  95. package/dist/core/SideEntityView.d.ts +7 -0
  96. package/dist/core/field_configs.d.ts +7 -0
  97. package/dist/core/index.d.ts +8 -0
  98. package/dist/form/EntityForm.d.ts +77 -0
  99. package/dist/form/PropertyFieldBinding.d.ts +30 -0
  100. package/dist/form/components/CustomIdField.d.ts +10 -0
  101. package/dist/form/components/ErrorFocus.d.ts +4 -0
  102. package/dist/form/components/FieldHelperText.d.ts +12 -0
  103. package/dist/form/components/FormikArrayContainer.d.ts +18 -0
  104. package/dist/form/components/LabelWithIcon.d.ts +14 -0
  105. package/dist/form/components/StorageItemPreview.d.ts +14 -0
  106. package/dist/form/components/StorageUploadProgress.d.ts +10 -0
  107. package/dist/form/components/index.d.ts +3 -0
  108. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
  109. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
  110. package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
  111. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
  112. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
  113. package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
  114. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
  115. package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
  116. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
  117. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
  118. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
  119. package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
  120. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +29 -0
  121. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
  122. package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
  123. package/dist/form/index.d.ts +21 -0
  124. package/dist/form/useClearRestoreValue.d.ts +13 -0
  125. package/dist/form/validation.d.ts +25 -0
  126. package/dist/hooks/data/delete.d.ts +37 -0
  127. package/dist/hooks/data/save.d.ts +42 -0
  128. package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
  129. package/dist/hooks/data/useDataOrder.d.ts +12 -0
  130. package/dist/hooks/data/useDataSource.d.ts +6 -0
  131. package/dist/hooks/data/useEntityFetch.d.ts +28 -0
  132. package/dist/hooks/index.d.ts +22 -0
  133. package/dist/hooks/useAnalyticsController.d.ts +5 -0
  134. package/dist/hooks/useAuthController.d.ts +11 -0
  135. package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  136. package/dist/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
  137. package/dist/hooks/useBuildModeController.d.ts +6 -0
  138. package/dist/hooks/useBuildNavigationController.d.ts +24 -0
  139. package/dist/hooks/useClipboard.d.ts +57 -0
  140. package/dist/hooks/useCustomizationController.d.ts +11 -0
  141. package/dist/hooks/useDialogsController.d.ts +11 -0
  142. package/dist/hooks/useFireCMSContext.d.ts +11 -0
  143. package/dist/hooks/useLargeLayout.d.ts +1 -0
  144. package/dist/hooks/useModeController.d.ts +20 -0
  145. package/dist/hooks/useNavigationController.d.ts +9 -0
  146. package/dist/hooks/useProjectLog.d.ts +8 -0
  147. package/dist/hooks/useReferenceDialog.d.ts +18 -0
  148. package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
  149. package/dist/hooks/useSideDialogsController.d.ts +18 -0
  150. package/dist/hooks/useSideEntityController.d.ts +12 -0
  151. package/dist/hooks/useSnackbarController.d.ts +42 -0
  152. package/dist/hooks/useStorageSource.d.ts +6 -0
  153. package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
  154. package/dist/index.d.ts +8 -0
  155. package/dist/index.es.js +16602 -0
  156. package/dist/index.es.js.map +1 -0
  157. package/dist/index.umd.js +589 -0
  158. package/dist/index.umd.js.map +1 -0
  159. package/dist/internal/common.d.ts +3 -0
  160. package/dist/internal/useBuildCustomizationController.d.ts +2 -0
  161. package/dist/internal/useBuildDataSource.d.ts +26 -0
  162. package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
  163. package/dist/internal/useBuildSideEntityController.d.ts +4 -0
  164. package/dist/internal/useLocaleConfig.d.ts +1 -0
  165. package/dist/internal/useRestoreScroll.d.ts +6 -0
  166. package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
  167. package/dist/preview/PropertyPreview.d.ts +7 -0
  168. package/dist/preview/PropertyPreviewProps.d.ts +43 -0
  169. package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
  170. package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
  171. package/dist/preview/components/BooleanPreview.d.ts +11 -0
  172. package/dist/preview/components/DatePreview.d.ts +7 -0
  173. package/dist/preview/components/EmptyValue.d.ts +4 -0
  174. package/dist/preview/components/EnumValuesChip.d.ts +13 -0
  175. package/dist/preview/components/ImagePreview.d.ts +12 -0
  176. package/dist/preview/components/ReferencePreview.d.ts +16 -0
  177. package/dist/preview/components/StorageThumbnail.d.ts +13 -0
  178. package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
  179. package/dist/preview/index.d.ts +23 -0
  180. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
  181. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
  182. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
  183. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
  184. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
  185. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
  186. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
  187. package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
  188. package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
  189. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  190. package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
  191. package/dist/preview/util.d.ts +7 -0
  192. package/dist/types/analytics.d.ts +1 -0
  193. package/dist/types/analytics_controller.d.ts +7 -0
  194. package/dist/types/appcheck.d.ts +26 -0
  195. package/dist/types/auth.d.ts +47 -0
  196. package/dist/types/collections.d.ts +467 -0
  197. package/dist/types/customization_controller.d.ts +47 -0
  198. package/dist/types/datasource.d.ts +262 -0
  199. package/dist/types/dialogs_controller.d.ts +32 -0
  200. package/dist/types/entities.d.ts +58 -0
  201. package/dist/types/entity_actions.d.ts +35 -0
  202. package/dist/types/entity_callbacks.d.ts +185 -0
  203. package/dist/types/entity_link_builder.d.ts +7 -0
  204. package/dist/types/entity_overrides.d.ts +6 -0
  205. package/dist/types/export_import.d.ts +21 -0
  206. package/dist/types/fields.d.ts +180 -0
  207. package/dist/types/firecms.d.ts +132 -0
  208. package/dist/types/firecms_context.d.ts +70 -0
  209. package/dist/types/index.d.ts +29 -0
  210. package/dist/types/local_config_persistence.d.ts +21 -0
  211. package/dist/types/locales.d.ts +4 -0
  212. package/dist/types/modify_collections.d.ts +5 -0
  213. package/dist/types/navigation.d.ts +179 -0
  214. package/dist/types/permissions.d.ts +67 -0
  215. package/dist/types/plugins.d.ts +171 -0
  216. package/dist/types/properties.d.ts +681 -0
  217. package/dist/types/property_config.d.ts +42 -0
  218. package/dist/types/resolved_entities.d.ts +98 -0
  219. package/dist/types/side_dialogs_controller.d.ts +57 -0
  220. package/dist/types/side_entity_controller.d.ts +83 -0
  221. package/dist/types/storage.d.ts +82 -0
  222. package/dist/types/user.d.ts +36 -0
  223. package/dist/util/arrays.d.ts +1 -0
  224. package/dist/util/builders.d.ts +64 -0
  225. package/dist/util/collections.d.ts +11 -0
  226. package/dist/util/common.d.ts +2 -0
  227. package/dist/util/dates.d.ts +1 -0
  228. package/dist/util/entities.d.ts +28 -0
  229. package/dist/util/enums.d.ts +7 -0
  230. package/dist/util/flatten_object.d.ts +3 -0
  231. package/dist/util/hash.d.ts +1 -0
  232. package/dist/util/icon_list.d.ts +1 -0
  233. package/dist/util/icon_synonyms.d.ts +1950 -0
  234. package/dist/util/icons.d.ts +13 -0
  235. package/dist/util/index.d.ts +23 -0
  236. package/dist/util/join_collections.d.ts +9 -0
  237. package/dist/util/make_properties_editable.d.ts +3 -0
  238. package/dist/util/navigation_from_path.d.ts +24 -0
  239. package/dist/util/navigation_utils.d.ts +20 -0
  240. package/dist/util/objects.d.ts +10 -0
  241. package/dist/util/os.d.ts +2 -0
  242. package/dist/util/parent_references_from_path.d.ts +6 -0
  243. package/dist/util/paths.d.ts +14 -0
  244. package/dist/util/permissions.d.ts +5 -0
  245. package/dist/util/plurals.d.ts +18 -0
  246. package/dist/util/property_utils.d.ts +23 -0
  247. package/dist/util/references.d.ts +4 -0
  248. package/dist/util/regexp.d.ts +7 -0
  249. package/dist/util/resolutions.d.ts +64 -0
  250. package/dist/util/storage.d.ts +3 -0
  251. package/dist/util/strings.d.ts +6 -0
  252. package/dist/util/useDebouncedCallback.d.ts +1 -0
  253. package/dist/util/useStorageUploadController.d.ts +36 -0
  254. package/dist/util/useTraceUpdate.d.ts +1 -0
  255. package/package.json +122 -0
  256. package/src/components/ArrayContainer.tsx +334 -0
  257. package/src/components/CircularProgressCenter.tsx +26 -0
  258. package/src/components/DeleteConfirmationDialog.tsx +47 -0
  259. package/src/components/DeleteEntityDialog.tsx +213 -0
  260. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +170 -0
  261. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +325 -0
  262. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +145 -0
  263. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +461 -0
  264. package/src/components/EntityCollectionTable/column_utils.tsx +74 -0
  265. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +155 -0
  266. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
  267. package/src/components/EntityCollectionTable/index.tsx +12 -0
  268. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +116 -0
  269. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +257 -0
  270. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
  271. package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
  272. package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +126 -0
  273. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
  274. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +408 -0
  275. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
  276. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
  277. package/src/components/EntityCollectionView/EntityCollectionView.tsx +804 -0
  278. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +132 -0
  279. package/src/components/EntityCollectionView/useSelectionController.tsx +30 -0
  280. package/src/components/EntityPreview.tsx +218 -0
  281. package/src/components/EntityView.tsx +84 -0
  282. package/src/components/ErrorBoundary.tsx +40 -0
  283. package/src/components/ErrorTooltip.tsx +11 -0
  284. package/src/components/ErrorView.tsx +52 -0
  285. package/src/components/FieldCaption.tsx +13 -0
  286. package/src/components/FireCMSAppBar.tsx +165 -0
  287. package/src/components/FireCMSLogo.tsx +73 -0
  288. package/src/components/HomePage/DefaultHomePage.tsx +214 -0
  289. package/src/components/HomePage/FavouritesView.tsx +64 -0
  290. package/src/components/HomePage/NavigationCard.tsx +69 -0
  291. package/src/components/HomePage/NavigationCardBinding.tsx +116 -0
  292. package/src/components/HomePage/NavigationGroup.tsx +39 -0
  293. package/src/components/HomePage/SmallNavigationCard.tsx +45 -0
  294. package/src/components/HomePage/index.tsx +5 -0
  295. package/src/components/NotFoundPage.tsx +25 -0
  296. package/src/components/PropertyConfigBadge.tsx +17 -0
  297. package/src/components/PropertyIdCopyTooltipContent.tsx +28 -0
  298. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +379 -0
  299. package/src/components/ReferenceWidget.tsx +145 -0
  300. package/src/components/SearchIconsView.tsx +75 -0
  301. package/src/components/SelectableTable/SelectableTable.tsx +329 -0
  302. package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
  303. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +49 -0
  304. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +109 -0
  305. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +179 -0
  306. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +158 -0
  307. package/src/components/VirtualTable/VirtualTable.tsx +405 -0
  308. package/src/components/VirtualTable/VirtualTableCell.tsx +50 -0
  309. package/src/components/VirtualTable/VirtualTableHeader.tsx +266 -0
  310. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
  311. package/src/components/VirtualTable/VirtualTableProps.tsx +269 -0
  312. package/src/components/VirtualTable/VirtualTableRow.tsx +53 -0
  313. package/src/components/VirtualTable/common.tsx +18 -0
  314. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
  315. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
  316. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
  317. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
  318. package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
  319. package/src/components/VirtualTable/index.tsx +2 -0
  320. package/src/components/VirtualTable/types.tsx +44 -0
  321. package/src/components/common/index.ts +5 -0
  322. package/src/components/common/types.tsx +63 -0
  323. package/src/components/common/useColumnsIds.tsx +100 -0
  324. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +225 -0
  325. package/src/components/common/useDebouncedData.ts +49 -0
  326. package/src/components/common/useTableSearchHelper.ts +47 -0
  327. package/src/components/index.tsx +36 -0
  328. package/src/contexts/AnalyticsContext.tsx +4 -0
  329. package/src/contexts/AuthControllerContext.tsx +4 -0
  330. package/src/contexts/CustomizationControllerContext.tsx +4 -0
  331. package/src/contexts/DataSourceContext.tsx +4 -0
  332. package/src/contexts/DialogsProvider.tsx +52 -0
  333. package/src/contexts/ModeController.tsx +13 -0
  334. package/src/contexts/NavigationContext.tsx +4 -0
  335. package/src/contexts/SideDialogsControllerContext.tsx +4 -0
  336. package/src/contexts/SideEntityControllerContext.tsx +4 -0
  337. package/src/contexts/SnackbarProvider.tsx +12 -0
  338. package/src/contexts/StorageSourceContext.tsx +4 -0
  339. package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
  340. package/src/contexts/index.ts +3 -0
  341. package/src/core/Drawer.tsx +191 -0
  342. package/src/core/EntityEditView.tsx +561 -0
  343. package/src/core/EntitySidePanel.tsx +91 -0
  344. package/src/core/FireCMS.tsx +198 -0
  345. package/src/core/NavigationRoutes.tsx +127 -0
  346. package/src/core/Scaffold.tsx +281 -0
  347. package/src/core/SideDialogs.tsx +156 -0
  348. package/src/core/SideEntityView.tsx +38 -0
  349. package/src/core/field_configs.tsx +400 -0
  350. package/src/core/index.tsx +12 -0
  351. package/src/form/EntityForm.tsx +728 -0
  352. package/src/form/PropertyFieldBinding.tsx +306 -0
  353. package/src/form/components/CustomIdField.tsx +139 -0
  354. package/src/form/components/ErrorFocus.tsx +51 -0
  355. package/src/form/components/FieldHelperText.tsx +58 -0
  356. package/src/form/components/FormikArrayContainer.tsx +44 -0
  357. package/src/form/components/LabelWithIcon.tsx +33 -0
  358. package/src/form/components/StorageItemPreview.tsx +68 -0
  359. package/src/form/components/StorageUploadProgress.tsx +105 -0
  360. package/src/form/components/index.tsx +3 -0
  361. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +86 -0
  362. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +149 -0
  363. package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
  364. package/src/form/field_bindings/DateTimeFieldBinding.tsx +67 -0
  365. package/src/form/field_bindings/KeyValueFieldBinding.tsx +558 -0
  366. package/src/form/field_bindings/MapFieldBinding.tsx +138 -0
  367. package/src/form/field_bindings/MarkdownFieldBinding.tsx +695 -0
  368. package/src/form/field_bindings/MultiSelectBinding.tsx +114 -0
  369. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +69 -0
  370. package/src/form/field_bindings/ReferenceFieldBinding.tsx +123 -0
  371. package/src/form/field_bindings/RepeatFieldBinding.tsx +105 -0
  372. package/src/form/field_bindings/SelectFieldBinding.tsx +99 -0
  373. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +447 -0
  374. package/src/form/field_bindings/SwitchFieldBinding.tsx +60 -0
  375. package/src/form/field_bindings/TextFieldBinding.tsx +109 -0
  376. package/src/form/index.tsx +43 -0
  377. package/src/form/useClearRestoreValue.tsx +35 -0
  378. package/src/form/validation.ts +412 -0
  379. package/src/hooks/data/delete.ts +101 -0
  380. package/src/hooks/data/save.ts +170 -0
  381. package/src/hooks/data/useCollectionFetch.tsx +162 -0
  382. package/src/hooks/data/useDataOrder.ts +26 -0
  383. package/src/hooks/data/useDataSource.tsx +14 -0
  384. package/src/hooks/data/useEntityFetch.tsx +129 -0
  385. package/src/hooks/index.tsx +27 -0
  386. package/src/hooks/useAnalyticsController.tsx +8 -0
  387. package/src/hooks/useAuthController.tsx +14 -0
  388. package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
  389. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +67 -0
  390. package/src/hooks/useBuildModeController.tsx +60 -0
  391. package/src/hooks/useBuildNavigationController.tsx +433 -0
  392. package/src/hooks/useClipboard.tsx +158 -0
  393. package/src/hooks/useCustomizationController.tsx +14 -0
  394. package/src/hooks/useDialogsController.tsx +14 -0
  395. package/src/hooks/useFireCMSContext.tsx +99 -0
  396. package/src/hooks/useLargeLayout.tsx +100 -0
  397. package/src/hooks/useModeController.tsx +24 -0
  398. package/src/hooks/useNavigationController.tsx +12 -0
  399. package/src/hooks/useProjectLog.tsx +39 -0
  400. package/src/hooks/useReferenceDialog.tsx +56 -0
  401. package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
  402. package/src/hooks/useSideDialogsController.tsx +21 -0
  403. package/src/hooks/useSideEntityController.tsx +15 -0
  404. package/src/hooks/useSnackbarController.tsx +75 -0
  405. package/src/hooks/useStorageSource.tsx +14 -0
  406. package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
  407. package/src/index.ts +8 -0
  408. package/src/internal/common.tsx +5 -0
  409. package/src/internal/useBuildCustomizationController.tsx +5 -0
  410. package/src/internal/useBuildDataSource.ts +363 -0
  411. package/src/internal/useBuildSideDialogsController.tsx +125 -0
  412. package/src/internal/useBuildSideEntityController.tsx +172 -0
  413. package/src/internal/useLocaleConfig.tsx +18 -0
  414. package/src/internal/useRestoreScroll.tsx +48 -0
  415. package/src/internal/useUnsavedChangesDialog.tsx +106 -0
  416. package/src/preview/PropertyPreview.tsx +225 -0
  417. package/src/preview/PropertyPreviewProps.tsx +59 -0
  418. package/src/preview/components/ArrayEnumPreview.tsx +39 -0
  419. package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
  420. package/src/preview/components/BooleanPreview.tsx +24 -0
  421. package/src/preview/components/DatePreview.tsx +26 -0
  422. package/src/preview/components/EmptyValue.tsx +10 -0
  423. package/src/preview/components/EnumValuesChip.tsx +38 -0
  424. package/src/preview/components/ImagePreview.tsx +106 -0
  425. package/src/preview/components/ReferencePreview.tsx +166 -0
  426. package/src/preview/components/StorageThumbnail.tsx +84 -0
  427. package/src/preview/components/UrlComponentPreview.tsx +79 -0
  428. package/src/preview/index.ts +27 -0
  429. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
  430. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
  431. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
  432. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
  433. package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
  434. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
  435. package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
  436. package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
  437. package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
  438. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
  439. package/src/preview/property_previews/StringPropertyPreview.tsx +60 -0
  440. package/src/preview/util.ts +31 -0
  441. package/src/types/analytics.ts +35 -0
  442. package/src/types/analytics_controller.tsx +10 -0
  443. package/src/types/appcheck.ts +29 -0
  444. package/src/types/auth.tsx +59 -0
  445. package/src/types/collections.ts +548 -0
  446. package/src/types/customization_controller.tsx +58 -0
  447. package/src/types/datasource.ts +389 -0
  448. package/src/types/dialogs_controller.tsx +33 -0
  449. package/src/types/entities.ts +80 -0
  450. package/src/types/entity_actions.tsx +43 -0
  451. package/src/types/entity_callbacks.ts +229 -0
  452. package/src/types/entity_link_builder.ts +8 -0
  453. package/src/types/entity_overrides.tsx +7 -0
  454. package/src/types/export_import.ts +26 -0
  455. package/src/types/fields.tsx +220 -0
  456. package/src/types/firecms.tsx +153 -0
  457. package/src/types/firecms_context.tsx +83 -0
  458. package/src/types/index.ts +29 -0
  459. package/src/types/local_config_persistence.tsx +23 -0
  460. package/src/types/locales.ts +81 -0
  461. package/src/types/modify_collections.tsx +6 -0
  462. package/src/types/navigation.ts +215 -0
  463. package/src/types/permissions.ts +81 -0
  464. package/src/types/plugins.tsx +207 -0
  465. package/src/types/properties.ts +851 -0
  466. package/src/types/property_config.tsx +72 -0
  467. package/src/types/resolved_entities.ts +148 -0
  468. package/src/types/side_dialogs_controller.tsx +68 -0
  469. package/src/types/side_entity_controller.tsx +97 -0
  470. package/src/types/storage.ts +96 -0
  471. package/src/types/user.ts +37 -0
  472. package/src/util/arrays.ts +3 -0
  473. package/src/util/builders.ts +139 -0
  474. package/src/util/collections.ts +72 -0
  475. package/src/util/common.tsx +2 -0
  476. package/src/util/dates.ts +1 -0
  477. package/src/util/entities.ts +196 -0
  478. package/src/util/enums.ts +56 -0
  479. package/src/util/flatten_object.ts +45 -0
  480. package/src/util/hash.ts +11 -0
  481. package/src/util/icon_list.ts +17 -0
  482. package/src/util/icon_synonyms.ts +1950 -0
  483. package/src/util/icons.tsx +56 -0
  484. package/src/util/index.ts +23 -0
  485. package/src/util/join_collections.ts +172 -0
  486. package/src/util/make_properties_editable.ts +29 -0
  487. package/src/util/navigation_from_path.ts +107 -0
  488. package/src/util/navigation_utils.ts +111 -0
  489. package/src/util/objects.ts +168 -0
  490. package/src/util/os.ts +13 -0
  491. package/src/util/parent_references_from_path.ts +56 -0
  492. package/src/util/paths.ts +27 -0
  493. package/src/util/permissions.ts +83 -0
  494. package/src/util/plurals.ts +190 -0
  495. package/src/util/property_utils.tsx +130 -0
  496. package/src/util/references.ts +51 -0
  497. package/src/util/regexp.ts +32 -0
  498. package/src/util/resolutions.ts +399 -0
  499. package/src/util/storage.ts +92 -0
  500. package/src/util/strings.ts +63 -0
  501. package/src/util/useDebouncedCallback.ts +25 -0
  502. package/src/util/useStorageUploadController.tsx +243 -0
  503. package/src/util/useTraceUpdate.tsx +23 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 FireCMS
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,174 @@
1
+ <p align="center">
2
+ <img src="https://firecms.co/img/dark_mode.webp" alt="Intro video" style="max-width: 100%;"/>
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="https://firecms.co">
7
+ <img src="https://firecms.co/img/logo_small.png" width="240px" alt="FireCMS logo" />
8
+ </a>
9
+ </p>
10
+
11
+ <h1 align="center">FireCMS</h1>
12
+ <h3 align="center">Awesome Firebase/Firestore-based headless CMS</h3>
13
+ <p align="center"><a href="https://demo.firecms.co">Live demo</a></p>
14
+
15
+ <br />
16
+
17
+
18
+ [![NPM](https://img.shields.io/npm/v/firecms.svg)](https://www.npmjs.com/package/firecms) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
19
+
20
+ Designed by developers for developers, FireCMS is a headless CMS and admin panel
21
+ that seamlessly integrates with **Firebase and Firestore** by default, but is
22
+ also
23
+ compatible with any backend.
24
+
25
+ Effortlessly generate **CRUD views** based on your configuration. FireCMS is
26
+ simple
27
+ to set up for standard cases and easy to extend and customize for more specific
28
+ needs.
29
+
30
+ Built to produce collection and form views that naturally align with the
31
+ collection/document model, FireCMS covers a wide range of basic and advanced use
32
+ cases. With extensibility in mind, it's easy to create your own views or modify
33
+ existing ones.
34
+
35
+ FireCMS does **not impose any data structure** restrictions, ensuring a smooth,
36
+ out-of-the-box experience for any project.
37
+
38
+ ### Core technologies
39
+
40
+ FireCMS is based on this great technologies:
41
+
42
+ - Typescript
43
+ - Tailwind CSS
44
+ - Firebase SDK 10
45
+ - React + React Router 6
46
+
47
+ ### Quickstart
48
+
49
+ The easiest way to get going is to check our quickstart guide! You will just
50
+ need to follow some quick steps:
51
+
52
+ https://firecms.co/docs/quickstart
53
+
54
+ ### Demo
55
+
56
+ Check the demo with all the core functionalities.
57
+
58
+ https://demo.firecms.co
59
+
60
+ > You can modify the data, but it gets periodically restored.
61
+
62
+ ### Changelog
63
+
64
+ https://firecms.co/docs/changelog
65
+
66
+ ## Features
67
+
68
+ FireCMS has been meticulously crafted to make it incredibly easy for developers
69
+ to build a CMS/admin tool while offering an excellent data editing experience
70
+ and a user-friendly interface for marketers and content managers.
71
+
72
+ ### 🏓 Exceptional Spreadsheet View
73
+
74
+ We've developed a highly efficient windowed **spreadsheet view** for
75
+ collections, allowing inline editing for most common fields, as well as popup
76
+ views for other cases and your custom field implementations.
77
+
78
+ Featuring **real-time** support, FireCMS is perfect for apps that require
79
+ constant updates. It also supports **text search** (through an external provider
80
+ like Algolia, if using Firestore), **filtering and sorting**, and **exporting**
81
+ data.
82
+
83
+ ### ✨ Robust Forms
84
+
85
+ ![fields](https://firecms.co/img/form_editing.webp)
86
+
87
+ When editing an entity, FireCMS offers a nested system of side dialogs for
88
+ navigating through **subcollections** and accessing custom views (such as custom
89
+ forms or blog previews). This functionality can also be accessed
90
+ programmatically using the `useSideEntityController` hook.
91
+
92
+ FireCMS includes **over 15 built-in fields** with numerous customization and
93
+ validation options. The components have been carefully designed for an
94
+ outstanding user experience, including advanced features like **references** to
95
+ other collections, **markdown**, and **array reordering**.
96
+
97
+ For unsupported use cases, create your own **custom field** as a React
98
+ component.
99
+
100
+ FireCMS also supports **conditional fields** in forms, allowing you to define
101
+ rules for active fields based on your logic.
102
+
103
+ ### 👮 Authentication, Permissions, and Role System
104
+
105
+ Define which navigation views users can see and the operations (create, edit,
106
+ delete) they can perform based on your role system. You can even configure this
107
+ on a per-entity or collection level.
108
+
109
+ By default, FireCMS supports all Firebase authorization mechanisms, but you can
110
+ implement your own.
111
+
112
+ ### 🏹 Relational Support
113
+
114
+ Define references to entities in other collections and benefit from the
115
+ integrated reference fields and shortcuts.
116
+
117
+ You can also define subcollections at the entity level for nesting data in a
118
+ collection/document/collection model.
119
+
120
+ ### 🆒 Real-Time Data
121
+
122
+ Every view in the CMS supports real-time data, making it suitable for displaying
123
+ constantly updated information.
124
+
125
+ Forms also support this feature, with any modified value in the database being
126
+ updated in any open form view as long as it hasn't been touched by the user.
127
+ This enables advanced cases where a Cloud Function is triggered after saving an
128
+ entity, modifying some values, and requiring real-time updates.
129
+
130
+ ### 🗂️ File Storage
131
+
132
+ FireCMS supports uploading files to Firebase Storage out of the box and provides
133
+ specific fields for handling single and multiple file uploads, as well as
134
+ reordering.
135
+
136
+ You can replace the Firebase Storage implementation with your own.
137
+
138
+ ## Included example
139
+
140
+ You can access the code for the demo project under
141
+ [`example`](https://github.com/FireCMSco/firecms/tree/master/example). It includes
142
+ every feature provided by this CMS.
143
+
144
+ Keep in mind you need to update the dependencies in that project if you want to
145
+ use it as it is, without linking it to the library source code. More details in
146
+ its README
147
+
148
+ ## Contact and support
149
+
150
+ If you need general support, you can open a GitHub issue.
151
+
152
+ Do you need consulting setting up your Firestore-based CMS in no time? We are
153
+ happy to help!
154
+ `hello@firecms.co`
155
+
156
+ ## Development
157
+
158
+ If you would like to make changes to the source, feel free to submit a PR!
159
+
160
+ When developing, the core library can be found under `lib`.
161
+ There is an example project in the folder `example`.
162
+
163
+ In order to run the project, you need to create a file
164
+ called `firebase_config.ts`
165
+ in `example/src`.
166
+
167
+ That file needs to export a valid Firebase config, that you can get
168
+ from your Firebase console when creating a webapp for your project.
169
+
170
+ Then simply run `yarn` and `yarn dev`
171
+
172
+ ## License
173
+
174
+ MIT © [FireCMS](https://github.com/FireCMSco)
@@ -0,0 +1,40 @@
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, }: {
32
+ direction?: "row" | "column";
33
+ disabled: boolean;
34
+ remove: (index: number) => void;
35
+ index: number;
36
+ provided: any;
37
+ copy: (index: number) => void;
38
+ }): import("react/jsx-runtime").JSX.Element;
39
+ export declare function getRandomId(): number;
40
+ 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,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,31 @@
1
+ import { CollectionSize, Entity, EntityAction, EntityCollection, SelectionController } from "../../types";
2
+ /**
3
+ *
4
+ * @param entity
5
+ * @param width
6
+ * @param frozen
7
+ * @param isSelected
8
+ * @param selectionEnabled
9
+ * @param size
10
+ * @param toggleEntitySelection
11
+ * @param hideId
12
+ * @constructor
13
+ *
14
+ * @group Collection components
15
+ */
16
+ export declare const EntityCollectionRowActions: ({ entity, collection, fullPath, width, frozen, isSelected, selectionEnabled, size, highlightEntity, onCollectionChange, unhighlightEntity, actions, hideId, selectionController, }: {
17
+ entity: Entity<any>;
18
+ collection?: EntityCollection<any, import("src/types/user").User> | undefined;
19
+ fullPath?: string | undefined;
20
+ width: number;
21
+ frozen?: boolean | undefined;
22
+ size: CollectionSize;
23
+ isSelected?: boolean | undefined;
24
+ selectionEnabled?: boolean | undefined;
25
+ actions?: EntityAction[] | undefined;
26
+ hideId?: boolean | undefined;
27
+ onCollectionChange?: (() => void) | undefined;
28
+ selectionController?: SelectionController | undefined;
29
+ highlightEntity?: ((entity: Entity<any>) => void) | undefined;
30
+ unhighlightEntity?: ((entity: Entity<any>) => void) | undefined;
31
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { User } from "../../types";
2
+ import { EntityCollectionTableProps } from "./EntityCollectionTableProps";
3
+ /**
4
+ * This component is in charge of rendering a collection table with a high
5
+ * degree of customization.
6
+ *
7
+ * This component is used internally by {@link EntityCollectionView} and
8
+ * {@link useReferenceDialog}
9
+ *
10
+ * Please note that you only need to use this component if you are building
11
+ * a custom view. If you just need to create a default view you can do it
12
+ * exclusively with config options.
13
+ *
14
+ * If you want to bind a {@link EntityCollection} to a table with the default
15
+ * options you see in collections in the top level navigation, you can
16
+ * check {@link EntityCollectionView}.
17
+ *
18
+ * The data displayed in the table is managed by a {@link EntityTableController}.
19
+ * You can build the default, bound to a path in the datasource, by using the hook
20
+ * {@link useDataSourceEntityCollectionTableController}
21
+ *
22
+ * @see EntityCollectionTableProps
23
+ * @see EntityCollectionView
24
+ * @see VirtualTable
25
+ * @group Components
26
+ */
27
+ export declare const EntityCollectionTable: <M extends Record<string, any>, UserType extends User>({ forceFilter, actionsStart, actions, title, tableRowActionsBuilder, uniqueFieldValidator, getPropertyFor, onValueChange, selectionController, highlightedEntities, onEntityClick, onColumnResize, onSizeChanged, textSearchEnabled, hoverRow, inlineEditing, additionalFields, displayedColumnIds, defaultSize, properties, tableController, filterable, sortable, endAdornment, AddColumnComponent, AdditionalHeaderWidget, additionalIDHeaderWidget, emptyComponent, getIdColumnWidth, onTextSearchClick, textSearchLoading }: EntityCollectionTableProps<M>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,99 @@
1
+ import React from "react";
2
+ import { AdditionalFieldDelegate, CollectionSize, Entity, EntityTableController, FilterValues, ResolvedProperties, ResolvedProperty, SelectionController, User } from "../../types";
3
+ import { OnCellValueChange, OnColumnResizeParams, UniqueFieldValidator } from "../common/types";
4
+ /**
5
+ * @group Collection components
6
+ */
7
+ export type EntityCollectionTableProps<M extends Record<string, any>, UserType extends User = User> = {
8
+ /**
9
+ * Display these entities as selected
10
+ */
11
+ selectionController: SelectionController<M>;
12
+ /**
13
+ * List of entities that will be displayed as selected;
14
+ */
15
+ highlightedEntities?: Entity<M>[];
16
+ /**
17
+ * Override the title in the toolbar
18
+ */
19
+ title?: React.ReactNode;
20
+ /**
21
+ * Additional component that renders actions such as buttons in the
22
+ * collection toolbar, displayed on the left side
23
+ */
24
+ actionsStart?: React.ReactNode;
25
+ /**
26
+ * Callback when a cell value changes.
27
+ */
28
+ onValueChange?: OnCellValueChange<any, M>;
29
+ uniqueFieldValidator?: UniqueFieldValidator;
30
+ /**
31
+ * Builder for creating the buttons in each row
32
+ * @param entity
33
+ * @param size
34
+ */
35
+ tableRowActionsBuilder?: (params: {
36
+ entity: Entity<M>;
37
+ size: CollectionSize;
38
+ width: number;
39
+ frozen?: boolean;
40
+ }) => React.ReactNode;
41
+ /**
42
+ * Callback when anywhere on the table is clicked
43
+ */
44
+ onEntityClick?(entity: Entity<M>): void;
45
+ /**
46
+ * Callback when a column is resized
47
+ */
48
+ onColumnResize?(params: OnColumnResizeParams): void;
49
+ /**
50
+ * Callback when the selected size of the table is changed
51
+ */
52
+ onSizeChanged?(size: CollectionSize): void;
53
+ /**
54
+ * Should apply a different style to a row when hovering
55
+ */
56
+ hoverRow?: boolean;
57
+ /**
58
+ * Additional component that renders actions such as buttons in the
59
+ * collection toolbar, displayed on the right side
60
+ */
61
+ actions?: React.ReactNode;
62
+ /**
63
+ * Controller holding the logic for the table
64
+ * {@link useDataSourceEntityCollectionTableController}
65
+ * {@link EntityTableController}
66
+ */
67
+ tableController: EntityTableController<M>;
68
+ displayedColumnIds: PropertyColumnConfig[];
69
+ forceFilter?: FilterValues<Extract<keyof M, string>>;
70
+ textSearchEnabled?: boolean;
71
+ inlineEditing?: boolean;
72
+ additionalFields?: AdditionalFieldDelegate<M, UserType>[];
73
+ defaultSize?: CollectionSize;
74
+ properties: ResolvedProperties<M>;
75
+ getPropertyFor?: (props: GetPropertyForProps<M>) => ResolvedProperties<M>[string];
76
+ filterable?: boolean;
77
+ sortable?: boolean;
78
+ endAdornment?: React.ReactNode;
79
+ AdditionalHeaderWidget?: React.ComponentType<{
80
+ property: ResolvedProperty;
81
+ propertyKey: string;
82
+ onHover: boolean;
83
+ }>;
84
+ AddColumnComponent?: React.ComponentType;
85
+ additionalIDHeaderWidget?: React.ReactNode;
86
+ emptyComponent?: React.ReactNode;
87
+ getIdColumnWidth?: () => number;
88
+ onTextSearchClick?: () => void;
89
+ textSearchLoading?: boolean;
90
+ };
91
+ export type GetPropertyForProps<M extends Record<string, any>> = {
92
+ propertyKey: string;
93
+ propertyValue: any;
94
+ entity: Entity<M>;
95
+ };
96
+ export type PropertyColumnConfig = {
97
+ key: string;
98
+ disabled: boolean;
99
+ };
@@ -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> {
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>>;
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { FilterValues, ResolvedProperties, ResolvedProperty } from "../../types";
3
+ import { VirtualTableColumn } from "../VirtualTable";
4
+ export declare function buildIdColumn(largeLayout?: boolean): VirtualTableColumn;
5
+ export interface PropertiesToColumnsParams<M extends Record<string, any>> {
6
+ properties: ResolvedProperties<M>;
7
+ sortable?: boolean;
8
+ forceFilter?: FilterValues<keyof M extends string ? keyof M : never>;
9
+ disabledFilter?: boolean;
10
+ AdditionalHeaderWidget?: React.ComponentType<{
11
+ property: ResolvedProperty;
12
+ propertyKey: string;
13
+ onHover: boolean;
14
+ }>;
15
+ }
16
+ export declare function propertiesToColumns<M extends Record<string, any>>({ properties, sortable, forceFilter, disabledFilter, AdditionalHeaderWidget }: PropertiesToColumnsParams<M>): VirtualTableColumn[];
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { CollectionSize, EntityCollection, EntityReference, FilterValues } from "../../../types";
3
+ type TableReferenceFieldProps = {
4
+ name: string;
5
+ disabled: boolean;
6
+ internalValue: EntityReference | EntityReference[] | undefined | null;
7
+ updateValue: (newValue: (EntityReference | EntityReference[] | null)) => void;
8
+ size: CollectionSize;
9
+ multiselect: boolean;
10
+ previewProperties?: string[];
11
+ title?: string;
12
+ path: string;
13
+ forceFilter?: FilterValues<string>;
14
+ };
15
+ export declare function TableReferenceField(props: TableReferenceFieldProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare const TableReferenceFieldSuccess: React.NamedExoticComponent<TableReferenceFieldProps & {
17
+ collection: EntityCollection;
18
+ }>;
19
+ 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,6 @@
1
+ export { EntityCollectionTable } from "./EntityCollectionTable";
2
+ export type { EntityCollectionTableProps, } from "./EntityCollectionTableProps";
3
+ export * from "./PropertyTableCell";
4
+ export * from "./EntityCollectionRowActions";
5
+ export * from "../common/useDataSourceEntityCollectionTableController";
6
+ export * from "./column_utils";
@@ -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,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,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 "../../../common";
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> | 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 {};