@firecms/core 3.0.0-canary.16 → 3.0.0-canary.160
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 +3 -3
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +30 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +19 -6
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +11 -12
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +7 -5
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +12 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +7 -6
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +3 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +1 -1
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +15 -12
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
- package/dist/components/common/index.d.ts +1 -0
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +4 -6
- package/dist/components/common/useColumnsIds.d.ts +2 -1
- package/dist/components/common/useDataSourceEntityCollectionTableController.d.ts +4 -1
- package/dist/components/index.d.ts +4 -2
- package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +18 -4
- package/dist/core/FireCMS.d.ts +2 -2
- package/dist/core/NavigationRoutes.d.ts +3 -3
- package/dist/core/index.d.ts +3 -4
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -4
- package/dist/form/components/index.d.ts +1 -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/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 +3 -5
- 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 +3 -5
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +4 -5
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +3 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBuildNavigationController.d.ts +3 -4
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useProjectLog.d.ts +8 -2
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +5 -9
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +20202 -14110
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +22773 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -16
- package/dist/preview/PropertyPreviewProps.d.ts +6 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +3 -2
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/util.d.ts +3 -3
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +53 -18
- package/dist/types/datasource.d.ts +51 -35
- package/dist/types/entities.d.ts +6 -1
- package/dist/types/entity_actions.d.ts +18 -4
- 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 +63 -41
- package/dist/types/firecms.d.ts +6 -2
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +6 -5
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +22 -12
- package/dist/types/properties.d.ts +34 -21
- package/dist/types/property_config.d.ts +0 -2
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +1 -0
- package/dist/util/builders.d.ts +2 -2
- package/dist/util/entities.d.ts +2 -2
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -97
- package/dist/util/icons.d.ts +6 -3
- package/dist/util/index.d.ts +1 -0
- package/dist/util/navigation_utils.d.ts +2 -2
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +3 -3
- package/dist/util/resolutions.d.ts +30 -16
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/package.json +59 -44
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +243 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +92 -25
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
- package/src/components/DeleteEntityDialog.tsx +9 -18
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +28 -25
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +12 -8
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +31 -17
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +16 -8
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +30 -35
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +19 -7
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +82 -75
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +139 -87
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +19 -7
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityPreview.tsx +55 -51
- package/src/components/EntityView.tsx +10 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/HomePage/DefaultHomePage.tsx +26 -19
- package/src/components/HomePage/FavouritesView.tsx +1 -1
- package/src/components/HomePage/NavigationCard.tsx +4 -4
- package/src/components/HomePage/NavigationCardBinding.tsx +2 -2
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +48 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +8 -7
- package/src/components/ReferenceWidget.tsx +22 -12
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +9 -9
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +30 -6
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +90 -21
- package/src/components/VirtualTable/VirtualTable.tsx +77 -46
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +18 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +8 -4
- package/src/components/common/index.ts +1 -0
- package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
- package/src/components/common/types.tsx +4 -6
- package/src/components/common/useColumnsIds.tsx +23 -2
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +25 -14
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +4 -2
- package/src/contexts/DialogsProvider.tsx +2 -2
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +178 -0
- package/src/core/DefaultDrawer.tsx +183 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +721 -156
- package/src/core/EntitySidePanel.tsx +1 -2
- package/src/core/FireCMS.tsx +57 -53
- package/src/core/NavigationRoutes.tsx +7 -8
- package/src/core/SideDialogs.tsx +2 -1
- package/src/core/field_configs.tsx +9 -10
- package/src/core/index.tsx +3 -4
- package/src/form/PropertyFieldBinding.tsx +74 -35
- package/src/form/components/CustomIdField.tsx +6 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/LabelWithIcon.tsx +27 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +22 -12
- package/src/form/components/StorageUploadProgress.tsx +3 -4
- package/src/form/components/index.tsx +1 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +29 -17
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +45 -35
- package/src/form/field_bindings/BlockFieldBinding.tsx +53 -33
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
- package/src/form/field_bindings/MapFieldBinding.tsx +67 -48
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +52 -34
- package/src/form/field_bindings/SelectFieldBinding.tsx +21 -13
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +37 -47
- package/src/form/field_bindings/SwitchFieldBinding.tsx +28 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +26 -23
- package/src/form/index.tsx +4 -9
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +1 -17
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +12 -8
- package/src/hooks/data/useCollectionFetch.tsx +2 -2
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +5 -5
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +11 -5
- package/src/hooks/useBuildNavigationController.tsx +92 -34
- package/src/hooks/useFireCMSContext.tsx +5 -5
- package/src/hooks/useProjectLog.tsx +32 -10
- package/src/hooks/useResolvedNavigationFrom.tsx +6 -6
- package/src/hooks/useValidateAuthenticator.tsx +21 -41
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +72 -82
- package/src/internal/useBuildSideDialogsController.tsx +1 -0
- package/src/internal/useBuildSideEntityController.tsx +102 -22
- package/src/internal/useUnsavedChangesDialog.tsx +5 -3
- package/src/preview/PropertyPreview.tsx +11 -18
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +25 -35
- package/src/preview/components/ReferencePreview.tsx +23 -34
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +44 -11
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
- package/src/preview/property_previews/MapPropertyPreview.tsx +9 -9
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +10 -10
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +62 -20
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +60 -43
- package/src/types/entities.ts +11 -1
- package/src/types/entity_actions.tsx +20 -7
- 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 +69 -45
- package/src/types/firecms.tsx +7 -2
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +7 -7
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +24 -14
- package/src/types/properties.ts +39 -22
- package/src/types/property_config.tsx +0 -2
- package/src/types/side_dialogs_controller.tsx +13 -0
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +2 -0
- package/src/util/builders.ts +6 -6
- package/src/util/entities.ts +6 -5
- package/src/util/enums.ts +1 -1
- package/src/util/icon_list.ts +15 -10
- package/src/util/icon_synonyms.ts +3 -99
- package/src/util/icons.tsx +17 -7
- package/src/util/index.ts +1 -0
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_utils.ts +6 -6
- package/src/util/objects.ts +45 -28
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +11 -4
- package/src/util/references.ts +3 -0
- package/src/util/resolutions.ts +79 -46
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +34 -8
- package/src/util/useTraceUpdate.tsx +1 -0
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -55
- package/dist/core/SideEntityView.d.ts +0 -7
- package/dist/form/EntityForm.d.ts +0 -77
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/FireCMSAppBar.tsx +0 -165
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/core/Drawer.tsx +0 -191
- package/src/core/Scaffold.tsx +0 -281
- package/src/core/SideEntityView.tsx +0 -38
- package/src/form/EntityForm.tsx +0 -728
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataSource, DataSourceDelegate,
|
|
1
|
+
import { 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
|
|
@@ -9,18 +9,3 @@ export declare function useBuildDataSource({ delegate, propertyConfigs, navigati
|
|
|
9
9
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
10
10
|
navigationController: NavigationController;
|
|
11
11
|
}): DataSource;
|
|
12
|
-
/**
|
|
13
|
-
* Recursive function that converts Firestore data types into CMS or plain
|
|
14
|
-
* JS types.
|
|
15
|
-
* FireCMS uses Javascript dates internally instead of Firestore timestamps.
|
|
16
|
-
* This makes it easier to interact with the rest of the libraries and
|
|
17
|
-
* bindings.
|
|
18
|
-
* Also, Firestore references are replaced with {@link EntityReference}
|
|
19
|
-
* @param data
|
|
20
|
-
* @param buildReference
|
|
21
|
-
* @param buildGeoPoint
|
|
22
|
-
* @param buildDate
|
|
23
|
-
* @param buildDelete
|
|
24
|
-
* @group Firestore
|
|
25
|
-
*/
|
|
26
|
-
export declare function cmsToDelegateModel(data: any, buildReference: (reference: EntityReference) => any, buildGeoPoint: (geoPoint: GeoPoint) => any, buildDate: (date: Date) => any, buildDelete: () => any): any;
|
|
@@ -2,7 +2,7 @@ import { CMSType, Property, ResolvedProperty } from "../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* @group Preview components
|
|
4
4
|
*/
|
|
5
|
-
export type PreviewSize = "
|
|
5
|
+
export type PreviewSize = "small" | "medium" | "large";
|
|
6
6
|
/**
|
|
7
7
|
* @group Preview components
|
|
8
8
|
*/
|
|
@@ -37,4 +37,9 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
|
37
37
|
* Additional properties set by the developer
|
|
38
38
|
*/
|
|
39
39
|
customProps?: CustomProps;
|
|
40
|
+
/**
|
|
41
|
+
* If the preview should be interactive or not.
|
|
42
|
+
* This applies only to videos.
|
|
43
|
+
*/
|
|
44
|
+
interactive?: boolean;
|
|
40
45
|
}
|
|
@@ -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
|
}
|
|
@@ -8,9 +8,10 @@ export type ReferencePreviewProps = {
|
|
|
8
8
|
previewProperties?: string[];
|
|
9
9
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
10
10
|
hover?: boolean;
|
|
11
|
-
|
|
11
|
+
includeEntityLink?: boolean;
|
|
12
|
+
includeId?: boolean;
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
15
|
* @group Preview components
|
|
15
16
|
*/
|
|
16
|
-
export declare const ReferencePreview:
|
|
17
|
+
export declare const ReferencePreview: (props: ReferencePreviewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,10 +4,11 @@ type StorageThumbnailProps = {
|
|
|
4
4
|
storagePathOrDownloadUrl: string;
|
|
5
5
|
storeUrl: boolean;
|
|
6
6
|
size: PreviewSize;
|
|
7
|
+
interactive?: boolean;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
9
10
|
* @group Preview components
|
|
10
11
|
*/
|
|
11
12
|
export declare const StorageThumbnail: React.FunctionComponent<StorageThumbnailProps>;
|
|
12
|
-
export declare function StorageThumbnailInternal({ storeUrl, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
14
|
export {};
|
|
@@ -4,9 +4,10 @@ import { PreviewSize } from "../PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function UrlComponentPreview({ url, previewType, size, hint }: {
|
|
7
|
+
export declare function UrlComponentPreview({ url, previewType, size, hint, interactive }: {
|
|
8
8
|
url: string;
|
|
9
9
|
previewType?: PreviewType;
|
|
10
10
|
size: PreviewSize;
|
|
11
11
|
hint?: string;
|
|
12
|
+
interactive?: boolean;
|
|
12
13
|
}): React.ReactElement;
|
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;
|
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
|
|
@@ -32,7 +28,7 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
32
28
|
/**
|
|
33
29
|
* Sign out
|
|
34
30
|
*/
|
|
35
|
-
signOut: () => void
|
|
31
|
+
signOut: () => Promise<void>;
|
|
36
32
|
/**
|
|
37
33
|
* Error initializing the authentication
|
|
38
34
|
*/
|
|
@@ -51,20 +47,22 @@ export type AuthController<UserType extends User = any, ExtraData extends 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,7 +58,8 @@ 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
64
|
icon?: string;
|
|
59
65
|
/**
|
|
@@ -94,8 +100,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
94
100
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
95
101
|
* - If you are using a collection group, you will also have an
|
|
96
102
|
* additional `collectionGroupParent` column.
|
|
103
|
+
* You can use this prop to hide some properties from the table view.
|
|
104
|
+
* Note that if you set this prop, other ways to hide fields, like
|
|
105
|
+
* `hidden` in the property definition,will be ignored.
|
|
106
|
+
* `propertiesOrder` has precedence over `hidden`.
|
|
97
107
|
*/
|
|
98
|
-
propertiesOrder?: Extract<keyof M, string>[];
|
|
108
|
+
propertiesOrder?: (Extract<keyof M, string> | `subcollection:${string}`)[];
|
|
99
109
|
/**
|
|
100
110
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
101
111
|
* collection are loaded.
|
|
@@ -112,7 +122,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
112
122
|
* Permissions the logged-in user can perform on this collection.
|
|
113
123
|
* If not specified everything defaults to `true`.
|
|
114
124
|
*/
|
|
115
|
-
permissions?: Permissions | PermissionsBuilder<EntityCollection,
|
|
125
|
+
permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
|
|
116
126
|
/**
|
|
117
127
|
* Are the entities in this collection selectable. Defaults to `true`
|
|
118
128
|
*/
|
|
@@ -128,7 +138,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
128
138
|
* is being created, updated or deleted.
|
|
129
139
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
130
140
|
*/
|
|
131
|
-
callbacks?: EntityCallbacks<M,
|
|
141
|
+
callbacks?: EntityCallbacks<M, USER>;
|
|
132
142
|
/**
|
|
133
143
|
* Builder for rendering additional components such as buttons in the
|
|
134
144
|
* collection toolbar
|
|
@@ -157,7 +167,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
157
167
|
* }
|
|
158
168
|
* ```
|
|
159
169
|
*/
|
|
160
|
-
entityActions?: EntityAction<M,
|
|
170
|
+
entityActions?: EntityAction<M, USER>[];
|
|
161
171
|
/**
|
|
162
172
|
* Pass your own selection controller if you want to control selected
|
|
163
173
|
* entities externally.
|
|
@@ -202,7 +212,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
202
212
|
* You can add additional fields to the collection view by implementing
|
|
203
213
|
* an additional field delegate.
|
|
204
214
|
*/
|
|
205
|
-
additionalFields?: AdditionalFieldDelegate<M,
|
|
215
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
206
216
|
/**
|
|
207
217
|
* Default size of the rendered collection
|
|
208
218
|
*/
|
|
@@ -247,13 +257,24 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
247
257
|
/**
|
|
248
258
|
*
|
|
249
259
|
*/
|
|
250
|
-
exportable?: boolean | ExportConfig<
|
|
260
|
+
exportable?: boolean | ExportConfig<USER>;
|
|
251
261
|
/**
|
|
252
262
|
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
253
263
|
* are writing custom code
|
|
254
264
|
*/
|
|
255
265
|
ownerId?: string;
|
|
266
|
+
/**
|
|
267
|
+
* Overrides for the entity view, like the data source or the storage source.
|
|
268
|
+
*/
|
|
256
269
|
overrides?: EntityOverrides;
|
|
270
|
+
/**
|
|
271
|
+
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
272
|
+
*/
|
|
273
|
+
sideDialogWidth?: number | string;
|
|
274
|
+
/**
|
|
275
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
276
|
+
*/
|
|
277
|
+
previewProperties?: string[];
|
|
257
278
|
}
|
|
258
279
|
/**
|
|
259
280
|
* Parameter passed to the `Actions` prop in the collection configuration.
|
|
@@ -262,7 +283,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
262
283
|
*
|
|
263
284
|
* @group Models
|
|
264
285
|
*/
|
|
265
|
-
export interface CollectionActionsProps<M extends Record<string, any> = any,
|
|
286
|
+
export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
266
287
|
/**
|
|
267
288
|
* Full collection path of this entity. This is the full path, like
|
|
268
289
|
* `users/1234/addresses`
|
|
@@ -293,7 +314,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
293
314
|
/**
|
|
294
315
|
* Context of the app status
|
|
295
316
|
*/
|
|
296
|
-
context: FireCMSContext<
|
|
317
|
+
context: FireCMSContext<USER>;
|
|
297
318
|
/**
|
|
298
319
|
* Count of the entities in this collection
|
|
299
320
|
*/
|
|
@@ -302,14 +323,13 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
302
323
|
/**
|
|
303
324
|
* Use this controller to retrieve the selected entities or modify them in
|
|
304
325
|
* an {@link EntityCollection}
|
|
305
|
-
* If you want to pass a `SelectionController` to
|
|
306
326
|
* @group Models
|
|
307
327
|
*/
|
|
308
328
|
export type SelectionController<M extends Record<string, any> = any> = {
|
|
309
329
|
selectedEntities: Entity<M>[];
|
|
310
330
|
setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
|
|
311
331
|
isEntitySelected: (entity: Entity<M>) => boolean;
|
|
312
|
-
toggleEntitySelection: (entity: Entity<M
|
|
332
|
+
toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
|
|
313
333
|
};
|
|
314
334
|
/**
|
|
315
335
|
* Filter conditions in a `Query.where()` clause are specified using the
|
|
@@ -337,16 +357,16 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
|
|
|
337
357
|
* @group Models
|
|
338
358
|
*/
|
|
339
359
|
export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
|
|
340
|
-
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any,
|
|
360
|
+
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
|
|
341
361
|
entity: Entity<M>;
|
|
342
|
-
context: FireCMSContext<
|
|
362
|
+
context: FireCMSContext<USER>;
|
|
343
363
|
};
|
|
344
364
|
/**
|
|
345
365
|
* Use this interface for adding additional fields to entity collection views.
|
|
346
366
|
* If you need to do some async loading you can use {@link AsyncPreviewComponent}
|
|
347
367
|
* @group Models
|
|
348
368
|
*/
|
|
349
|
-
export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
369
|
+
export interface AdditionalFieldDelegate<M extends Record<string, any> = any, USER extends User = User> {
|
|
350
370
|
/**
|
|
351
371
|
* ID of this column. You can use this id in the `properties` field of the
|
|
352
372
|
* collection in any order you want
|
|
@@ -363,7 +383,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
363
383
|
/**
|
|
364
384
|
* Builder for the content of the cell for this column
|
|
365
385
|
*/
|
|
366
|
-
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M,
|
|
386
|
+
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
|
|
367
387
|
/**
|
|
368
388
|
* If this column needs to update dynamically based on other properties,
|
|
369
389
|
* you can define an array of keys as strings with the
|
|
@@ -391,8 +411,22 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
391
411
|
* @group Models
|
|
392
412
|
*/
|
|
393
413
|
export type EntityCustomView<M extends Record<string, any> = any> = {
|
|
414
|
+
/**
|
|
415
|
+
* Key of this custom view.
|
|
416
|
+
*/
|
|
394
417
|
key: string;
|
|
418
|
+
/**
|
|
419
|
+
* Name of this custom view.
|
|
420
|
+
*/
|
|
395
421
|
name: string;
|
|
422
|
+
/**
|
|
423
|
+
* If set to true, the actions of the entity will be included in the
|
|
424
|
+
* bottom of the panel (save buttons, delete buttons, etc.)
|
|
425
|
+
*/
|
|
426
|
+
includeActions?: boolean;
|
|
427
|
+
/**
|
|
428
|
+
* Builder for rendering the custom view
|
|
429
|
+
*/
|
|
396
430
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
397
431
|
};
|
|
398
432
|
/**
|
|
@@ -445,7 +479,7 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
445
479
|
filterValues?: FilterValues<Extract<keyof M, string>>;
|
|
446
480
|
setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
|
|
447
481
|
sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
|
|
448
|
-
setSortBy?: (sortBy
|
|
482
|
+
setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
|
|
449
483
|
searchString?: string;
|
|
450
484
|
setSearchString?: (searchString?: string) => void;
|
|
451
485
|
clearFilter?: () => void;
|
|
@@ -463,5 +497,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
|
|
|
463
497
|
cellRect: DOMRect;
|
|
464
498
|
width: number;
|
|
465
499
|
height: number;
|
|
466
|
-
|
|
500
|
+
entityPath: string;
|
|
501
|
+
entityId: string;
|
|
467
502
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Entity,
|
|
1
|
+
import { Entity, EntityStatus, EntityValues } from "./entities";
|
|
2
2
|
import { EntityCollection, FilterValues } from "./collections";
|
|
3
3
|
import { ResolvedEntityCollection } from "./resolved_entities";
|
|
4
|
+
import { FireCMSContext } from "./firecms_context";
|
|
4
5
|
/**
|
|
5
6
|
* @group Datasource
|
|
6
7
|
*/
|
|
@@ -13,6 +14,7 @@ export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
|
13
14
|
* @group Datasource
|
|
14
15
|
*/
|
|
15
16
|
export type ListenEntityProps<M extends Record<string, any> = any> = FetchEntityProps<M> & {
|
|
17
|
+
databaseId?: string;
|
|
16
18
|
onUpdate: (entity: Entity<M>) => void;
|
|
17
19
|
onError?: (error: Error) => void;
|
|
18
20
|
};
|
|
@@ -52,11 +54,11 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
|
52
54
|
*/
|
|
53
55
|
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
54
56
|
entity: Entity<M>;
|
|
57
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
60
|
+
* Component in charge of communicating with the data source.
|
|
61
|
+
* Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
|
|
60
62
|
* @group Datasource
|
|
61
63
|
*/
|
|
62
64
|
export interface DataSource {
|
|
@@ -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
|
*/
|
|
@@ -145,6 +147,17 @@ export interface DataSource {
|
|
|
145
147
|
* @param props
|
|
146
148
|
*/
|
|
147
149
|
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Called when the user clicks on the search bar in a collection view.
|
|
152
|
+
* Useful for initializing a text search index.
|
|
153
|
+
* @param props
|
|
154
|
+
*/
|
|
155
|
+
initTextSearch?: (props: {
|
|
156
|
+
context: FireCMSContext;
|
|
157
|
+
path: string;
|
|
158
|
+
collection: EntityCollection;
|
|
159
|
+
parentCollectionIds?: string[];
|
|
160
|
+
}) => Promise<boolean>;
|
|
148
161
|
}
|
|
149
162
|
export type FilterCombinationValidProps = {
|
|
150
163
|
path: string;
|
|
@@ -152,14 +165,18 @@ export type FilterCombinationValidProps = {
|
|
|
152
165
|
filterValues: FilterValues<any>;
|
|
153
166
|
sortBy?: [string, "asc" | "desc"];
|
|
154
167
|
};
|
|
155
|
-
export type SaveEntityDelegateProps<M extends Record<string, any> = any> =
|
|
156
|
-
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
157
|
-
|
|
158
|
-
};
|
|
159
|
-
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M> & {
|
|
160
|
-
isCollectionGroup?: boolean;
|
|
161
|
-
};
|
|
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>;
|
|
162
171
|
export interface DataSourceDelegate {
|
|
172
|
+
/**
|
|
173
|
+
* Key that identifies this data source delegate
|
|
174
|
+
*/
|
|
175
|
+
key: string;
|
|
176
|
+
/**
|
|
177
|
+
* If the data source has been initialised
|
|
178
|
+
*/
|
|
179
|
+
initialised?: boolean;
|
|
163
180
|
/**
|
|
164
181
|
* Fetch data from a collection
|
|
165
182
|
* @param path
|
|
@@ -194,7 +211,7 @@ export interface DataSourceDelegate {
|
|
|
194
211
|
* @param path
|
|
195
212
|
* @param entityId
|
|
196
213
|
*/
|
|
197
|
-
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>;
|
|
198
215
|
/**
|
|
199
216
|
* Get realtime updates on one entity.
|
|
200
217
|
* @param path
|
|
@@ -204,12 +221,12 @@ export interface DataSourceDelegate {
|
|
|
204
221
|
* @param onError
|
|
205
222
|
* @return Function to cancel subscription
|
|
206
223
|
*/
|
|
207
|
-
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;
|
|
208
225
|
/**
|
|
209
226
|
* Save entity to the specified path
|
|
210
227
|
* @param path
|
|
211
|
-
* @param
|
|
212
|
-
* @param
|
|
228
|
+
* @param entityId
|
|
229
|
+
* @param values
|
|
213
230
|
* @param status
|
|
214
231
|
*/
|
|
215
232
|
saveEntity<M extends Record<string, any> = any>({ path, entityId, values, status }: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
|
|
@@ -225,13 +242,14 @@ export interface DataSourceDelegate {
|
|
|
225
242
|
* @param name of the property
|
|
226
243
|
* @param value
|
|
227
244
|
* @param entityId
|
|
245
|
+
* @param collection
|
|
228
246
|
* @return `true` if there are no other fields besides the given entity
|
|
229
247
|
*/
|
|
230
|
-
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>;
|
|
231
249
|
/**
|
|
232
250
|
* Generate an id for a new entity
|
|
233
251
|
*/
|
|
234
|
-
generateEntityId(path: string): string;
|
|
252
|
+
generateEntityId(path: string, collection?: EntityCollection): string;
|
|
235
253
|
/**
|
|
236
254
|
* Count the number of entities in a collection
|
|
237
255
|
*/
|
|
@@ -240,23 +258,21 @@ export interface DataSourceDelegate {
|
|
|
240
258
|
* Check if the given filter combination is valid
|
|
241
259
|
* @param props
|
|
242
260
|
*/
|
|
243
|
-
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
* @param reference
|
|
247
|
-
*/
|
|
248
|
-
buildReference: (reference: EntityReference) => any;
|
|
249
|
-
/**
|
|
250
|
-
* Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
|
|
251
|
-
* @param geoPoint
|
|
252
|
-
*/
|
|
253
|
-
buildGeoPoint: (geoPoint: GeoPoint) => any;
|
|
261
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
262
|
+
databaseId?: string;
|
|
263
|
+
}): boolean;
|
|
254
264
|
/**
|
|
255
265
|
* Get the object to generate the current time in the datasource
|
|
256
266
|
*/
|
|
257
|
-
currentTime()
|
|
258
|
-
buildDate: (date: Date) => any;
|
|
259
|
-
buildDeleteFieldValue: () => any;
|
|
267
|
+
currentTime?: () => any;
|
|
260
268
|
delegateToCMSModel: (data: any) => any;
|
|
269
|
+
cmsToDelegateModel: (data: any) => any;
|
|
261
270
|
setDateToMidnight: (input?: any) => any;
|
|
271
|
+
initTextSearch?: (props: {
|
|
272
|
+
context: FireCMSContext;
|
|
273
|
+
path: string;
|
|
274
|
+
databaseId?: string;
|
|
275
|
+
collection: EntityCollection;
|
|
276
|
+
parentCollectionIds?: string[];
|
|
277
|
+
}) => Promise<boolean>;
|
|
262
278
|
}
|
package/dist/types/entities.d.ts
CHANGED
|
@@ -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
|
|
@@ -31,7 +32,7 @@ export type EntityValues<M extends object> = M;
|
|
|
31
32
|
/**
|
|
32
33
|
* Class used to create a reference to an entity in a different path
|
|
33
34
|
*/
|
|
34
|
-
export declare class EntityReference
|
|
35
|
+
export declare class EntityReference {
|
|
35
36
|
/**
|
|
36
37
|
* ID of the entity
|
|
37
38
|
*/
|
|
@@ -56,3 +57,7 @@ export declare class GeoPoint {
|
|
|
56
57
|
readonly longitude: number;
|
|
57
58
|
constructor(latitude: number, longitude: number);
|
|
58
59
|
}
|
|
60
|
+
export declare class Vector {
|
|
61
|
+
readonly value: number[];
|
|
62
|
+
constructor(value: number[]);
|
|
63
|
+
}
|
|
@@ -4,10 +4,24 @@ import { Entity } from "./entities";
|
|
|
4
4
|
import { EntityCollection, SelectionController } from "./collections";
|
|
5
5
|
import { User } from "./user";
|
|
6
6
|
import { SideEntityController } from "./side_entity_controller";
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* An entity action is a custom action that can be performed on an entity.
|
|
9
|
+
* They are displayed in the entity view and in the collection view.
|
|
10
|
+
*/
|
|
11
|
+
export type EntityAction<M extends object = any, USER extends User = User> = {
|
|
12
|
+
/**
|
|
13
|
+
* Title of the action
|
|
14
|
+
*/
|
|
8
15
|
name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Icon of the action
|
|
18
|
+
*/
|
|
9
19
|
icon?: React.ReactElement;
|
|
10
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Callback when the action is clicked
|
|
22
|
+
* @param props
|
|
23
|
+
*/
|
|
24
|
+
onClick: (props: EntityActionClickProps<M, USER>) => Promise<void> | void;
|
|
11
25
|
/**
|
|
12
26
|
* Show this action collapsed in the menu of the collection view.
|
|
13
27
|
* Defaults to true
|
|
@@ -19,9 +33,9 @@ export type EntityAction<M extends object = any, UserType extends User = User> =
|
|
|
19
33
|
*/
|
|
20
34
|
includeInForm?: boolean;
|
|
21
35
|
};
|
|
22
|
-
export type EntityActionClickProps<M extends object,
|
|
36
|
+
export type EntityActionClickProps<M extends object, USER extends User = User> = {
|
|
23
37
|
entity: Entity<M>;
|
|
24
|
-
context: FireCMSContext<
|
|
38
|
+
context: FireCMSContext<USER>;
|
|
25
39
|
fullPath?: string;
|
|
26
40
|
collection?: EntityCollection<M>;
|
|
27
41
|
selectionController?: SelectionController;
|