@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
|
@@ -10,27 +10,27 @@ import { User } from "./user";
|
|
|
10
10
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
11
11
|
* @group Models
|
|
12
12
|
*/
|
|
13
|
-
export type EntityCallbacks<M extends Record<string, any> = any,
|
|
13
|
+
export type EntityCallbacks<M extends Record<string, any> = any, USER extends User = User> = {
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Callback used after fetching data
|
|
17
17
|
* @param entityFetchProps
|
|
18
18
|
*/
|
|
19
|
-
onFetch?(entityFetchProps: EntityOnFetchProps<M,
|
|
19
|
+
onFetch?(entityFetchProps: EntityOnFetchProps<M, USER>)
|
|
20
20
|
: Promise<Entity<M>> | Entity<M>;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Callback used when save is successful
|
|
24
24
|
* @param entitySaveProps
|
|
25
25
|
*/
|
|
26
|
-
onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M,
|
|
26
|
+
onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M, USER>)
|
|
27
27
|
: Promise<void> | void;
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Callback used when saving fails
|
|
31
31
|
* @param entitySaveProps
|
|
32
32
|
*/
|
|
33
|
-
onSaveFailure?(entitySaveProps: EntityOnSaveFailureProps<M,
|
|
33
|
+
onSaveFailure?(entitySaveProps: EntityOnSaveFailureProps<M, USER>)
|
|
34
34
|
: Promise<void> | void;
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -39,7 +39,7 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
39
39
|
* error snackbar gets displayed.
|
|
40
40
|
* @param entitySaveProps
|
|
41
41
|
*/
|
|
42
|
-
onPreSave?(entitySaveProps: EntityOnPreSaveProps<M,
|
|
42
|
+
onPreSave?(entitySaveProps: EntityOnPreSaveProps<M, USER>)
|
|
43
43
|
: Promise<Partial<EntityValues<M>>> | Partial<EntityValues<M>>;
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -49,14 +49,14 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
49
49
|
*
|
|
50
50
|
* @param entityDeleteProps
|
|
51
51
|
*/
|
|
52
|
-
onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M,
|
|
52
|
+
onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M, USER>): void;
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Callback used after the entity is deleted.
|
|
56
56
|
*
|
|
57
57
|
* @param entityDeleteProps
|
|
58
58
|
*/
|
|
59
|
-
onDelete?(entityDeleteProps: EntityOnDeleteProps<M,
|
|
59
|
+
onDelete?(entityDeleteProps: EntityOnDeleteProps<M, USER>): void;
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
62
|
* Callback fired when any value in the form changes. You can use it
|
|
@@ -73,12 +73,12 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
73
73
|
* Parameters passed to hooks when an entity is fetched
|
|
74
74
|
* @group Models
|
|
75
75
|
*/
|
|
76
|
-
export interface EntityOnFetchProps<M extends Record<string, any> = any,
|
|
76
|
+
export interface EntityOnFetchProps<M extends Record<string, any> = any, USER extends User = User> {
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Collection of the entity
|
|
80
80
|
*/
|
|
81
|
-
collection: EntityCollection<M,
|
|
81
|
+
collection: EntityCollection<M, USER>;
|
|
82
82
|
|
|
83
83
|
/**
|
|
84
84
|
* Full path of the CMS where this collection is being fetched.
|
|
@@ -94,15 +94,15 @@ export interface EntityOnFetchProps<M extends Record<string, any> = any, UserTyp
|
|
|
94
94
|
/**
|
|
95
95
|
* Context of the app status
|
|
96
96
|
*/
|
|
97
|
-
context: FireCMSContext<
|
|
97
|
+
context: FireCMSContext<USER>;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
101
|
* Parameters passed to hooks before an entity is saved
|
|
102
102
|
* @group Models
|
|
103
103
|
*/
|
|
104
|
-
export type EntityOnPreSaveProps<M extends Record<string, any> = any,
|
|
105
|
-
Omit<EntityOnSaveProps<M,
|
|
104
|
+
export type EntityOnPreSaveProps<M extends Record<string, any> = any, USER extends User = User> =
|
|
105
|
+
Omit<EntityOnSaveProps<M, USER>, "entityId">
|
|
106
106
|
& {
|
|
107
107
|
entityId?: string;
|
|
108
108
|
}
|
|
@@ -110,8 +110,8 @@ export type EntityOnPreSaveProps<M extends Record<string, any> = any, UserType e
|
|
|
110
110
|
* Parameters passed to hooks before an entity is saved
|
|
111
111
|
* @group Models
|
|
112
112
|
*/
|
|
113
|
-
export type EntityOnSaveFailureProps<M extends Record<string, any> = any,
|
|
114
|
-
Omit<EntityOnSaveProps<M,
|
|
113
|
+
export type EntityOnSaveFailureProps<M extends Record<string, any> = any, USER extends User = User> =
|
|
114
|
+
Omit<EntityOnSaveProps<M, USER>, "entityId">
|
|
115
115
|
& {
|
|
116
116
|
entityId?: string;
|
|
117
117
|
}
|
|
@@ -120,7 +120,7 @@ export type EntityOnSaveFailureProps<M extends Record<string, any> = any, UserTy
|
|
|
120
120
|
* Parameters passed to hooks when an entity is saved
|
|
121
121
|
* @group Models
|
|
122
122
|
*/
|
|
123
|
-
export interface EntityOnSaveProps<M extends Record<string, any> = any,
|
|
123
|
+
export interface EntityOnSaveProps<M extends Record<string, any> = any, USER extends User = User> {
|
|
124
124
|
|
|
125
125
|
/**
|
|
126
126
|
* Resolved collection of the entity
|
|
@@ -161,14 +161,14 @@ export interface EntityOnSaveProps<M extends Record<string, any> = any, UserType
|
|
|
161
161
|
/**
|
|
162
162
|
* Context of the app status
|
|
163
163
|
*/
|
|
164
|
-
context: FireCMSContext<
|
|
164
|
+
context: FireCMSContext<USER>;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
/**
|
|
168
168
|
* Parameters passed to hooks when an entity is deleted
|
|
169
169
|
* @group Models
|
|
170
170
|
*/
|
|
171
|
-
export interface EntityOnDeleteProps<M extends Record<string, any> = any,
|
|
171
|
+
export interface EntityOnDeleteProps<M extends Record<string, any> = any, USER extends User = User> {
|
|
172
172
|
|
|
173
173
|
/**
|
|
174
174
|
* collection of the entity being deleted
|
|
@@ -193,7 +193,7 @@ export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserTy
|
|
|
193
193
|
/**
|
|
194
194
|
* Context of the app status
|
|
195
195
|
*/
|
|
196
|
-
context: FireCMSContext<
|
|
196
|
+
context: FireCMSContext<USER>;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DataSource } from "./datasource";
|
|
1
|
+
import { DataSource, DataSourceDelegate } from "./datasource";
|
|
2
2
|
import { StorageSource } from "./storage";
|
|
3
3
|
|
|
4
4
|
export type EntityOverrides = {
|
|
5
|
-
|
|
5
|
+
dataSourceDelegate?: DataSourceDelegate;
|
|
6
6
|
storageSource?: StorageSource;
|
|
7
7
|
};
|
|
@@ -7,20 +7,20 @@ import { FireCMSContext } from "./firecms_context";
|
|
|
7
7
|
* exports
|
|
8
8
|
* @group Models
|
|
9
9
|
*/
|
|
10
|
-
export interface ExportConfig<
|
|
11
|
-
additionalFields: ExportMappingFunction<
|
|
10
|
+
export interface ExportConfig<USER extends User = User> {
|
|
11
|
+
additionalFields: ExportMappingFunction<USER> [];
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @group Models
|
|
16
16
|
*/
|
|
17
|
-
export interface ExportMappingFunction<
|
|
17
|
+
export interface ExportMappingFunction<USER extends User = User> {
|
|
18
18
|
key: string;
|
|
19
19
|
builder: ({
|
|
20
20
|
entity,
|
|
21
21
|
context
|
|
22
22
|
}: {
|
|
23
23
|
entity: Entity<any>,
|
|
24
|
-
context: FireCMSContext<
|
|
24
|
+
context: FireCMSContext<USER>
|
|
25
25
|
}) => Promise<string> | string;
|
|
26
26
|
}
|
package/src/types/fields.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CMSType, PropertyOrBuilder } from "./properties";
|
|
1
|
+
import { CMSType, Property, PropertyOrBuilder } from "./properties";
|
|
3
2
|
import { ResolvedEntityCollection, ResolvedProperty } from "./resolved_entities";
|
|
3
|
+
import { FormexController } from "@firecms/formex";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* When building a custom field you need to create a React component that takes
|
|
@@ -21,11 +21,6 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
21
21
|
*/
|
|
22
22
|
value: T;
|
|
23
23
|
|
|
24
|
-
/**
|
|
25
|
-
* Initial value of this field
|
|
26
|
-
*/
|
|
27
|
-
// initialValue: T | undefined;
|
|
28
|
-
|
|
29
24
|
/**
|
|
30
25
|
* Set value of field directly
|
|
31
26
|
*/
|
|
@@ -42,7 +37,7 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
42
37
|
/**
|
|
43
38
|
* Is the form currently submitting
|
|
44
39
|
*/
|
|
45
|
-
isSubmitting
|
|
40
|
+
isSubmitting?: boolean;
|
|
46
41
|
|
|
47
42
|
/**
|
|
48
43
|
* Should this field show the error indicator.
|
|
@@ -50,55 +45,50 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
50
45
|
* filled) but we don't want to show the error until the user has tried
|
|
51
46
|
* saving.
|
|
52
47
|
*/
|
|
53
|
-
showError
|
|
48
|
+
showError?: boolean;
|
|
54
49
|
|
|
55
50
|
/**
|
|
56
51
|
* Is there an error in this field. The error field has the same shape as
|
|
57
52
|
* the field, replacing values with a string containing the error.
|
|
58
53
|
* It takes the value `null` if there is no error
|
|
59
54
|
*/
|
|
60
|
-
error
|
|
55
|
+
error?: any | null;
|
|
61
56
|
|
|
62
57
|
/**
|
|
63
58
|
* Has this field been touched
|
|
64
59
|
*/
|
|
65
|
-
touched
|
|
60
|
+
touched?: boolean;
|
|
66
61
|
|
|
67
62
|
/**
|
|
68
63
|
* Property related to this field
|
|
69
64
|
*/
|
|
70
|
-
property: ResolvedProperty<T>;
|
|
65
|
+
property: Property<T> | ResolvedProperty<T>;
|
|
71
66
|
|
|
72
67
|
/**
|
|
73
68
|
* Should this field include a description
|
|
74
69
|
*/
|
|
75
|
-
includeDescription
|
|
70
|
+
includeDescription?: boolean;
|
|
76
71
|
|
|
77
72
|
/**
|
|
78
73
|
* Flag to indicate that the underlying value has been updated in the
|
|
79
74
|
* datasource
|
|
80
75
|
*/
|
|
81
|
-
underlyingValueHasChanged
|
|
76
|
+
underlyingValueHasChanged?: boolean;
|
|
82
77
|
|
|
83
78
|
/**
|
|
84
79
|
* Is this field part of an array
|
|
85
80
|
*/
|
|
86
|
-
partOfArray
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Is this field part of a block (oneOf array)
|
|
90
|
-
*/
|
|
91
|
-
partOfBlock: boolean;
|
|
81
|
+
partOfArray?: boolean;
|
|
92
82
|
|
|
93
83
|
/**
|
|
94
|
-
*
|
|
84
|
+
* Should this field render with the minimal amount of UI elements
|
|
95
85
|
*/
|
|
96
|
-
|
|
86
|
+
minimalistView?: boolean;
|
|
97
87
|
|
|
98
88
|
/**
|
|
99
89
|
* Should this field autofocus on mount
|
|
100
90
|
*/
|
|
101
|
-
autoFocus
|
|
91
|
+
autoFocus?: boolean;
|
|
102
92
|
|
|
103
93
|
/**
|
|
104
94
|
* Additional properties set by the developer
|
|
@@ -113,7 +103,21 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
113
103
|
/**
|
|
114
104
|
* Flag to indicate if this field should be disabled
|
|
115
105
|
*/
|
|
116
|
-
disabled
|
|
106
|
+
disabled?: boolean;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Size of the field
|
|
110
|
+
*/
|
|
111
|
+
size?: "smallest" | "small" | "medium";
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Some properties might change internal state (like expanding a panel).
|
|
115
|
+
* This function should be called when the internal state changes.
|
|
116
|
+
* This is used to preserve state in array containers.
|
|
117
|
+
*
|
|
118
|
+
* @param property
|
|
119
|
+
*/
|
|
120
|
+
onPropertyChange?: (property: Partial<Property<any>>) => void;
|
|
117
121
|
|
|
118
122
|
}
|
|
119
123
|
|
|
@@ -124,37 +128,42 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
124
128
|
export interface FormContext<M extends Record<string, any> = any> {
|
|
125
129
|
|
|
126
130
|
/**
|
|
127
|
-
*
|
|
131
|
+
* Current values of the entity
|
|
128
132
|
*/
|
|
129
|
-
|
|
133
|
+
values: M;
|
|
130
134
|
|
|
131
135
|
/**
|
|
132
|
-
*
|
|
136
|
+
* Update the value of a field
|
|
137
|
+
* @param key
|
|
138
|
+
* @param value
|
|
139
|
+
* @param shouldValidate
|
|
133
140
|
*/
|
|
134
|
-
|
|
141
|
+
setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
|
|
135
142
|
|
|
136
143
|
/**
|
|
137
|
-
*
|
|
144
|
+
* Save the entity.
|
|
138
145
|
*/
|
|
139
|
-
|
|
146
|
+
save: (values: M) => void;
|
|
140
147
|
|
|
141
148
|
/**
|
|
142
|
-
*
|
|
149
|
+
* Collection of the entity being modified
|
|
143
150
|
*/
|
|
144
|
-
|
|
151
|
+
collection?: ResolvedEntityCollection<M>;
|
|
145
152
|
|
|
146
153
|
/**
|
|
147
|
-
*
|
|
148
|
-
* @param key
|
|
149
|
-
* @param value
|
|
150
|
-
* @param shouldValidate
|
|
154
|
+
* Entity id, it can be null if it's a new entity
|
|
151
155
|
*/
|
|
152
|
-
|
|
156
|
+
entityId: string;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Path this entity is located at
|
|
160
|
+
*/
|
|
161
|
+
path?: string;
|
|
153
162
|
|
|
154
163
|
/**
|
|
155
|
-
*
|
|
164
|
+
* This is the underlying formex controller that powers the form
|
|
156
165
|
*/
|
|
157
|
-
|
|
166
|
+
formex: FormexController<M>;
|
|
158
167
|
}
|
|
159
168
|
|
|
160
169
|
/**
|
|
@@ -192,11 +201,6 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
192
201
|
*/
|
|
193
202
|
underlyingValueHasChanged?: boolean;
|
|
194
203
|
|
|
195
|
-
/**
|
|
196
|
-
* Is this field being rendered in a table
|
|
197
|
-
*/
|
|
198
|
-
tableMode?: boolean;
|
|
199
|
-
|
|
200
204
|
/**
|
|
201
205
|
* Is this field part of an array
|
|
202
206
|
*/
|
|
@@ -205,7 +209,7 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
205
209
|
/**
|
|
206
210
|
* Is this field part of a block (oneOf array)
|
|
207
211
|
*/
|
|
208
|
-
|
|
212
|
+
minimalistView?: boolean;
|
|
209
213
|
|
|
210
214
|
/**
|
|
211
215
|
* Should the field take focus when rendered. When opening the popup view
|
|
@@ -217,4 +221,24 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
217
221
|
* Should this field be disabled
|
|
218
222
|
*/
|
|
219
223
|
disabled?: boolean;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Index of the field in the array.
|
|
227
|
+
* Only used when the field is part of an array.
|
|
228
|
+
*/
|
|
229
|
+
index?: number;
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* The size of the field
|
|
233
|
+
*/
|
|
234
|
+
size?: "smallest" | "small" | "medium",
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Some properties might change internal state (like expanding a panel).
|
|
238
|
+
* This function should be called when the internal state changes.
|
|
239
|
+
* This is used to preserve state in array containers.
|
|
240
|
+
*
|
|
241
|
+
* @param property
|
|
242
|
+
*/
|
|
243
|
+
onPropertyChange?: (property: Partial<Property<any>>) => void;
|
|
220
244
|
}
|
package/src/types/firecms.tsx
CHANGED
|
@@ -47,7 +47,7 @@ export type CMSViewsBuilder = (params: {
|
|
|
47
47
|
/**
|
|
48
48
|
* @group Models
|
|
49
49
|
*/
|
|
50
|
-
export type FireCMSProps<
|
|
50
|
+
export type FireCMSProps<USER extends User, EC extends EntityCollection> = {
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* Use this function to return the components you want to render under
|
|
@@ -67,6 +67,11 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
|
|
|
67
67
|
loading: boolean;
|
|
68
68
|
}) => React.ReactNode;
|
|
69
69
|
|
|
70
|
+
/**
|
|
71
|
+
* If you have a custom API key, you can use it here.
|
|
72
|
+
*/
|
|
73
|
+
apiKey?: string;
|
|
74
|
+
|
|
70
75
|
/**
|
|
71
76
|
* Record of custom form fields to be used in the CMS.
|
|
72
77
|
* You can use the key to reference the custom field in
|
|
@@ -114,7 +119,7 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
|
|
|
114
119
|
/**
|
|
115
120
|
* Delegate for implementing your auth operations.
|
|
116
121
|
*/
|
|
117
|
-
authController: AuthController<
|
|
122
|
+
authController: AuthController<USER>;
|
|
118
123
|
|
|
119
124
|
/**
|
|
120
125
|
* Use this controller to access the configuration that is stored locally,
|
|
@@ -18,7 +18,7 @@ import { AnalyticsController } from "./analytics_controller";
|
|
|
18
18
|
* @group Hooks and utilities
|
|
19
19
|
* @see useFireCMSContext
|
|
20
20
|
*/
|
|
21
|
-
export type FireCMSContext<
|
|
21
|
+
export type FireCMSContext<USER extends User = User, AuthControllerType extends AuthController<USER> = AuthController<USER>> = {
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Connector to your database, e.g. your Firestore database
|
package/src/types/index.ts
CHANGED
|
@@ -23,7 +23,6 @@ export * from "./plugins";
|
|
|
23
23
|
export * from "./analytics";
|
|
24
24
|
export * from "./firecms";
|
|
25
25
|
export * from "./roles";
|
|
26
|
-
export * from "./appcheck";
|
|
27
26
|
export * from "./export_import";
|
|
28
27
|
export * from "./modify_collections";
|
|
29
28
|
export * from "./analytics_controller";
|
package/src/types/navigation.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { EntityReference } from "./entities";
|
|
|
7
7
|
* attributes.
|
|
8
8
|
* @group Models
|
|
9
9
|
*/
|
|
10
|
-
export type NavigationController = {
|
|
10
|
+
export type NavigationController<EC extends EntityCollection = EntityCollection<any>> = {
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* List of the mapped collections in the CMS.
|
|
@@ -56,18 +56,17 @@ export type NavigationController = {
|
|
|
56
56
|
* Get the collection configuration for a given path.
|
|
57
57
|
* The collection is resolved from the given path or alias.
|
|
58
58
|
*/
|
|
59
|
-
getCollection:
|
|
60
|
-
|
|
61
|
-
includeUserOverride?: boolean) => EC | undefined;
|
|
59
|
+
getCollection: (pathOrId: string,
|
|
60
|
+
includeUserOverride?: boolean) => EC | undefined;
|
|
62
61
|
/**
|
|
63
|
-
* Get the collection configuration from its parent
|
|
62
|
+
* Get the collection configuration from its parent ids.
|
|
64
63
|
*/
|
|
65
|
-
getCollectionFromIds:
|
|
64
|
+
getCollectionFromIds: (ids: string[]) => EC | undefined;
|
|
66
65
|
|
|
67
66
|
/**
|
|
68
67
|
* Get the collection configuration from its parent path segments.
|
|
69
68
|
*/
|
|
70
|
-
getCollectionFromPaths:
|
|
69
|
+
getCollectionFromPaths: (pathSegments: string[]) => EC | undefined;
|
|
71
70
|
|
|
72
71
|
/**
|
|
73
72
|
* Default path under the navigation routes of the CMS will be created
|
|
@@ -174,6 +173,7 @@ export interface CMSView {
|
|
|
174
173
|
* You can use any of the icons in the Material specs:
|
|
175
174
|
* https://fonts.google.com/icons
|
|
176
175
|
* e.g. 'account_tree' or 'person'
|
|
176
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
177
177
|
*/
|
|
178
178
|
icon?: string;
|
|
179
179
|
|
package/src/types/permissions.ts
CHANGED
|
@@ -32,7 +32,7 @@ export interface Permissions {
|
|
|
32
32
|
* Props passed to a {@link PermissionsBuilder}
|
|
33
33
|
* @group Models
|
|
34
34
|
*/
|
|
35
|
-
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection,
|
|
35
|
+
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection, USER extends User = User, M extends object = InferCollectionType<EC>> {
|
|
36
36
|
/**
|
|
37
37
|
* Entity being edited, might be null in some cases, when the operation
|
|
38
38
|
* refers to the collection.
|
|
@@ -54,7 +54,7 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
54
54
|
/**
|
|
55
55
|
* Logged in user
|
|
56
56
|
*/
|
|
57
|
-
user:
|
|
57
|
+
user: USER | null;
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* Collection these permissions apply to
|
|
@@ -64,7 +64,7 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
64
64
|
/**
|
|
65
65
|
* Auth controller
|
|
66
66
|
*/
|
|
67
|
-
authController: AuthController<
|
|
67
|
+
authController: AuthController<USER>;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/**
|
|
@@ -72,10 +72,10 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
72
72
|
* based on the logged user or collection.
|
|
73
73
|
* @group Models
|
|
74
74
|
*/
|
|
75
|
-
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection,
|
|
75
|
+
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, USER extends User = User, M extends object = InferCollectionType<EC>> =
|
|
76
76
|
(({
|
|
77
77
|
pathSegments,
|
|
78
78
|
user,
|
|
79
79
|
collection,
|
|
80
80
|
authController
|
|
81
|
-
}: PermissionsBuilderProps<EC,
|
|
81
|
+
}: PermissionsBuilderProps<EC, USER, M>) => Permissions | undefined);
|
package/src/types/plugins.tsx
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from "react";
|
|
2
2
|
|
|
3
3
|
import { FireCMSContext } from "./firecms_context";
|
|
4
|
-
import { CollectionActionsProps, EntityCollection } from "./collections";
|
|
4
|
+
import { CollectionActionsProps, EntityCollection, EntityTableController } from "./collections";
|
|
5
5
|
import { User } from "./user";
|
|
6
6
|
import { FieldProps, FormContext } from "./fields";
|
|
7
7
|
import { CMSType, Property } from "./properties";
|
|
8
8
|
import { EntityStatus } from "./entities";
|
|
9
9
|
import { ResolvedProperty } from "./resolved_entities";
|
|
10
|
-
import { CMSView } from "./navigation";
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Interface used to define plugins for FireCMS.
|
|
14
13
|
* NOTE: This is a work in progress and the API is not stable yet.
|
|
15
14
|
* @group Core
|
|
16
15
|
*/
|
|
17
|
-
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
|
|
16
|
+
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any, COL_ACTIONS_START__PROPS = any> = {
|
|
18
17
|
|
|
19
18
|
/**
|
|
20
19
|
* Key of the plugin. This is used to identify the plugin in the CMS.
|
|
@@ -94,9 +93,18 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
94
93
|
* toolbar.
|
|
95
94
|
*/
|
|
96
95
|
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
97
|
-
|
|
98
96
|
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
99
97
|
|
|
98
|
+
CollectionActionsStart?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS>[];
|
|
99
|
+
collectionActionsStartProps?: COL_ACTIONS_START__PROPS;
|
|
100
|
+
|
|
101
|
+
blockSearch?: (props: {
|
|
102
|
+
context: FireCMSContext,
|
|
103
|
+
path: string,
|
|
104
|
+
collection: EC,
|
|
105
|
+
parentCollectionIds?: string[]
|
|
106
|
+
}) => boolean;
|
|
107
|
+
|
|
100
108
|
showTextSearchBar?: (props: {
|
|
101
109
|
context: FireCMSContext,
|
|
102
110
|
path: string,
|
|
@@ -122,6 +130,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
122
130
|
parentCollectionIds: string[],
|
|
123
131
|
onHover: boolean,
|
|
124
132
|
collection: EC;
|
|
133
|
+
tableController: EntityTableController;
|
|
125
134
|
}>;
|
|
126
135
|
|
|
127
136
|
/**
|
|
@@ -132,6 +141,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
132
141
|
fullPath: string,
|
|
133
142
|
parentCollectionIds: string[],
|
|
134
143
|
collection: EC;
|
|
144
|
+
tableController: EntityTableController;
|
|
135
145
|
}>;
|
|
136
146
|
}
|
|
137
147
|
|
|
@@ -156,7 +166,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
156
166
|
*
|
|
157
167
|
* @group Models
|
|
158
168
|
*/
|
|
159
|
-
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any,
|
|
169
|
+
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
160
170
|
/**
|
|
161
171
|
* Collection path of this entity. This is the full path, like
|
|
162
172
|
* `users/1234/addresses`
|
|
@@ -171,19 +181,19 @@ export interface PluginHomePageActionsProps<EP extends object = object, M extend
|
|
|
171
181
|
/**
|
|
172
182
|
* Context of the app status
|
|
173
183
|
*/
|
|
174
|
-
context: FireCMSContext<
|
|
184
|
+
context: FireCMSContext<USER>;
|
|
175
185
|
|
|
176
186
|
extraProps?: EP;
|
|
177
187
|
|
|
178
188
|
}
|
|
179
189
|
|
|
180
|
-
export interface PluginFormActionProps<
|
|
190
|
+
export interface PluginFormActionProps<USER extends User = User, EC extends EntityCollection = EntityCollection> {
|
|
181
191
|
entityId?: string;
|
|
182
192
|
path: string;
|
|
183
193
|
status: EntityStatus;
|
|
184
194
|
collection: EC;
|
|
185
195
|
formContext?: FormContext<any>;
|
|
186
|
-
context: FireCMSContext<
|
|
196
|
+
context: FireCMSContext<USER>;
|
|
187
197
|
currentEntityId?: string;
|
|
188
198
|
}
|
|
189
199
|
|
|
@@ -193,15 +203,15 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
|
|
|
193
203
|
property: Property<T> | ResolvedProperty<T>;
|
|
194
204
|
Field: React.ComponentType<FieldProps<T, any, M>>;
|
|
195
205
|
plugin: FireCMSPlugin;
|
|
196
|
-
path
|
|
197
|
-
collection
|
|
206
|
+
path?: string;
|
|
207
|
+
collection?: EC;
|
|
198
208
|
};
|
|
199
209
|
|
|
200
|
-
export interface PluginGenericProps<
|
|
201
|
-
context: FireCMSContext<
|
|
210
|
+
export interface PluginGenericProps<USER extends User = User> {
|
|
211
|
+
context: FireCMSContext<USER>;
|
|
202
212
|
}
|
|
203
213
|
|
|
204
|
-
export interface PluginHomePageAdditionalCardsProps<
|
|
214
|
+
export interface PluginHomePageAdditionalCardsProps<USER extends User = User> {
|
|
205
215
|
group?: string;
|
|
206
|
-
context: FireCMSContext<
|
|
216
|
+
context: FireCMSContext<USER>;
|
|
207
217
|
}
|