@firecms/core 3.0.0-canary.98 → 3.0.0-rc.1
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 +2 -2
- package/dist/app/Drawer.d.ts +0 -1
- package/dist/app/Scaffold.d.ts +4 -0
- package/dist/components/ArrayContainer.d.ts +31 -12
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +3 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +17 -3
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
- package/dist/components/EntityCollectionTable/index.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +6 -3
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +8 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +8 -6
- package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
- package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
- package/dist/components/HomePage/NavigationCard.d.ts +3 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +3 -2
- package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +1 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +11 -2
- package/dist/components/common/default_entity_actions.d.ts +0 -2
- package/dist/components/common/index.d.ts +1 -1
- package/dist/components/common/useColumnsIds.d.ts +1 -0
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +10 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +3 -1
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/core/DefaultAppBar.d.ts +8 -2
- package/dist/core/DrawerNavigationItem.d.ts +2 -1
- package/dist/core/EntityEditView.d.ts +40 -22
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +2 -2
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +0 -1
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/field_configs.d.ts +1 -1
- package/dist/core/index.d.ts +2 -1
- package/dist/form/EntityForm.d.ts +50 -0
- package/dist/form/EntityFormActions.d.ts +21 -0
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/FormEntry.d.ts +6 -0
- package/dist/form/components/FormLayout.d.ts +5 -0
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/index.d.ts +3 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +4 -10
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/index.d.ts +17 -16
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +3 -3
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +4 -3
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +57 -12
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useModeController.d.ts +1 -2
- package/dist/hooks/useProjectLog.d.ts +7 -1
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +3 -3
- package/dist/index.es.js +20108 -14471
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +20039 -14407
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +3 -2
- package/dist/internal/useBuildSideEntityController.d.ts +3 -3
- package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
- package/dist/preview/PropertyPreviewProps.d.ts +1 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +2 -2
- package/dist/preview/util.d.ts +3 -3
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/FireCMSRoute.d.ts +1 -0
- package/dist/routes/HomePageRoute.d.ts +3 -0
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +7 -9
- package/dist/types/collections.d.ts +86 -25
- package/dist/types/customization_controller.d.ts +8 -0
- package/dist/types/datasource.d.ts +19 -17
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +2 -1
- package/dist/types/entity_actions.d.ts +58 -8
- package/dist/types/entity_callbacks.d.ts +16 -16
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +43 -17
- package/dist/types/firecms.d.ts +16 -3
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/navigation.d.ts +60 -17
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +42 -9
- package/dist/types/properties.d.ts +65 -22
- package/dist/types/property_config.d.ts +1 -3
- package/dist/types/roles.d.ts +3 -0
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/side_entity_controller.d.ts +14 -1
- package/dist/types/storage.d.ts +75 -0
- package/dist/types/user.d.ts +1 -0
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/callbacks.d.ts +2 -0
- package/dist/util/createFormexStub.d.ts +2 -0
- package/dist/util/entities.d.ts +2 -2
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +23 -0
- package/dist/util/icon_synonyms.d.ts +0 -1
- package/dist/util/icons.d.ts +5 -2
- package/dist/util/index.d.ts +3 -0
- package/dist/util/navigation_from_path.d.ts +10 -1
- package/dist/util/navigation_utils.d.ts +13 -1
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/property_utils.d.ts +4 -4
- package/dist/util/references.d.ts +2 -2
- package/dist/util/resolutions.d.ts +30 -6
- package/dist/util/storage.d.ts +1 -1
- package/dist/util/useStorageUploadController.d.ts +2 -2
- package/package.json +133 -125
- package/src/app/Drawer.tsx +0 -1
- package/src/app/Scaffold.tsx +33 -29
- package/src/components/ArrayContainer.tsx +447 -229
- package/src/components/CircularProgressCenter.tsx +1 -1
- package/src/components/ClearFilterSortButton.tsx +1 -1
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
- package/src/components/DeleteEntityDialog.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +59 -25
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +23 -17
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +20 -3
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +35 -9
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +21 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +6 -12
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +6 -6
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +35 -26
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +132 -101
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +178 -85
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
- package/src/components/EntityCollectionView/useSelectionController.tsx +5 -4
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityJsonPreview.tsx +66 -0
- package/src/components/EntityPreview.tsx +75 -57
- package/src/components/EntityView.tsx +8 -5
- package/src/components/ErrorView.tsx +3 -3
- package/src/components/FireCMSLogo.tsx +7 -51
- package/src/components/HomePage/DefaultHomePage.tsx +522 -160
- package/src/components/HomePage/FavouritesView.tsx +9 -14
- package/src/components/HomePage/HomePageDnD.tsx +642 -0
- package/src/components/HomePage/NavigationCard.tsx +47 -38
- package/src/components/HomePage/NavigationCardBinding.tsx +16 -15
- package/src/components/HomePage/NavigationGroup.tsx +144 -30
- package/src/components/HomePage/RenameGroupDialog.tsx +117 -0
- package/src/components/HomePage/SmallNavigationCard.tsx +1 -2
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +22 -13
- package/src/components/SearchIconsView.tsx +2 -2
- package/src/components/SelectableTable/SelectableTable.tsx +154 -142
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +4 -2
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +10 -8
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +59 -10
- package/src/components/UnsavedChangesDialog.tsx +46 -0
- package/src/components/VirtualTable/VirtualTable.tsx +65 -44
- package/src/components/VirtualTable/VirtualTableCell.tsx +0 -8
- package/src/components/VirtualTable/VirtualTableHeader.tsx +8 -8
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
- package/src/components/VirtualTable/VirtualTableProps.tsx +12 -2
- package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/common/default_entity_actions.tsx +62 -42
- package/src/components/common/index.ts +1 -1
- package/src/components/common/useColumnsIds.tsx +1 -1
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +1 -0
- package/src/components/index.tsx +4 -1
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +3 -2
- package/src/contexts/ModeController.tsx +1 -3
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +124 -85
- package/src/core/DefaultDrawer.tsx +30 -22
- package/src/core/DrawerNavigationItem.tsx +32 -28
- package/src/core/EntityEditView.tsx +388 -995
- package/src/core/EntityEditViewFormActions.tsx +329 -0
- package/src/core/EntitySidePanel.tsx +88 -20
- package/src/core/FireCMS.tsx +46 -25
- package/src/core/FireCMSRouter.tsx +17 -0
- package/src/core/NavigationRoutes.tsx +23 -32
- package/src/core/SideDialogs.tsx +22 -12
- package/src/core/field_configs.tsx +24 -10
- package/src/core/index.tsx +4 -2
- package/src/form/EntityForm.tsx +814 -0
- package/src/form/EntityFormActions.tsx +211 -0
- package/src/form/PropertyFieldBinding.tsx +55 -41
- package/src/form/components/CustomIdField.tsx +9 -3
- package/src/form/components/FieldHelperText.tsx +1 -1
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +30 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +5 -4
- package/src/form/components/StorageUploadProgress.tsx +2 -3
- package/src/form/components/index.tsx +3 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -18
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -36
- package/src/form/field_bindings/BlockFieldBinding.tsx +55 -33
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -15
- package/src/form/field_bindings/MapFieldBinding.tsx +72 -62
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +10 -8
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +28 -19
- package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -32
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -13
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +247 -168
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/index.tsx +17 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +12 -6
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +26 -35
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +10 -2
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
- package/src/hooks/useBuildModeController.tsx +15 -28
- package/src/hooks/useBuildNavigationController.tsx +386 -124
- package/src/hooks/useFireCMSContext.tsx +3 -33
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useModeController.tsx +1 -2
- package/src/hooks/useProjectLog.tsx +16 -5
- package/src/hooks/useResolvedNavigationFrom.tsx +9 -11
- package/src/hooks/useValidateAuthenticator.tsx +3 -3
- package/src/internal/useBuildDataSource.ts +67 -80
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +149 -86
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +28 -12
- package/src/preview/PropertyPreviewProps.tsx +1 -1
- package/src/preview/components/BooleanPreview.tsx +1 -1
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +10 -9
- package/src/preview/components/ReferencePreview.tsx +6 -16
- package/src/preview/components/UrlComponentPreview.tsx +20 -21
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -5
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +5 -4
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +6 -4
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +5 -3
- package/src/preview/property_previews/MapPropertyPreview.tsx +7 -6
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
- package/src/preview/property_previews/StringPropertyPreview.tsx +2 -2
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +246 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/analytics.ts +3 -0
- package/src/types/auth.tsx +8 -12
- package/src/types/collections.ts +101 -28
- package/src/types/customization_controller.tsx +9 -0
- package/src/types/datasource.ts +21 -20
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +3 -1
- package/src/types/entity_actions.tsx +71 -8
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +52 -19
- package/src/types/firecms.tsx +18 -4
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/navigation.ts +76 -22
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +50 -9
- package/src/types/properties.ts +74 -22
- package/src/types/property_config.tsx +1 -2
- package/src/types/roles.ts +3 -0
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +16 -1
- package/src/types/storage.ts +82 -0
- package/src/types/user.ts +2 -0
- package/src/util/builders.ts +10 -8
- package/src/util/callbacks.ts +119 -0
- package/src/util/createFormexStub.tsx +62 -0
- package/src/util/entities.ts +5 -3
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +204 -0
- package/src/util/icon_list.ts +1 -1
- package/src/util/icon_synonyms.ts +0 -1
- package/src/util/icons.tsx +36 -11
- package/src/util/index.ts +3 -0
- package/src/util/join_collections.ts +9 -2
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +33 -12
- package/src/util/navigation_utils.ts +135 -19
- package/src/util/objects.ts +74 -14
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +8 -8
- package/src/util/property_utils.tsx +17 -6
- package/src/util/references.ts +19 -8
- package/src/util/resolutions.ts +93 -24
- package/src/util/storage.ts +6 -2
- package/src/util/useStorageUploadController.tsx +74 -29
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/form/PropertiesForm.d.ts +0 -8
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -27
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -236
- package/src/form/PropertiesForm.tsx +0 -81
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { DataSource, DataSourceDelegate, NavigationController, PropertyConfig } from "../types";
|
|
1
|
+
import { AuthController, DataSource, DataSourceDelegate, NavigationController, PropertyConfig } from "../types";
|
|
2
2
|
/**
|
|
3
3
|
* Use this hook to build a {@link DataSource} based on Firestore
|
|
4
4
|
* @param firebaseApp
|
|
5
5
|
* @group Firebase
|
|
6
6
|
*/
|
|
7
|
-
export declare function useBuildDataSource({ delegate, propertyConfigs, navigationController }: {
|
|
7
|
+
export declare function useBuildDataSource({ delegate, propertyConfigs, navigationController, authController }: {
|
|
8
8
|
delegate: DataSourceDelegate;
|
|
9
9
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
10
10
|
navigationController: NavigationController;
|
|
11
|
+
authController: AuthController;
|
|
11
12
|
}): DataSource;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityCollection, EntitySidePanelProps, NavigationController, SideDialogsController, SideEntityController } from "../types";
|
|
2
|
-
export declare function getEntityViewWidth(props: EntitySidePanelProps<any>, small: boolean): string;
|
|
3
|
-
export declare const useBuildSideEntityController: (navigation: NavigationController, sideDialogsController: SideDialogsController) => SideEntityController;
|
|
1
|
+
import { AuthController, CustomizationController, EntityCollection, EntitySidePanelProps, NavigationController, SideDialogsController, SideEntityController } from "../types";
|
|
2
|
+
export declare function getEntityViewWidth(props: EntitySidePanelProps<any>, small: boolean, customizationController: CustomizationController, authController: AuthController): string;
|
|
3
|
+
export declare const useBuildSideEntityController: (navigation: NavigationController, sideDialogsController: SideDialogsController, authController: AuthController) => SideEntityController;
|
|
4
4
|
export declare function buildSidePanelsFromUrl(path: string, collections: EntityCollection[], newFlag: boolean): EntitySidePanelProps<any>[];
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook to handle navigation blocking when there are unsaved changes.
|
|
3
|
+
*
|
|
4
|
+
* @param when - Indicates whether to block navigation.
|
|
5
|
+
* @param onSuccess - Callback invoked when navigation is confirmed.
|
|
6
|
+
* @returns An object containing the state of navigation blocking and handlers.
|
|
7
|
+
*/
|
|
2
8
|
export declare function useNavigationUnsavedChangesDialog(when: boolean, onSuccess: () => void): {
|
|
3
9
|
navigationWasBlocked: boolean;
|
|
4
10
|
handleCancel: () => void;
|
|
5
11
|
handleOk: () => void;
|
|
6
12
|
};
|
|
7
|
-
export interface UnsavedChangesDialogProps {
|
|
8
|
-
open: boolean;
|
|
9
|
-
body?: React.ReactNode;
|
|
10
|
-
title?: string;
|
|
11
|
-
handleOk: () => void;
|
|
12
|
-
handleCancel: () => void;
|
|
13
|
-
}
|
|
14
|
-
export declare function UnsavedChangesDialog({ open, handleOk, handleCancel, body, title }: UnsavedChangesDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,7 +3,7 @@ import { EnumValues } from "../../types";
|
|
|
3
3
|
export interface EnumValuesChipProps {
|
|
4
4
|
enumValues?: EnumValues;
|
|
5
5
|
enumKey: string | number;
|
|
6
|
-
size: "
|
|
6
|
+
size: "small" | "medium" | "large";
|
|
7
7
|
className?: string;
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
}
|
|
@@ -4,7 +4,7 @@ import { PreviewSize } from "../PropertyPreviewProps";
|
|
|
4
4
|
export type ReferencePreviewProps = {
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
reference: EntityReference;
|
|
7
|
-
size
|
|
7
|
+
size?: PreviewSize;
|
|
8
8
|
previewProperties?: string[];
|
|
9
9
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
10
10
|
hover?: boolean;
|
|
@@ -14,4 +14,4 @@ export type ReferencePreviewProps = {
|
|
|
14
14
|
/**
|
|
15
15
|
* @group Preview components
|
|
16
16
|
*/
|
|
17
|
-
export declare const ReferencePreview:
|
|
17
|
+
export declare const ReferencePreview: (props: ReferencePreviewProps) => import("react/jsx-runtime").JSX.Element;
|
package/dist/preview/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CollectionSize } from "../types";
|
|
2
2
|
import { PreviewSize } from "./PropertyPreviewProps";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
3
|
+
export declare const SMALL_THUMBNAIL = 40;
|
|
4
|
+
export declare const MEDIUM_THUMBNAIL = 100;
|
|
5
|
+
export declare const LARGE_THUMBNAIL = 200;
|
|
6
6
|
export declare function getThumbnailMeasure(size: PreviewSize): number;
|
|
7
7
|
export declare function getPreviewSizeFrom(size: CollectionSize): PreviewSize;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function FireCMSRoute(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_navigate_to_admin_view" | "home_favorite_navigate_to_view" | "collection_inline_editing" | "unmapped_event";
|
|
1
|
+
export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_navigate_to_admin_view" | "home_favorite_navigate_to_view" | "home_move_card" | "home_move_group" | "home_drop_new_group" | "collection_inline_editing" | "unmapped_event";
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -8,16 +8,12 @@ import { StorageSource } from "./storage";
|
|
|
8
8
|
* to do it as the result of a hook.
|
|
9
9
|
* @group Hooks and utilities
|
|
10
10
|
*/
|
|
11
|
-
export type AuthController<
|
|
11
|
+
export type AuthController<USER extends User = any, ExtraData = any> = {
|
|
12
12
|
/**
|
|
13
13
|
* The user currently logged in
|
|
14
14
|
* The values can be: the user object, null if they skipped login
|
|
15
15
|
*/
|
|
16
|
-
user:
|
|
17
|
-
/**
|
|
18
|
-
* Roles related to the logged user
|
|
19
|
-
*/
|
|
20
|
-
roles?: Role[];
|
|
16
|
+
user: USER | null;
|
|
21
17
|
/**
|
|
22
18
|
* Initial loading flag. It is used not to display the login screen
|
|
23
19
|
* when the app first loads, and it has not been checked whether the user
|
|
@@ -51,20 +47,22 @@ export type AuthController<UserType extends User = any, ExtraData = any> = {
|
|
|
51
47
|
loginSkipped: boolean;
|
|
52
48
|
extra: ExtraData;
|
|
53
49
|
setExtra: (extra: ExtraData) => void;
|
|
50
|
+
setUser?: (user: USER | null) => void;
|
|
51
|
+
setUserRoles?: (roles: Role[]) => void;
|
|
54
52
|
};
|
|
55
53
|
/**
|
|
56
54
|
* Implement this function to allow access to specific users.
|
|
57
55
|
* @group Hooks and utilities
|
|
58
56
|
*/
|
|
59
|
-
export type Authenticator<
|
|
57
|
+
export type Authenticator<USER extends User = User> = (props: {
|
|
60
58
|
/**
|
|
61
59
|
* Logged-in user or null
|
|
62
60
|
*/
|
|
63
|
-
user:
|
|
61
|
+
user: USER | null;
|
|
64
62
|
/**
|
|
65
63
|
* AuthController
|
|
66
64
|
*/
|
|
67
|
-
authController:
|
|
65
|
+
authController: AuthController<USER>;
|
|
68
66
|
/**
|
|
69
67
|
* Connector to your database, e.g. your Firestore database
|
|
70
68
|
*/
|
|
@@ -16,7 +16,7 @@ import { EntityOverrides } from "./entity_overrides";
|
|
|
16
16
|
*
|
|
17
17
|
* @group Models
|
|
18
18
|
*/
|
|
19
|
-
export interface EntityCollection<M extends Record<string, any> = any,
|
|
19
|
+
export interface EntityCollection<M extends Record<string, any> = any, USER extends User = any> {
|
|
20
20
|
/**
|
|
21
21
|
* You can set an alias that will be used internally instead of the `path`.
|
|
22
22
|
* The `alias` value will be used to determine the URL of the collection,
|
|
@@ -44,6 +44,11 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
44
44
|
* This path also determines the URL in FireCMS, unless an alias is specified
|
|
45
45
|
*/
|
|
46
46
|
path: string;
|
|
47
|
+
/**
|
|
48
|
+
* Optional database id of this collection. If not specified, the default
|
|
49
|
+
* database id will be used.
|
|
50
|
+
*/
|
|
51
|
+
databaseId?: string;
|
|
47
52
|
/**
|
|
48
53
|
* If this collection is a top level navigation entry, you can set this
|
|
49
54
|
* property to `true` to indicate that this collection is a collection group.
|
|
@@ -53,19 +58,27 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
53
58
|
* Icon key to use in this collection.
|
|
54
59
|
* You can use any of the icons in the Material specs:
|
|
55
60
|
* https://fonts.google.com/icons
|
|
56
|
-
* e.g. 'account_tree' or 'person'
|
|
61
|
+
* e.g. 'account_tree' or 'person'.
|
|
62
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
57
63
|
*/
|
|
58
|
-
icon?: string;
|
|
64
|
+
icon?: string | React.ReactNode;
|
|
59
65
|
/**
|
|
60
66
|
* Optional field used to group top level navigation entries under a~
|
|
61
67
|
* navigation view. If you set this value in a subcollection it has no
|
|
62
68
|
* effect.
|
|
69
|
+
* @deprecated This prop is deprecated and will be removed in the future.
|
|
70
|
+
* You can apply grouping by using the `navigationGroupMappings` prop in the
|
|
71
|
+
* {@link useBuildNavigationController} hook instead.
|
|
63
72
|
*/
|
|
64
73
|
group?: string;
|
|
65
74
|
/**
|
|
66
75
|
* Set of properties that compose an entity
|
|
67
76
|
*/
|
|
68
77
|
properties: PropertiesOrBuilders<M>;
|
|
78
|
+
/**
|
|
79
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
80
|
+
*/
|
|
81
|
+
previewProperties?: string[];
|
|
69
82
|
/**
|
|
70
83
|
* Title property of the entity. This is the property that will be used
|
|
71
84
|
* as the title in entity related views and references.
|
|
@@ -73,11 +86,10 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
73
86
|
*/
|
|
74
87
|
titleProperty?: keyof M;
|
|
75
88
|
/**
|
|
76
|
-
*
|
|
77
|
-
* Defaults to `
|
|
78
|
-
* Keep in mind that you can also set this prop to individual properties.
|
|
89
|
+
* When editing an entity, you can choose to open the entity in a side dialog
|
|
90
|
+
* or in a full screen dialog. Defaults to `full_screen`.
|
|
79
91
|
*/
|
|
80
|
-
|
|
92
|
+
openEntityMode?: "side_panel" | "full_screen";
|
|
81
93
|
/**
|
|
82
94
|
* Order in which the properties are displayed.
|
|
83
95
|
* If you are specifying your collection as code, the order is the same as the
|
|
@@ -88,7 +100,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
88
100
|
* `hidden` in the property definition, will be ignored.
|
|
89
101
|
* `propertiesOrder` has precedence over `hidden`.
|
|
90
102
|
* - For properties use the property key.
|
|
91
|
-
* - For additional
|
|
103
|
+
* - For additional fields use the field key.
|
|
92
104
|
* - If you have subcollections, you get a column for each subcollection,
|
|
93
105
|
* with the path (or alias) as the subcollection, prefixed with
|
|
94
106
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
@@ -99,10 +111,11 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
99
111
|
* `hidden` in the property definition,will be ignored.
|
|
100
112
|
* `propertiesOrder` has precedence over `hidden`.
|
|
101
113
|
*/
|
|
102
|
-
propertiesOrder?: (Extract<keyof M, string> | `subcollection:${string}`)[];
|
|
114
|
+
propertiesOrder?: (Extract<keyof M, string> | string | `subcollection:${string}` | "collectionGroupParent")[];
|
|
103
115
|
/**
|
|
104
116
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
105
|
-
* collection are loaded.
|
|
117
|
+
* collection are loaded. This means that when reaching the end of the
|
|
118
|
+
* collection, the CMS will load more entities.
|
|
106
119
|
* You can specify a number to specify the pagination size (50 by default)
|
|
107
120
|
* Defaults to `true`
|
|
108
121
|
*/
|
|
@@ -116,7 +129,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
116
129
|
* Permissions the logged-in user can perform on this collection.
|
|
117
130
|
* If not specified everything defaults to `true`.
|
|
118
131
|
*/
|
|
119
|
-
permissions?: Permissions | PermissionsBuilder<EntityCollection,
|
|
132
|
+
permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
|
|
120
133
|
/**
|
|
121
134
|
* Are the entities in this collection selectable. Defaults to `true`
|
|
122
135
|
*/
|
|
@@ -132,7 +145,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
132
145
|
* is being created, updated or deleted.
|
|
133
146
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
134
147
|
*/
|
|
135
|
-
callbacks?: EntityCallbacks<M,
|
|
148
|
+
callbacks?: EntityCallbacks<M, USER>;
|
|
136
149
|
/**
|
|
137
150
|
* Builder for rendering additional components such as buttons in the
|
|
138
151
|
* collection toolbar
|
|
@@ -160,8 +173,11 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
160
173
|
* }
|
|
161
174
|
* }
|
|
162
175
|
* ```
|
|
176
|
+
*
|
|
177
|
+
* You can also pass the action as a string that represents the `key`, in which case it will
|
|
178
|
+
* use the action defined in the main configuration under `entityActions`.
|
|
163
179
|
*/
|
|
164
|
-
entityActions?: EntityAction<M,
|
|
180
|
+
entityActions?: (EntityAction<M, USER> | string)[];
|
|
165
181
|
/**
|
|
166
182
|
* Pass your own selection controller if you want to control selected
|
|
167
183
|
* entities externally.
|
|
@@ -180,12 +196,14 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
180
196
|
* Force a filter in this view. If applied, the rest of the filters will
|
|
181
197
|
* be disabled. Filters applied with this prop cannot be changed.
|
|
182
198
|
* e.g. `forceFilter: { age: [">=", 18] }`
|
|
199
|
+
* e.g. `forceFilter: { related_user: ["==", new EntityReference("sdc43dsw2", "users")] }`
|
|
183
200
|
*/
|
|
184
201
|
forceFilter?: FilterValues<Extract<keyof M, string>>;
|
|
185
202
|
/**
|
|
186
203
|
* Initial filters applied to the collection this collection is related to.
|
|
187
204
|
* Defaults to none. Filters applied with this prop can be changed.
|
|
188
205
|
* e.g. `initialFilter: { age: [">=", 18] }`
|
|
206
|
+
* e.g. `initialFilter: { related_user: ["==", new EntityReference("sdc43dsw2", "users")] }`
|
|
189
207
|
*/
|
|
190
208
|
initialFilter?: FilterValues<Extract<keyof M, string>>;
|
|
191
209
|
/**
|
|
@@ -206,7 +224,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
206
224
|
* You can add additional fields to the collection view by implementing
|
|
207
225
|
* an additional field delegate.
|
|
208
226
|
*/
|
|
209
|
-
additionalFields?: AdditionalFieldDelegate<M,
|
|
227
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
210
228
|
/**
|
|
211
229
|
* Default size of the rendered collection
|
|
212
230
|
*/
|
|
@@ -251,7 +269,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
251
269
|
/**
|
|
252
270
|
*
|
|
253
271
|
*/
|
|
254
|
-
exportable?: boolean | ExportConfig<
|
|
272
|
+
exportable?: boolean | ExportConfig<USER>;
|
|
255
273
|
/**
|
|
256
274
|
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
257
275
|
* are writing custom code
|
|
@@ -265,6 +283,28 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
265
283
|
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
266
284
|
*/
|
|
267
285
|
sideDialogWidth?: number | string;
|
|
286
|
+
/**
|
|
287
|
+
* Can this collection configuration be edited by the end user.
|
|
288
|
+
* Defaults to `true`.
|
|
289
|
+
* Keep in mind that you can also set this prop to individual properties.
|
|
290
|
+
* This prop has only effect if you are using the collection editor.
|
|
291
|
+
*/
|
|
292
|
+
editable?: boolean;
|
|
293
|
+
/**
|
|
294
|
+
* If set to true, the default values of the properties will be applied
|
|
295
|
+
* to the entity every time the entity is updated (not only when created).
|
|
296
|
+
* Defaults to false.
|
|
297
|
+
*/
|
|
298
|
+
alwaysApplyDefaultValues?: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* If set to true, a tab including the JSON representation of the entity will be included.
|
|
301
|
+
*/
|
|
302
|
+
includeJsonView?: boolean;
|
|
303
|
+
/**
|
|
304
|
+
* If set to true, changes to the entity will be saved in a subcollection.
|
|
305
|
+
* This prop has no effect if the history plugin is not enabled
|
|
306
|
+
*/
|
|
307
|
+
history?: boolean;
|
|
268
308
|
}
|
|
269
309
|
/**
|
|
270
310
|
* Parameter passed to the `Actions` prop in the collection configuration.
|
|
@@ -273,7 +313,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
273
313
|
*
|
|
274
314
|
* @group Models
|
|
275
315
|
*/
|
|
276
|
-
export interface CollectionActionsProps<M extends Record<string, any> = any,
|
|
316
|
+
export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
277
317
|
/**
|
|
278
318
|
* Full collection path of this entity. This is the full path, like
|
|
279
319
|
* `users/1234/addresses`
|
|
@@ -304,7 +344,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
304
344
|
/**
|
|
305
345
|
* Context of the app status
|
|
306
346
|
*/
|
|
307
|
-
context: FireCMSContext<
|
|
347
|
+
context: FireCMSContext<USER>;
|
|
308
348
|
/**
|
|
309
349
|
* Count of the entities in this collection
|
|
310
350
|
*/
|
|
@@ -347,16 +387,16 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
|
|
|
347
387
|
* @group Models
|
|
348
388
|
*/
|
|
349
389
|
export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
|
|
350
|
-
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any,
|
|
390
|
+
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
|
|
351
391
|
entity: Entity<M>;
|
|
352
|
-
context: FireCMSContext<
|
|
392
|
+
context: FireCMSContext<USER>;
|
|
353
393
|
};
|
|
354
394
|
/**
|
|
355
395
|
* Use this interface for adding additional fields to entity collection views.
|
|
356
396
|
* If you need to do some async loading you can use {@link AsyncPreviewComponent}
|
|
357
397
|
* @group Models
|
|
358
398
|
*/
|
|
359
|
-
export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
399
|
+
export interface AdditionalFieldDelegate<M extends Record<string, any> = any, USER extends User = User> {
|
|
360
400
|
/**
|
|
361
401
|
* ID of this column. You can use this id in the `properties` field of the
|
|
362
402
|
* collection in any order you want
|
|
@@ -373,7 +413,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
373
413
|
/**
|
|
374
414
|
* Builder for the content of the cell for this column
|
|
375
415
|
*/
|
|
376
|
-
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M,
|
|
416
|
+
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
|
|
377
417
|
/**
|
|
378
418
|
* If this column needs to update dynamically based on other properties,
|
|
379
419
|
* you can define an array of keys as strings with the
|
|
@@ -410,14 +450,24 @@ export type EntityCustomView<M extends Record<string, any> = any> = {
|
|
|
410
450
|
*/
|
|
411
451
|
name: string;
|
|
412
452
|
/**
|
|
413
|
-
*
|
|
414
|
-
* bottom of the panel (save buttons, delete buttons, etc.)
|
|
453
|
+
* Render this custom view in the tab of the entity view, instead of the name
|
|
415
454
|
*/
|
|
416
|
-
|
|
455
|
+
tabComponent?: React.ReactNode;
|
|
456
|
+
/**
|
|
457
|
+
* If set to true, the actions of the entity (save, discard,delete) will be
|
|
458
|
+
* included in the view. By default the actions are located in the right or bottom,
|
|
459
|
+
* based on the screen size. You can force the actions to be located at the bottom
|
|
460
|
+
* by setting this prop to "bottom".
|
|
461
|
+
*/
|
|
462
|
+
includeActions?: boolean | "bottom";
|
|
417
463
|
/**
|
|
418
464
|
* Builder for rendering the custom view
|
|
419
465
|
*/
|
|
420
466
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
467
|
+
/**
|
|
468
|
+
* Position of this tab in the entity view. Defaults to `end`.
|
|
469
|
+
*/
|
|
470
|
+
position?: "start" | "end";
|
|
421
471
|
};
|
|
422
472
|
/**
|
|
423
473
|
* Parameters passed to the builder in charge of rendering a custom panel for
|
|
@@ -443,6 +493,10 @@ export interface EntityCustomViewParams<M extends Record<string, any> = any> {
|
|
|
443
493
|
* Use the form context to access the form state and methods
|
|
444
494
|
*/
|
|
445
495
|
formContext: FormContext;
|
|
496
|
+
/**
|
|
497
|
+
* If this is a subcollection, this is the path of the parent collections
|
|
498
|
+
*/
|
|
499
|
+
parentCollectionIds?: string[];
|
|
446
500
|
}
|
|
447
501
|
export type InferCollectionType<S extends EntityCollection> = S extends EntityCollection<infer M> ? M : never;
|
|
448
502
|
/**
|
|
@@ -475,6 +529,12 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
475
529
|
clearFilter?: () => void;
|
|
476
530
|
itemCount?: number;
|
|
477
531
|
setItemCount?: (itemCount: number) => void;
|
|
532
|
+
initialScroll?: number;
|
|
533
|
+
onScroll?: (props: {
|
|
534
|
+
scrollDirection: "forward" | "backward";
|
|
535
|
+
scrollOffset: number;
|
|
536
|
+
scrollUpdateWasRequested: boolean;
|
|
537
|
+
}) => void;
|
|
478
538
|
paginationEnabled?: boolean;
|
|
479
539
|
pageSize?: number;
|
|
480
540
|
checkFilterCombination?: (filterValues: FilterValues<any>, sortBy?: [string, "asc" | "desc"]) => boolean;
|
|
@@ -487,5 +547,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
|
|
|
487
547
|
cellRect: DOMRect;
|
|
488
548
|
width: number;
|
|
489
549
|
height: number;
|
|
490
|
-
|
|
550
|
+
entityPath: string;
|
|
551
|
+
entityId: string;
|
|
491
552
|
};
|
|
@@ -4,6 +4,7 @@ import { FireCMSPlugin } from "./plugins";
|
|
|
4
4
|
import { EntityCustomView } from "./collections";
|
|
5
5
|
import { Locale } from "./locales";
|
|
6
6
|
import { PropertyConfig } from "./property_config";
|
|
7
|
+
import { EntityAction } from "./entity_actions";
|
|
7
8
|
export type CustomizationController = {
|
|
8
9
|
/**
|
|
9
10
|
* Builder for generating utility links for entities
|
|
@@ -21,6 +22,13 @@ export type CustomizationController = {
|
|
|
21
22
|
* You can also define an entity view from the UI.
|
|
22
23
|
*/
|
|
23
24
|
entityViews?: EntityCustomView[];
|
|
25
|
+
/**
|
|
26
|
+
* List of actions that can be performed on entities.
|
|
27
|
+
* These actions are displayed in the entity view and in the collection view.
|
|
28
|
+
* You can later reuse these actions in the `entityActions` prop of a collection,
|
|
29
|
+
* by specifying the `key` of the action.
|
|
30
|
+
*/
|
|
31
|
+
entityActions?: EntityAction<any, any>[];
|
|
24
32
|
/**
|
|
25
33
|
* Format of the dates in the CMS.
|
|
26
34
|
* Defaults to 'MMMM dd, yyyy, HH:mm:ss'
|
|
@@ -8,6 +8,7 @@ import { FireCMSContext } from "./firecms_context";
|
|
|
8
8
|
export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
9
9
|
path: string;
|
|
10
10
|
entityId: string;
|
|
11
|
+
databaseId?: string;
|
|
11
12
|
collection?: EntityCollection<M, any>;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
@@ -53,6 +54,7 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
|
53
54
|
*/
|
|
54
55
|
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
55
56
|
entity: Entity<M>;
|
|
57
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Component in charge of communicating with the data source.
|
|
@@ -97,7 +99,7 @@ export interface DataSource {
|
|
|
97
99
|
* @param entityId
|
|
98
100
|
* @param collection
|
|
99
101
|
*/
|
|
100
|
-
fetchEntity<M extends Record<string, any> = any>({ path, entityId, collection }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
102
|
+
fetchEntity<M extends Record<string, any> = any>({ path, entityId, databaseId, collection }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
101
103
|
/**
|
|
102
104
|
* Get realtime updates on one entity.
|
|
103
105
|
* @param path
|
|
@@ -121,21 +123,21 @@ export interface DataSource {
|
|
|
121
123
|
* @param entity
|
|
122
124
|
* @return was the whole deletion flow successful
|
|
123
125
|
*/
|
|
124
|
-
deleteEntity<M extends Record<string, any> = any>({ entity }: DeleteEntityProps<M>): Promise<void>;
|
|
126
|
+
deleteEntity<M extends Record<string, any> = any>({ entity, collection }: DeleteEntityProps<M>): Promise<void>;
|
|
125
127
|
/**
|
|
126
128
|
* Check if the given property is unique in the given collection
|
|
127
129
|
* @param path Collection path
|
|
128
130
|
* @param name of the property
|
|
129
131
|
* @param value
|
|
130
|
-
* @param
|
|
132
|
+
* @param collection
|
|
131
133
|
* @param entityId
|
|
132
134
|
* @return `true` if there are no other fields besides the given entity
|
|
133
135
|
*/
|
|
134
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
136
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
135
137
|
/**
|
|
136
138
|
* Generate an id for a new entity
|
|
137
139
|
*/
|
|
138
|
-
generateEntityId(path: string): string;
|
|
140
|
+
generateEntityId(path: string, collection: EntityCollection): string;
|
|
139
141
|
/**
|
|
140
142
|
* Count the number of entities in a collection
|
|
141
143
|
*/
|
|
@@ -163,13 +165,9 @@ export type FilterCombinationValidProps = {
|
|
|
163
165
|
filterValues: FilterValues<any>;
|
|
164
166
|
sortBy?: [string, "asc" | "desc"];
|
|
165
167
|
};
|
|
166
|
-
export type SaveEntityDelegateProps<M extends Record<string, any> = any> =
|
|
167
|
-
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
168
|
-
|
|
169
|
-
};
|
|
170
|
-
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M> & {
|
|
171
|
-
isCollectionGroup?: boolean;
|
|
172
|
-
};
|
|
168
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
|
|
169
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
|
|
170
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
|
|
173
171
|
export interface DataSourceDelegate {
|
|
174
172
|
/**
|
|
175
173
|
* Key that identifies this data source delegate
|
|
@@ -213,7 +211,7 @@ export interface DataSourceDelegate {
|
|
|
213
211
|
* @param path
|
|
214
212
|
* @param entityId
|
|
215
213
|
*/
|
|
216
|
-
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }:
|
|
214
|
+
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
217
215
|
/**
|
|
218
216
|
* Get realtime updates on one entity.
|
|
219
217
|
* @param path
|
|
@@ -223,7 +221,7 @@ export interface DataSourceDelegate {
|
|
|
223
221
|
* @param onError
|
|
224
222
|
* @return Function to cancel subscription
|
|
225
223
|
*/
|
|
226
|
-
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }:
|
|
224
|
+
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }: ListenEntityProps<M>): () => void;
|
|
227
225
|
/**
|
|
228
226
|
* Save entity to the specified path
|
|
229
227
|
* @param path
|
|
@@ -244,13 +242,14 @@ export interface DataSourceDelegate {
|
|
|
244
242
|
* @param name of the property
|
|
245
243
|
* @param value
|
|
246
244
|
* @param entityId
|
|
245
|
+
* @param collection
|
|
247
246
|
* @return `true` if there are no other fields besides the given entity
|
|
248
247
|
*/
|
|
249
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
248
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
250
249
|
/**
|
|
251
250
|
* Generate an id for a new entity
|
|
252
251
|
*/
|
|
253
|
-
generateEntityId(path: string): string;
|
|
252
|
+
generateEntityId(path: string, collection?: EntityCollection): string;
|
|
254
253
|
/**
|
|
255
254
|
* Count the number of entities in a collection
|
|
256
255
|
*/
|
|
@@ -259,7 +258,9 @@ export interface DataSourceDelegate {
|
|
|
259
258
|
* Check if the given filter combination is valid
|
|
260
259
|
* @param props
|
|
261
260
|
*/
|
|
262
|
-
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">
|
|
261
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
262
|
+
databaseId?: string;
|
|
263
|
+
}): boolean;
|
|
263
264
|
/**
|
|
264
265
|
* Get the object to generate the current time in the datasource
|
|
265
266
|
*/
|
|
@@ -270,6 +271,7 @@ export interface DataSourceDelegate {
|
|
|
270
271
|
initTextSearch?: (props: {
|
|
271
272
|
context: FireCMSContext;
|
|
272
273
|
path: string;
|
|
274
|
+
databaseId?: string;
|
|
273
275
|
collection: EntityCollection;
|
|
274
276
|
parentCollectionIds?: string[];
|
|
275
277
|
}) => Promise<boolean>;
|
|
@@ -12,7 +12,7 @@ export interface DialogsController {
|
|
|
12
12
|
* Open a dialog
|
|
13
13
|
* @param props
|
|
14
14
|
*/
|
|
15
|
-
open: (props: DialogControllerEntryProps) => {
|
|
15
|
+
open: <T extends object = object>(props: DialogControllerEntryProps<T>) => {
|
|
16
16
|
closeDialog: () => void;
|
|
17
17
|
};
|
|
18
18
|
}
|
|
@@ -20,7 +20,7 @@ export interface DialogsController {
|
|
|
20
20
|
* Props used to open a side dialog
|
|
21
21
|
* @group Hooks and utilities
|
|
22
22
|
*/
|
|
23
|
-
export interface DialogControllerEntryProps {
|
|
23
|
+
export interface DialogControllerEntryProps<T extends object = object> {
|
|
24
24
|
key: string;
|
|
25
25
|
/**
|
|
26
26
|
* The component type that will be rendered
|
|
@@ -28,5 +28,9 @@ export interface DialogControllerEntryProps {
|
|
|
28
28
|
Component: React.ComponentType<{
|
|
29
29
|
open: boolean;
|
|
30
30
|
closeDialog: () => void;
|
|
31
|
-
}>;
|
|
31
|
+
} & T>;
|
|
32
|
+
/**
|
|
33
|
+
* Props to pass to the dialog component
|
|
34
|
+
*/
|
|
35
|
+
props?: T;
|
|
32
36
|
}
|
package/dist/types/entities.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type EntityStatus = "new" | "existing" | "copy";
|
|
|
7
7
|
* Representation of an entity fetched from the datasource
|
|
8
8
|
* @group Models
|
|
9
9
|
*/
|
|
10
|
-
export interface Entity<M extends object> {
|
|
10
|
+
export interface Entity<M extends object = any> {
|
|
11
11
|
/**
|
|
12
12
|
* ID of the entity
|
|
13
13
|
*/
|
|
@@ -21,6 +21,7 @@ export interface Entity<M extends object> {
|
|
|
21
21
|
* Current values
|
|
22
22
|
*/
|
|
23
23
|
values: EntityValues<M>;
|
|
24
|
+
databaseId?: string;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* This type represents a record of key value pairs as described in an
|