@firecms/core 3.0.0-canary.11 → 3.0.0-canary.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +17 -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/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- 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 +5 -3
- 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 +2 -0
- 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 +2 -2
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +12 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityPreview.d.ts +5 -4
- 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/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 +3 -0
- package/dist/components/index.d.ts +3 -1
- 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 +9 -0
- package/dist/core/EntityEditView.d.ts +18 -4
- package/dist/core/FireCMS.d.ts +1 -1
- 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 -0
- 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 +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- 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 +2 -4
- package/dist/hooks/data/save.d.ts +1 -2
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useBuildNavigationController.d.ts +1 -2
- package/dist/hooks/useProjectLog.d.ts +2 -2
- package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +15627 -12442
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +19866 -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 +2 -1
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/types/auth.d.ts +3 -3
- package/dist/types/collections.d.ts +39 -5
- package/dist/types/datasource.d.ts +45 -31
- package/dist/types/entities.d.ts +6 -1
- package/dist/types/entity_actions.d.ts +14 -0
- package/dist/types/fields.d.ts +45 -39
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +6 -5
- package/dist/types/plugins.d.ts +14 -4
- package/dist/types/properties.d.ts +32 -19
- package/dist/types/storage.d.ts +11 -3
- package/dist/util/entities.d.ts +1 -1
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -97
- package/dist/util/icons.d.ts +2 -2
- package/dist/util/index.d.ts +1 -0
- package/dist/util/navigation_utils.d.ts +2 -2
- package/dist/util/objects.d.ts +1 -1
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/resolutions.d.ts +14 -13
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +1 -1
- package/package.json +128 -119
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +25 -0
- package/src/app/Scaffold.tsx +245 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +9 -7
- package/src/components/CircularProgressCenter.tsx +1 -1
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +12 -19
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +21 -20
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +10 -6
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +41 -35
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +22 -12
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +14 -6
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +29 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +17 -13
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +19 -7
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +7 -10
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +75 -51
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +19 -7
- package/src/components/EntityPreview.tsx +21 -15
- package/src/components/EntityView.tsx +5 -5
- package/src/components/ErrorView.tsx +1 -1
- package/src/components/HomePage/DefaultHomePage.tsx +24 -15
- package/src/components/HomePage/NavigationCard.tsx +3 -3
- package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/PropertyIdCopyTooltip.tsx +48 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +2 -5
- package/src/components/ReferenceWidget.tsx +22 -12
- package/src/components/SearchIconsView.tsx +11 -7
- package/src/components/SelectableTable/SelectableTable.tsx +7 -7
- 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 +35 -15
- package/src/components/VirtualTable/VirtualTable.tsx +70 -37
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -1
- package/src/components/VirtualTable/VirtualTableHeader.tsx +4 -4
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +18 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +4 -5
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +1 -1
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +2 -2
- 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 +11 -0
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +3 -1
- package/src/contexts/DialogsProvider.tsx +2 -2
- package/src/{components/FireCMSAppBar.tsx → core/DefaultAppBar.tsx} +52 -37
- package/src/core/DefaultDrawer.tsx +177 -0
- package/src/core/DrawerNavigationItem.tsx +64 -0
- package/src/core/EntityEditView.tsx +702 -137
- package/src/core/EntitySidePanel.tsx +1 -2
- package/src/core/FireCMS.tsx +39 -44
- package/src/core/NavigationRoutes.tsx +7 -8
- package/src/core/SideDialogs.tsx +4 -0
- package/src/core/field_configs.tsx +4 -5
- package/src/core/index.tsx +3 -4
- package/src/form/PropertyFieldBinding.tsx +53 -21
- 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 +21 -11
- package/src/form/components/StorageUploadProgress.tsx +3 -4
- package/src/form/components/index.tsx +1 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +15 -11
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +26 -21
- package/src/form/field_bindings/BlockFieldBinding.tsx +13 -12
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +52 -46
- package/src/form/field_bindings/MapFieldBinding.tsx +15 -15
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +138 -0
- package/src/form/field_bindings/MultiSelectBinding.tsx +9 -5
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +37 -27
- package/src/form/field_bindings/RepeatFieldBinding.tsx +20 -16
- package/src/form/field_bindings/SelectFieldBinding.tsx +47 -41
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +31 -52
- package/src/form/field_bindings/SwitchFieldBinding.tsx +9 -5
- package/src/form/field_bindings/TextFieldBinding.tsx +26 -22
- package/src/form/index.tsx +6 -6
- package/src/form/validation.ts +1 -17
- package/src/hooks/data/save.ts +6 -1
- package/src/hooks/data/useDataSource.tsx +1 -1
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +11 -5
- package/src/hooks/useBuildNavigationController.tsx +86 -29
- package/src/hooks/useProjectLog.tsx +19 -8
- package/src/hooks/useResolvedNavigationFrom.tsx +1 -1
- package/src/hooks/useValidateAuthenticator.tsx +21 -41
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +84 -62
- package/src/internal/useBuildSideEntityController.tsx +90 -21
- package/src/internal/useUnsavedChangesDialog.tsx +3 -1
- package/src/preview/PropertyPreview.tsx +10 -17
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +24 -34
- package/src/preview/components/ReferencePreview.tsx +23 -23
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +44 -11
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +0 -1
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +3 -2
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -1
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +3 -4
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +3 -4
- 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 +3 -3
- package/src/types/collections.ts +48 -7
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +53 -39
- package/src/types/entities.ts +11 -1
- package/src/types/entity_actions.tsx +16 -3
- package/src/types/fields.tsx +49 -43
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +7 -7
- package/src/types/plugins.tsx +16 -6
- package/src/types/properties.ts +37 -20
- package/src/types/storage.ts +12 -3
- package/src/util/entities.ts +5 -4
- 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/index.ts +1 -0
- package/src/util/navigation_utils.ts +6 -6
- package/src/util/objects.ts +25 -28
- package/src/util/permissions.ts +1 -0
- package/src/util/plurals.ts +0 -2
- package/src/util/references.ts +3 -0
- package/src/util/resolutions.ts +44 -39
- package/src/util/storage.ts +76 -22
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +22 -4
- 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/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/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/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 = "medium" | "small" | "
|
|
5
|
+
export type PreviewSize = "medium" | "small" | "smallest";
|
|
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: "smallest" | "small" | "medium";
|
|
7
7
|
className?: string;
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
}
|
|
@@ -8,7 +8,8 @@ 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
|
|
@@ -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/types/auth.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ 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<UserType extends User = any, ExtraData
|
|
11
|
+
export type AuthController<UserType 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
|
|
@@ -32,7 +32,7 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
32
32
|
/**
|
|
33
33
|
* Sign out
|
|
34
34
|
*/
|
|
35
|
-
signOut: () => void
|
|
35
|
+
signOut: () => Promise<void>;
|
|
36
36
|
/**
|
|
37
37
|
* Error initializing the authentication
|
|
38
38
|
*/
|
|
@@ -56,7 +56,7 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
56
56
|
* Implement this function to allow access to specific users.
|
|
57
57
|
* @group Hooks and utilities
|
|
58
58
|
*/
|
|
59
|
-
export type Authenticator<UserType extends User = User, Controller extends AuthController<UserType> = AuthController<UserType>> = (
|
|
59
|
+
export type Authenticator<UserType extends User = User, Controller extends AuthController<UserType> = AuthController<UserType>> = (props: {
|
|
60
60
|
/**
|
|
61
61
|
* Logged-in user or null
|
|
62
62
|
*/
|
|
@@ -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.
|
|
@@ -253,7 +263,18 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
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.
|
|
@@ -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
|
|
@@ -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;
|
|
@@ -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
|
};
|
|
@@ -54,9 +56,8 @@ export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
|
54
56
|
entity: Entity<M>;
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
59
|
+
* Component in charge of communicating with the data source.
|
|
60
|
+
* Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
|
|
60
61
|
* @group Datasource
|
|
61
62
|
*/
|
|
62
63
|
export interface DataSource {
|
|
@@ -131,7 +132,7 @@ export interface DataSource {
|
|
|
131
132
|
* @param entityId
|
|
132
133
|
* @return `true` if there are no other fields besides the given entity
|
|
133
134
|
*/
|
|
134
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
135
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, databaseId?: string): Promise<boolean>;
|
|
135
136
|
/**
|
|
136
137
|
* Generate an id for a new entity
|
|
137
138
|
*/
|
|
@@ -145,6 +146,17 @@ export interface DataSource {
|
|
|
145
146
|
* @param props
|
|
146
147
|
*/
|
|
147
148
|
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Called when the user clicks on the search bar in a collection view.
|
|
151
|
+
* Useful for initializing a text search index.
|
|
152
|
+
* @param props
|
|
153
|
+
*/
|
|
154
|
+
initTextSearch?: (props: {
|
|
155
|
+
context: FireCMSContext;
|
|
156
|
+
path: string;
|
|
157
|
+
collection: EntityCollection;
|
|
158
|
+
parentCollectionIds?: string[];
|
|
159
|
+
}) => Promise<boolean>;
|
|
148
160
|
}
|
|
149
161
|
export type FilterCombinationValidProps = {
|
|
150
162
|
path: string;
|
|
@@ -152,14 +164,18 @@ export type FilterCombinationValidProps = {
|
|
|
152
164
|
filterValues: FilterValues<any>;
|
|
153
165
|
sortBy?: [string, "asc" | "desc"];
|
|
154
166
|
};
|
|
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
|
-
};
|
|
167
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
|
|
168
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
|
|
169
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
|
|
162
170
|
export interface DataSourceDelegate {
|
|
171
|
+
/**
|
|
172
|
+
* Key that identifies this data source delegate
|
|
173
|
+
*/
|
|
174
|
+
key: string;
|
|
175
|
+
/**
|
|
176
|
+
* If the data source has been initialised
|
|
177
|
+
*/
|
|
178
|
+
initialised?: boolean;
|
|
163
179
|
/**
|
|
164
180
|
* Fetch data from a collection
|
|
165
181
|
* @param path
|
|
@@ -194,7 +210,7 @@ export interface DataSourceDelegate {
|
|
|
194
210
|
* @param path
|
|
195
211
|
* @param entityId
|
|
196
212
|
*/
|
|
197
|
-
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }:
|
|
213
|
+
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
198
214
|
/**
|
|
199
215
|
* Get realtime updates on one entity.
|
|
200
216
|
* @param path
|
|
@@ -204,12 +220,12 @@ export interface DataSourceDelegate {
|
|
|
204
220
|
* @param onError
|
|
205
221
|
* @return Function to cancel subscription
|
|
206
222
|
*/
|
|
207
|
-
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }:
|
|
223
|
+
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }: ListenEntityProps<M>): () => void;
|
|
208
224
|
/**
|
|
209
225
|
* Save entity to the specified path
|
|
210
226
|
* @param path
|
|
211
|
-
* @param
|
|
212
|
-
* @param
|
|
227
|
+
* @param entityId
|
|
228
|
+
* @param values
|
|
213
229
|
* @param status
|
|
214
230
|
*/
|
|
215
231
|
saveEntity<M extends Record<string, any> = any>({ path, entityId, values, status }: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
|
|
@@ -227,7 +243,7 @@ export interface DataSourceDelegate {
|
|
|
227
243
|
* @param entityId
|
|
228
244
|
* @return `true` if there are no other fields besides the given entity
|
|
229
245
|
*/
|
|
230
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
246
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, databaseId?: string): Promise<boolean>;
|
|
231
247
|
/**
|
|
232
248
|
* Generate an id for a new entity
|
|
233
249
|
*/
|
|
@@ -240,23 +256,21 @@ export interface DataSourceDelegate {
|
|
|
240
256
|
* Check if the given filter combination is valid
|
|
241
257
|
* @param props
|
|
242
258
|
*/
|
|
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;
|
|
259
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
260
|
+
databaseId?: string;
|
|
261
|
+
}): boolean;
|
|
254
262
|
/**
|
|
255
263
|
* Get the object to generate the current time in the datasource
|
|
256
264
|
*/
|
|
257
|
-
currentTime()
|
|
258
|
-
buildDate: (date: Date) => any;
|
|
259
|
-
buildDeleteFieldValue: () => any;
|
|
265
|
+
currentTime?: () => any;
|
|
260
266
|
delegateToCMSModel: (data: any) => any;
|
|
267
|
+
cmsToDelegateModel: (data: any) => any;
|
|
261
268
|
setDateToMidnight: (input?: any) => any;
|
|
269
|
+
initTextSearch?: (props: {
|
|
270
|
+
context: FireCMSContext;
|
|
271
|
+
path: string;
|
|
272
|
+
databaseId?: string;
|
|
273
|
+
collection: EntityCollection;
|
|
274
|
+
parentCollectionIds?: string[];
|
|
275
|
+
}) => Promise<boolean>;
|
|
262
276
|
}
|
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,9 +4,23 @@ 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
|
+
/**
|
|
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
|
+
*/
|
|
7
11
|
export type EntityAction<M extends object = any, UserType 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;
|
|
20
|
+
/**
|
|
21
|
+
* Callback when the action is clicked
|
|
22
|
+
* @param props
|
|
23
|
+
*/
|
|
10
24
|
onClick: (props: EntityActionClickProps<M, UserType>) => Promise<void> | void;
|
|
11
25
|
/**
|
|
12
26
|
* Show this action collapsed in the menu of the collection view.
|
package/dist/types/fields.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EntityValues } from "./entities";
|
|
2
1
|
import { CMSType, PropertyOrBuilder } from "./properties";
|
|
3
2
|
import { ResolvedEntityCollection, ResolvedProperty } from "./resolved_entities";
|
|
3
|
+
import { FormexController } from "@firecms/formex";
|
|
4
4
|
/**
|
|
5
5
|
* When building a custom field you need to create a React component that takes
|
|
6
6
|
* this interface as props.
|
|
@@ -17,9 +17,6 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
17
17
|
* Current value of this field
|
|
18
18
|
*/
|
|
19
19
|
value: T;
|
|
20
|
-
/**
|
|
21
|
-
* Initial value of this field
|
|
22
|
-
*/
|
|
23
20
|
/**
|
|
24
21
|
* Set value of field directly
|
|
25
22
|
*/
|
|
@@ -34,24 +31,24 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
34
31
|
/**
|
|
35
32
|
* Is the form currently submitting
|
|
36
33
|
*/
|
|
37
|
-
isSubmitting
|
|
34
|
+
isSubmitting?: boolean;
|
|
38
35
|
/**
|
|
39
36
|
* Should this field show the error indicator.
|
|
40
37
|
* Note that there might be an error (like an empty field that should be
|
|
41
38
|
* filled) but we don't want to show the error until the user has tried
|
|
42
39
|
* saving.
|
|
43
40
|
*/
|
|
44
|
-
showError
|
|
41
|
+
showError?: boolean;
|
|
45
42
|
/**
|
|
46
43
|
* Is there an error in this field. The error field has the same shape as
|
|
47
44
|
* the field, replacing values with a string containing the error.
|
|
48
45
|
* It takes the value `null` if there is no error
|
|
49
46
|
*/
|
|
50
|
-
error
|
|
47
|
+
error?: any | null;
|
|
51
48
|
/**
|
|
52
49
|
* Has this field been touched
|
|
53
50
|
*/
|
|
54
|
-
touched
|
|
51
|
+
touched?: boolean;
|
|
55
52
|
/**
|
|
56
53
|
* Property related to this field
|
|
57
54
|
*/
|
|
@@ -59,28 +56,24 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
59
56
|
/**
|
|
60
57
|
* Should this field include a description
|
|
61
58
|
*/
|
|
62
|
-
includeDescription
|
|
59
|
+
includeDescription?: boolean;
|
|
63
60
|
/**
|
|
64
61
|
* Flag to indicate that the underlying value has been updated in the
|
|
65
62
|
* datasource
|
|
66
63
|
*/
|
|
67
|
-
underlyingValueHasChanged
|
|
64
|
+
underlyingValueHasChanged?: boolean;
|
|
68
65
|
/**
|
|
69
66
|
* Is this field part of an array
|
|
70
67
|
*/
|
|
71
|
-
partOfArray
|
|
72
|
-
/**
|
|
73
|
-
* Is this field part of a block (oneOf array)
|
|
74
|
-
*/
|
|
75
|
-
partOfBlock: boolean;
|
|
68
|
+
partOfArray?: boolean;
|
|
76
69
|
/**
|
|
77
|
-
*
|
|
70
|
+
* Should this field render with the minimal amount of UI elements
|
|
78
71
|
*/
|
|
79
|
-
|
|
72
|
+
minimalistView?: boolean;
|
|
80
73
|
/**
|
|
81
74
|
* Should this field autofocus on mount
|
|
82
75
|
*/
|
|
83
|
-
autoFocus
|
|
76
|
+
autoFocus?: boolean;
|
|
84
77
|
/**
|
|
85
78
|
* Additional properties set by the developer
|
|
86
79
|
*/
|
|
@@ -92,29 +85,21 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
92
85
|
/**
|
|
93
86
|
* Flag to indicate if this field should be disabled
|
|
94
87
|
*/
|
|
95
|
-
disabled
|
|
88
|
+
disabled?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Size of the field
|
|
91
|
+
*/
|
|
92
|
+
size?: "smallest" | "small" | "medium";
|
|
96
93
|
}
|
|
97
94
|
/**
|
|
98
95
|
* Context passed to custom fields
|
|
99
96
|
* @group Form custom fields
|
|
100
97
|
*/
|
|
101
98
|
export interface FormContext<M extends Record<string, any> = any> {
|
|
102
|
-
/**
|
|
103
|
-
* Collection of the entity being modified
|
|
104
|
-
*/
|
|
105
|
-
collection: ResolvedEntityCollection<M>;
|
|
106
99
|
/**
|
|
107
100
|
* Current values of the entity
|
|
108
101
|
*/
|
|
109
|
-
values:
|
|
110
|
-
/**
|
|
111
|
-
* Entity id, it can be null if it's a new entity
|
|
112
|
-
*/
|
|
113
|
-
entityId?: string;
|
|
114
|
-
/**
|
|
115
|
-
* Path this entity is located at
|
|
116
|
-
*/
|
|
117
|
-
path: string;
|
|
102
|
+
values: M;
|
|
118
103
|
/**
|
|
119
104
|
* Update the value of a field
|
|
120
105
|
* @param key
|
|
@@ -123,9 +108,25 @@ export interface FormContext<M extends Record<string, any> = any> {
|
|
|
123
108
|
*/
|
|
124
109
|
setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
|
|
125
110
|
/**
|
|
126
|
-
* Save the entity
|
|
111
|
+
* Save the entity.
|
|
112
|
+
*/
|
|
113
|
+
save: (values: M) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Collection of the entity being modified
|
|
116
|
+
*/
|
|
117
|
+
collection?: ResolvedEntityCollection<M>;
|
|
118
|
+
/**
|
|
119
|
+
* Entity id, it can be null if it's a new entity
|
|
127
120
|
*/
|
|
128
|
-
|
|
121
|
+
entityId: string;
|
|
122
|
+
/**
|
|
123
|
+
* Path this entity is located at
|
|
124
|
+
*/
|
|
125
|
+
path?: string;
|
|
126
|
+
/**
|
|
127
|
+
* This is the underlying formex controller that powers the form
|
|
128
|
+
*/
|
|
129
|
+
formex: FormexController<M>;
|
|
129
130
|
}
|
|
130
131
|
/**
|
|
131
132
|
* In case you need to render a field bound to a Property inside your
|
|
@@ -156,10 +157,6 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
156
157
|
* field is being edited
|
|
157
158
|
*/
|
|
158
159
|
underlyingValueHasChanged?: boolean;
|
|
159
|
-
/**
|
|
160
|
-
* Is this field being rendered in a table
|
|
161
|
-
*/
|
|
162
|
-
tableMode?: boolean;
|
|
163
160
|
/**
|
|
164
161
|
* Is this field part of an array
|
|
165
162
|
*/
|
|
@@ -167,7 +164,7 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
167
164
|
/**
|
|
168
165
|
* Is this field part of a block (oneOf array)
|
|
169
166
|
*/
|
|
170
|
-
|
|
167
|
+
minimalistView?: boolean;
|
|
171
168
|
/**
|
|
172
169
|
* Should the field take focus when rendered. When opening the popup view
|
|
173
170
|
* in table mode, it makes sense to put the focus on the only field rendered.
|
|
@@ -177,4 +174,13 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
177
174
|
* Should this field be disabled
|
|
178
175
|
*/
|
|
179
176
|
disabled?: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Index of the field in the array.
|
|
179
|
+
* Only used when the field is part of an array.
|
|
180
|
+
*/
|
|
181
|
+
index?: number;
|
|
182
|
+
/**
|
|
183
|
+
* The size of the field
|
|
184
|
+
*/
|
|
185
|
+
size?: "smallest" | "small" | "medium";
|
|
180
186
|
}
|
package/dist/types/index.d.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";
|
|
@@ -6,7 +6,7 @@ import { EntityReference } from "./entities";
|
|
|
6
6
|
* attributes.
|
|
7
7
|
* @group Models
|
|
8
8
|
*/
|
|
9
|
-
export type NavigationController = {
|
|
9
|
+
export type NavigationController<EC extends EntityCollection = EntityCollection<any>> = {
|
|
10
10
|
/**
|
|
11
11
|
* List of the mapped collections in the CMS.
|
|
12
12
|
* Each entry relates to a collection in the root database.
|
|
@@ -47,15 +47,15 @@ export type NavigationController = {
|
|
|
47
47
|
* Get the collection configuration for a given path.
|
|
48
48
|
* The collection is resolved from the given path or alias.
|
|
49
49
|
*/
|
|
50
|
-
getCollection:
|
|
50
|
+
getCollection: (pathOrId: string, includeUserOverride?: boolean) => EC | undefined;
|
|
51
51
|
/**
|
|
52
|
-
* Get the collection configuration from its parent
|
|
52
|
+
* Get the collection configuration from its parent ids.
|
|
53
53
|
*/
|
|
54
|
-
getCollectionFromIds:
|
|
54
|
+
getCollectionFromIds: (ids: string[]) => EC | undefined;
|
|
55
55
|
/**
|
|
56
56
|
* Get the collection configuration from its parent path segments.
|
|
57
57
|
*/
|
|
58
|
-
getCollectionFromPaths:
|
|
58
|
+
getCollectionFromPaths: (pathSegments: string[]) => EC | undefined;
|
|
59
59
|
/**
|
|
60
60
|
* Default path under the navigation routes of the CMS will be created
|
|
61
61
|
*/
|
|
@@ -144,6 +144,7 @@ export interface CMSView {
|
|
|
144
144
|
* You can use any of the icons in the Material specs:
|
|
145
145
|
* https://fonts.google.com/icons
|
|
146
146
|
* e.g. 'account_tree' or 'person'
|
|
147
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
147
148
|
*/
|
|
148
149
|
icon?: string;
|
|
149
150
|
/**
|