@firecms/core 3.0.0-canary.15 → 3.0.0-canary.151
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/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 +16536 -13058
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +20159 -587
- 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/types/auth.d.ts +7 -11
- 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 +128 -119
- 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} +1 -1
- package/src/components/DeleteEntityDialog.tsx +1 -1
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +25 -24
- 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 +29 -34
- 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 +47 -41
- package/src/components/EntityView.tsx +10 -10
- package/src/components/ErrorView.tsx +3 -3
- package/src/components/HomePage/DefaultHomePage.tsx +25 -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 +22 -7
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +28 -6
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +88 -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 +4 -4
- 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 +14 -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/core/DefaultAppBar.tsx +178 -0
- package/src/core/DefaultDrawer.tsx +183 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +717 -154
- package/src/core/EntitySidePanel.tsx +1 -2
- package/src/core/FireCMS.tsx +54 -53
- package/src/core/NavigationRoutes.tsx +7 -8
- package/src/core/SideDialogs.tsx +2 -1
- package/src/core/field_configs.tsx +8 -9
- package/src/core/index.tsx +3 -4
- package/src/form/PropertyFieldBinding.tsx +74 -35
- package/src/form/components/CustomIdField.tsx +4 -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 +51 -32
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +54 -45
- package/src/form/field_bindings/MapFieldBinding.tsx +65 -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 +20 -13
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +36 -46
- package/src/form/field_bindings/SwitchFieldBinding.tsx +9 -5
- 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 +3 -1
- 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 +6 -6
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +2 -2
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +2 -2
- package/src/types/auth.tsx +7 -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 +33 -7
- 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
package/src/types/auth.tsx
CHANGED
|
@@ -9,18 +9,13 @@ import { StorageSource } from "./storage";
|
|
|
9
9
|
* to do it as the result of a hook.
|
|
10
10
|
* @group Hooks and utilities
|
|
11
11
|
*/
|
|
12
|
-
export type AuthController<
|
|
12
|
+
export type AuthController<USER extends User = any, ExtraData = any> = {
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* The user currently logged in
|
|
16
16
|
* The values can be: the user object, null if they skipped login
|
|
17
17
|
*/
|
|
18
|
-
user:
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Roles related to the logged user
|
|
22
|
-
*/
|
|
23
|
-
roles?: Role[];
|
|
18
|
+
user: USER | null;
|
|
24
19
|
|
|
25
20
|
/**
|
|
26
21
|
* Initial loading flag. It is used not to display the login screen
|
|
@@ -38,7 +33,7 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
38
33
|
/**
|
|
39
34
|
* Sign out
|
|
40
35
|
*/
|
|
41
|
-
signOut: () => void
|
|
36
|
+
signOut: () => Promise<void>;
|
|
42
37
|
|
|
43
38
|
/**
|
|
44
39
|
* Error initializing the authentication
|
|
@@ -64,26 +59,25 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
64
59
|
|
|
65
60
|
setExtra: (extra: ExtraData) => void;
|
|
66
61
|
|
|
67
|
-
|
|
62
|
+
setUser?: (user: USER | null) => void;
|
|
68
63
|
|
|
69
|
-
// setRoles?: (roles: Role[]) => void;
|
|
70
64
|
};
|
|
71
65
|
|
|
72
66
|
/**
|
|
73
67
|
* Implement this function to allow access to specific users.
|
|
74
68
|
* @group Hooks and utilities
|
|
75
69
|
*/
|
|
76
|
-
export type Authenticator<
|
|
70
|
+
export type Authenticator<USER extends User = User> = (props: {
|
|
77
71
|
|
|
78
72
|
/**
|
|
79
73
|
* Logged-in user or null
|
|
80
74
|
*/
|
|
81
|
-
user:
|
|
75
|
+
user: USER | null;
|
|
82
76
|
|
|
83
77
|
/**
|
|
84
78
|
* AuthController
|
|
85
79
|
*/
|
|
86
|
-
authController:
|
|
80
|
+
authController: AuthController<USER>;
|
|
87
81
|
|
|
88
82
|
/**
|
|
89
83
|
* Connector to your database, e.g. your Firestore database
|
package/src/types/collections.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { EntityOverrides } from "./entity_overrides";
|
|
|
17
17
|
*
|
|
18
18
|
* @group Models
|
|
19
19
|
*/
|
|
20
|
-
export interface EntityCollection<M extends Record<string, any> = any,
|
|
20
|
+
export interface EntityCollection<M extends Record<string, any> = any, USER extends User = any> {
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* You can set an alias that will be used internally instead of the `path`.
|
|
@@ -51,6 +51,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
51
51
|
*/
|
|
52
52
|
path: string;
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Optional database id of this collection. If not specified, the default
|
|
56
|
+
* database id will be used.
|
|
57
|
+
*/
|
|
58
|
+
databaseId?: string;
|
|
59
|
+
|
|
54
60
|
/**
|
|
55
61
|
* If this collection is a top level navigation entry, you can set this
|
|
56
62
|
* property to `true` to indicate that this collection is a collection group.
|
|
@@ -61,7 +67,8 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
61
67
|
* Icon key to use in this collection.
|
|
62
68
|
* You can use any of the icons in the Material specs:
|
|
63
69
|
* https://fonts.google.com/icons
|
|
64
|
-
* e.g. 'account_tree' or 'person'
|
|
70
|
+
* e.g. 'account_tree' or 'person'.
|
|
71
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
65
72
|
*/
|
|
66
73
|
icon?: string;
|
|
67
74
|
|
|
@@ -82,7 +89,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
82
89
|
* as the title in entity related views and references.
|
|
83
90
|
* If not specified, the first property simple text property will be used.
|
|
84
91
|
*/
|
|
85
|
-
titleProperty?: keyof M
|
|
92
|
+
titleProperty?: keyof M;
|
|
86
93
|
|
|
87
94
|
/**
|
|
88
95
|
* Can this collection be edited by the end user.
|
|
@@ -107,8 +114,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
107
114
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
108
115
|
* - If you are using a collection group, you will also have an
|
|
109
116
|
* additional `collectionGroupParent` column.
|
|
117
|
+
* You can use this prop to hide some properties from the table view.
|
|
118
|
+
* Note that if you set this prop, other ways to hide fields, like
|
|
119
|
+
* `hidden` in the property definition,will be ignored.
|
|
120
|
+
* `propertiesOrder` has precedence over `hidden`.
|
|
110
121
|
*/
|
|
111
|
-
propertiesOrder?: Extract<keyof M, string>[];
|
|
122
|
+
propertiesOrder?: (Extract<keyof M, string> | `subcollection:${string}`)[];
|
|
112
123
|
|
|
113
124
|
/**
|
|
114
125
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
@@ -128,7 +139,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
128
139
|
* Permissions the logged-in user can perform on this collection.
|
|
129
140
|
* If not specified everything defaults to `true`.
|
|
130
141
|
*/
|
|
131
|
-
permissions?: Permissions | PermissionsBuilder<EntityCollection,
|
|
142
|
+
permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
|
|
132
143
|
|
|
133
144
|
/**
|
|
134
145
|
* Are the entities in this collection selectable. Defaults to `true`
|
|
@@ -147,7 +158,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
147
158
|
* is being created, updated or deleted.
|
|
148
159
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
149
160
|
*/
|
|
150
|
-
callbacks?: EntityCallbacks<M,
|
|
161
|
+
callbacks?: EntityCallbacks<M, USER>;
|
|
151
162
|
|
|
152
163
|
/**
|
|
153
164
|
* Builder for rendering additional components such as buttons in the
|
|
@@ -178,7 +189,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
178
189
|
* }
|
|
179
190
|
* ```
|
|
180
191
|
*/
|
|
181
|
-
entityActions?: EntityAction<M,
|
|
192
|
+
entityActions?: EntityAction<M, USER>[];
|
|
182
193
|
|
|
183
194
|
/**
|
|
184
195
|
* Pass your own selection controller if you want to control selected
|
|
@@ -230,7 +241,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
230
241
|
* You can add additional fields to the collection view by implementing
|
|
231
242
|
* an additional field delegate.
|
|
232
243
|
*/
|
|
233
|
-
additionalFields?: AdditionalFieldDelegate<M,
|
|
244
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
234
245
|
|
|
235
246
|
/**
|
|
236
247
|
* Default size of the rendered collection
|
|
@@ -283,14 +294,28 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
283
294
|
/**
|
|
284
295
|
*
|
|
285
296
|
*/
|
|
286
|
-
exportable?: boolean | ExportConfig<
|
|
297
|
+
exportable?: boolean | ExportConfig<USER>;
|
|
287
298
|
|
|
288
299
|
/**
|
|
289
300
|
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
290
301
|
* are writing custom code
|
|
291
302
|
*/
|
|
292
303
|
ownerId?: string;
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* Overrides for the entity view, like the data source or the storage source.
|
|
307
|
+
*/
|
|
293
308
|
overrides?: EntityOverrides;
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
312
|
+
*/
|
|
313
|
+
sideDialogWidth?: number | string;
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
317
|
+
*/
|
|
318
|
+
previewProperties?: string[];
|
|
294
319
|
}
|
|
295
320
|
|
|
296
321
|
/**
|
|
@@ -300,7 +325,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
300
325
|
*
|
|
301
326
|
* @group Models
|
|
302
327
|
*/
|
|
303
|
-
export interface CollectionActionsProps<M extends Record<string, any> = any,
|
|
328
|
+
export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
304
329
|
/**
|
|
305
330
|
* Full collection path of this entity. This is the full path, like
|
|
306
331
|
* `users/1234/addresses`
|
|
@@ -337,7 +362,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
337
362
|
/**
|
|
338
363
|
* Context of the app status
|
|
339
364
|
*/
|
|
340
|
-
context: FireCMSContext<
|
|
365
|
+
context: FireCMSContext<USER>;
|
|
341
366
|
|
|
342
367
|
/**
|
|
343
368
|
* Count of the entities in this collection
|
|
@@ -349,14 +374,13 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
349
374
|
/**
|
|
350
375
|
* Use this controller to retrieve the selected entities or modify them in
|
|
351
376
|
* an {@link EntityCollection}
|
|
352
|
-
* If you want to pass a `SelectionController` to
|
|
353
377
|
* @group Models
|
|
354
378
|
*/
|
|
355
379
|
export type SelectionController<M extends Record<string, any> = any> = {
|
|
356
380
|
selectedEntities: Entity<M>[];
|
|
357
381
|
setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
|
|
358
382
|
isEntitySelected: (entity: Entity<M>) => boolean;
|
|
359
|
-
toggleEntitySelection: (entity: Entity<M
|
|
383
|
+
toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
|
|
360
384
|
}
|
|
361
385
|
|
|
362
386
|
/**
|
|
@@ -400,9 +424,9 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
|
|
|
400
424
|
*/
|
|
401
425
|
export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
|
|
402
426
|
|
|
403
|
-
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any,
|
|
427
|
+
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
|
|
404
428
|
entity: Entity<M>,
|
|
405
|
-
context: FireCMSContext<
|
|
429
|
+
context: FireCMSContext<USER>
|
|
406
430
|
};
|
|
407
431
|
|
|
408
432
|
/**
|
|
@@ -411,7 +435,7 @@ export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, Us
|
|
|
411
435
|
* @group Models
|
|
412
436
|
*/
|
|
413
437
|
export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
414
|
-
|
|
438
|
+
USER extends User = User> {
|
|
415
439
|
|
|
416
440
|
/**
|
|
417
441
|
* ID of this column. You can use this id in the `properties` field of the
|
|
@@ -432,7 +456,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
|
432
456
|
/**
|
|
433
457
|
* Builder for the content of the cell for this column
|
|
434
458
|
*/
|
|
435
|
-
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M,
|
|
459
|
+
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
|
|
436
460
|
|
|
437
461
|
/**
|
|
438
462
|
* If this column needs to update dynamically based on other properties,
|
|
@@ -451,7 +475,10 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
|
451
475
|
* view.
|
|
452
476
|
* @param entity
|
|
453
477
|
*/
|
|
454
|
-
value?: (props: {
|
|
478
|
+
value?: (props: {
|
|
479
|
+
entity: Entity<M>,
|
|
480
|
+
context: FireCMSContext<any>
|
|
481
|
+
}) => string | number | Promise<string | number> | undefined;
|
|
455
482
|
}
|
|
456
483
|
|
|
457
484
|
/**
|
|
@@ -461,8 +488,22 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
|
461
488
|
*/
|
|
462
489
|
export type EntityCustomView<M extends Record<string, any> = any> =
|
|
463
490
|
{
|
|
491
|
+
/**
|
|
492
|
+
* Key of this custom view.
|
|
493
|
+
*/
|
|
464
494
|
key: string,
|
|
495
|
+
/**
|
|
496
|
+
* Name of this custom view.
|
|
497
|
+
*/
|
|
465
498
|
name: string,
|
|
499
|
+
/**
|
|
500
|
+
* If set to true, the actions of the entity will be included in the
|
|
501
|
+
* bottom of the panel (save buttons, delete buttons, etc.)
|
|
502
|
+
*/
|
|
503
|
+
includeActions?: boolean;
|
|
504
|
+
/**
|
|
505
|
+
* Builder for rendering the custom view
|
|
506
|
+
*/
|
|
466
507
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
467
508
|
}
|
|
468
509
|
|
|
@@ -523,7 +564,7 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
523
564
|
filterValues?: FilterValues<Extract<keyof M, string>>;
|
|
524
565
|
setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
|
|
525
566
|
sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
|
|
526
|
-
setSortBy?: (sortBy
|
|
567
|
+
setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
|
|
527
568
|
searchString?: string;
|
|
528
569
|
setSearchString?: (searchString?: string) => void;
|
|
529
570
|
clearFilter?: () => void;
|
|
@@ -544,5 +585,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
|
|
|
544
585
|
cellRect: DOMRect;
|
|
545
586
|
width: number;
|
|
546
587
|
height: number;
|
|
547
|
-
|
|
588
|
+
entityPath: string;
|
|
589
|
+
entityId: string;
|
|
548
590
|
};
|
package/src/types/datasource.ts
CHANGED
|
@@ -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
|
/**
|
|
6
7
|
* @group Datasource
|
|
@@ -17,6 +18,7 @@ export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
|
17
18
|
export type ListenEntityProps<M extends Record<string, any> = any> =
|
|
18
19
|
FetchEntityProps<M>
|
|
19
20
|
& {
|
|
21
|
+
databaseId?: string;
|
|
20
22
|
onUpdate: (entity: Entity<M>) => void,
|
|
21
23
|
onError?: (error: Error) => void,
|
|
22
24
|
}
|
|
@@ -62,12 +64,12 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
|
62
64
|
*/
|
|
63
65
|
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
64
66
|
entity: Entity<M>;
|
|
67
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
71
|
+
* Component in charge of communicating with the data source.
|
|
72
|
+
* Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
|
|
71
73
|
* @group Datasource
|
|
72
74
|
*/
|
|
73
75
|
export interface DataSource {
|
|
@@ -181,7 +183,8 @@ export interface DataSource {
|
|
|
181
183
|
*/
|
|
182
184
|
deleteEntity<M extends Record<string, any> = any>(
|
|
183
185
|
{
|
|
184
|
-
entity
|
|
186
|
+
entity,
|
|
187
|
+
collection
|
|
185
188
|
}: DeleteEntityProps<M>
|
|
186
189
|
): Promise<void>;
|
|
187
190
|
|
|
@@ -190,7 +193,7 @@ export interface DataSource {
|
|
|
190
193
|
* @param path Collection path
|
|
191
194
|
* @param name of the property
|
|
192
195
|
* @param value
|
|
193
|
-
* @param
|
|
196
|
+
* @param collection
|
|
194
197
|
* @param entityId
|
|
195
198
|
* @return `true` if there are no other fields besides the given entity
|
|
196
199
|
*/
|
|
@@ -198,13 +201,14 @@ export interface DataSource {
|
|
|
198
201
|
path: string,
|
|
199
202
|
name: string,
|
|
200
203
|
value: any,
|
|
201
|
-
entityId?: string
|
|
204
|
+
entityId?: string,
|
|
205
|
+
collection?: EntityCollection
|
|
202
206
|
): Promise<boolean>;
|
|
203
207
|
|
|
204
208
|
/**
|
|
205
209
|
* Generate an id for a new entity
|
|
206
210
|
*/
|
|
207
|
-
generateEntityId(path: string): string;
|
|
211
|
+
generateEntityId(path: string, collection: EntityCollection): string;
|
|
208
212
|
|
|
209
213
|
/**
|
|
210
214
|
* Count the number of entities in a collection
|
|
@@ -216,6 +220,19 @@ export interface DataSource {
|
|
|
216
220
|
* @param props
|
|
217
221
|
*/
|
|
218
222
|
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Called when the user clicks on the search bar in a collection view.
|
|
226
|
+
* Useful for initializing a text search index.
|
|
227
|
+
* @param props
|
|
228
|
+
*/
|
|
229
|
+
initTextSearch?: (props: {
|
|
230
|
+
context: FireCMSContext,
|
|
231
|
+
path: string,
|
|
232
|
+
collection: EntityCollection,
|
|
233
|
+
parentCollectionIds?: string[]
|
|
234
|
+
}) => Promise<boolean>;
|
|
235
|
+
|
|
219
236
|
}
|
|
220
237
|
|
|
221
238
|
export type FilterCombinationValidProps = {
|
|
@@ -225,21 +242,24 @@ export type FilterCombinationValidProps = {
|
|
|
225
242
|
sortBy?: [string, "asc" | "desc"];
|
|
226
243
|
};
|
|
227
244
|
|
|
228
|
-
export type SaveEntityDelegateProps<M extends Record<string, any> = any> =
|
|
245
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
|
|
229
246
|
|
|
230
|
-
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
231
|
-
Omit<FetchCollectionProps<M>, "collection">
|
|
232
|
-
& {
|
|
233
|
-
isCollectionGroup?: boolean
|
|
234
|
-
};
|
|
247
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
|
|
235
248
|
|
|
236
|
-
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
237
|
-
ListenCollectionProps<M>
|
|
238
|
-
& {
|
|
239
|
-
isCollectionGroup?: boolean;
|
|
240
|
-
};
|
|
249
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
|
|
241
250
|
|
|
242
251
|
export interface DataSourceDelegate {
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Key that identifies this data source delegate
|
|
255
|
+
*/
|
|
256
|
+
key: string;
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* If the data source has been initialised
|
|
260
|
+
*/
|
|
261
|
+
initialised?: boolean;
|
|
262
|
+
|
|
243
263
|
/**
|
|
244
264
|
* Fetch data from a collection
|
|
245
265
|
* @param path
|
|
@@ -297,7 +317,7 @@ export interface DataSourceDelegate {
|
|
|
297
317
|
fetchEntity<M extends Record<string, any> = any>({
|
|
298
318
|
path,
|
|
299
319
|
entityId,
|
|
300
|
-
}:
|
|
320
|
+
}: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
301
321
|
|
|
302
322
|
/**
|
|
303
323
|
* Get realtime updates on one entity.
|
|
@@ -313,13 +333,13 @@ export interface DataSourceDelegate {
|
|
|
313
333
|
entityId,
|
|
314
334
|
onUpdate,
|
|
315
335
|
onError
|
|
316
|
-
}:
|
|
336
|
+
}: ListenEntityProps<M>): () => void;
|
|
317
337
|
|
|
318
338
|
/**
|
|
319
339
|
* Save entity to the specified path
|
|
320
340
|
* @param path
|
|
321
|
-
* @param
|
|
322
|
-
* @param
|
|
341
|
+
* @param entityId
|
|
342
|
+
* @param values
|
|
323
343
|
* @param status
|
|
324
344
|
*/
|
|
325
345
|
saveEntity<M extends Record<string, any> = any>({
|
|
@@ -342,14 +362,15 @@ export interface DataSourceDelegate {
|
|
|
342
362
|
* @param name of the property
|
|
343
363
|
* @param value
|
|
344
364
|
* @param entityId
|
|
365
|
+
* @param collection
|
|
345
366
|
* @return `true` if there are no other fields besides the given entity
|
|
346
367
|
*/
|
|
347
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
368
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
348
369
|
|
|
349
370
|
/**
|
|
350
371
|
* Generate an id for a new entity
|
|
351
372
|
*/
|
|
352
|
-
generateEntityId(path: string): string;
|
|
373
|
+
generateEntityId(path: string, collection?: EntityCollection): string;
|
|
353
374
|
|
|
354
375
|
/**
|
|
355
376
|
* Count the number of entities in a collection
|
|
@@ -360,30 +381,26 @@ export interface DataSourceDelegate {
|
|
|
360
381
|
* Check if the given filter combination is valid
|
|
361
382
|
* @param props
|
|
362
383
|
*/
|
|
363
|
-
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
* Convert a FireCMS reference to a reference that can be used by the datasource
|
|
367
|
-
* @param reference
|
|
368
|
-
*/
|
|
369
|
-
buildReference: (reference: EntityReference) => any,
|
|
370
|
-
|
|
371
|
-
/**
|
|
372
|
-
* Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
|
|
373
|
-
* @param geoPoint
|
|
374
|
-
*/
|
|
375
|
-
buildGeoPoint: (geoPoint: GeoPoint) => any,
|
|
384
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
385
|
+
databaseId?: string
|
|
386
|
+
}): boolean;
|
|
376
387
|
|
|
377
388
|
/**
|
|
378
389
|
* Get the object to generate the current time in the datasource
|
|
379
390
|
*/
|
|
380
|
-
currentTime()
|
|
381
|
-
|
|
382
|
-
buildDate: (date: Date) => any;
|
|
383
|
-
|
|
384
|
-
buildDeleteFieldValue: () => any;
|
|
391
|
+
currentTime?: () => any;
|
|
385
392
|
|
|
386
393
|
delegateToCMSModel: (data: any) => any;
|
|
387
394
|
|
|
395
|
+
cmsToDelegateModel: (data: any) => any;
|
|
396
|
+
|
|
388
397
|
setDateToMidnight: (input?: any) => any;
|
|
398
|
+
|
|
399
|
+
initTextSearch?: (props: {
|
|
400
|
+
context: FireCMSContext,
|
|
401
|
+
path: string,
|
|
402
|
+
databaseId?: string,
|
|
403
|
+
collection: EntityCollection,
|
|
404
|
+
parentCollectionIds?: string[]
|
|
405
|
+
}) => Promise<boolean>;
|
|
389
406
|
}
|
package/src/types/entities.ts
CHANGED
|
@@ -25,6 +25,8 @@ export interface Entity<M extends object> {
|
|
|
25
25
|
* Current values
|
|
26
26
|
*/
|
|
27
27
|
values: EntityValues<M>;
|
|
28
|
+
|
|
29
|
+
databaseId?: string;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|
|
@@ -37,7 +39,7 @@ export type EntityValues<M extends object> = M;
|
|
|
37
39
|
/**
|
|
38
40
|
* Class used to create a reference to an entity in a different path
|
|
39
41
|
*/
|
|
40
|
-
export class EntityReference
|
|
42
|
+
export class EntityReference {
|
|
41
43
|
/**
|
|
42
44
|
* ID of the entity
|
|
43
45
|
*/
|
|
@@ -78,3 +80,11 @@ export class GeoPoint {
|
|
|
78
80
|
this.longitude = longitude;
|
|
79
81
|
}
|
|
80
82
|
}
|
|
83
|
+
|
|
84
|
+
export class Vector {
|
|
85
|
+
readonly value: number[];
|
|
86
|
+
|
|
87
|
+
constructor(value: number[]) {
|
|
88
|
+
this.value = value;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -4,12 +4,27 @@ 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
|
-
import { EntityOverrides } from "./entity_overrides";
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* An entity action is a custom action that can be performed on an entity.
|
|
10
|
+
* They are displayed in the entity view and in the collection view.
|
|
11
|
+
*/
|
|
12
|
+
export type EntityAction<M extends object = any, USER extends User = User> = {
|
|
13
|
+
/**
|
|
14
|
+
* Title of the action
|
|
15
|
+
*/
|
|
10
16
|
name: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Icon of the action
|
|
20
|
+
*/
|
|
11
21
|
icon?: React.ReactElement;
|
|
12
|
-
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Callback when the action is clicked
|
|
25
|
+
* @param props
|
|
26
|
+
*/
|
|
27
|
+
onClick: (props: EntityActionClickProps<M, USER>) => Promise<void> | void;
|
|
13
28
|
|
|
14
29
|
/**
|
|
15
30
|
* Show this action collapsed in the menu of the collection view.
|
|
@@ -25,11 +40,9 @@ export type EntityAction<M extends object = any, UserType extends User = User> =
|
|
|
25
40
|
|
|
26
41
|
}
|
|
27
42
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
export type EntityActionClickProps<M extends object, UserType extends User = User> = {
|
|
43
|
+
export type EntityActionClickProps<M extends object, USER extends User = User> = {
|
|
31
44
|
entity: Entity<M>;
|
|
32
|
-
context: FireCMSContext<
|
|
45
|
+
context: FireCMSContext<USER>;
|
|
33
46
|
fullPath?: string;
|
|
34
47
|
collection?: EntityCollection<M>;
|
|
35
48
|
selectionController?: SelectionController;
|