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