@firecms/core 3.2.0 → 3.3.0-canary.2064433
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/dist/app/AppBar.d.ts +1 -1
- package/dist/app/Drawer.d.ts +1 -1
- package/dist/components/AIIcon.d.ts +3 -2
- package/dist/components/ArrayContainer.d.ts +3 -3
- package/dist/components/CircularProgressCenter.d.ts +2 -1
- package/dist/components/ClearFilterSortButton.d.ts +1 -1
- package/dist/components/ConfirmationDialog.d.ts +1 -1
- package/dist/components/DeleteEntityDialog.d.ts +2 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -1
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
- package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +4 -3
- package/dist/components/EntityCollectionView/Board.d.ts +2 -1
- package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +1 -1
- package/dist/components/EntityCollectionView/BoardSortableList.d.ts +1 -1
- package/dist/components/EntityCollectionView/CollectionDataErrorBanner.d.ts +2 -1
- package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +1 -1
- package/dist/components/EntityCollectionView/EntityCard.d.ts +2 -1
- package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +1 -1
- package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +1 -1
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +2 -1
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +2 -1
- package/dist/components/EntityCollectionView/FiltersDialog.d.ts +2 -1
- package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +2 -1
- package/dist/components/EntityJsonPreview.d.ts +2 -1
- package/dist/components/EntityPreview.d.ts +1 -1
- package/dist/components/EntityView.d.ts +2 -1
- package/dist/components/ErrorBoundary.d.ts +1 -1
- package/dist/components/ErrorTooltip.d.ts +2 -1
- package/dist/components/FieldCaption.d.ts +1 -1
- package/dist/components/FireCMSLogo.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/FavouritesView.d.ts +1 -1
- package/dist/components/HomePage/HomePageDnD.d.ts +4 -4
- package/dist/components/HomePage/NavigationCardBinding.d.ts +2 -1
- package/dist/components/HomePage/NavigationGroup.d.ts +2 -2
- package/dist/components/HomePage/RenameGroupDialog.d.ts +2 -1
- package/dist/components/HomePage/SmallNavigationCard.d.ts +1 -1
- package/dist/components/LanguageToggle.d.ts +2 -1
- package/dist/components/NotFoundPage.d.ts +2 -1
- package/dist/components/PropertyCollectionView.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +2 -2
- package/dist/components/ReferenceTable/ReferenceSelectionTable.d.ts +1 -1
- package/dist/components/ReferenceWidget.d.ts +2 -1
- package/dist/components/SearchIconsView.d.ts +2 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +1 -1
- package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +2 -1
- package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +2 -1
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +1 -1
- package/dist/components/UserDisplay.d.ts +1 -1
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +1 -0
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +6 -1
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +1 -1
- package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +2 -1
- package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +2 -1
- package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +1 -1
- package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +2 -1
- package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +1 -1
- package/dist/components/VirtualTable/types.d.ts +1 -0
- package/dist/core/DefaultAppBar.d.ts +1 -1
- package/dist/core/DefaultDrawer.d.ts +2 -2
- package/dist/core/DrawerNavigationGroup.d.ts +1 -1
- package/dist/core/DrawerNavigationItem.d.ts +1 -1
- package/dist/core/EntityEditView.d.ts +2 -2
- package/dist/core/EntityEditViewFormActions.d.ts +2 -1
- package/dist/core/EntitySidePanel.d.ts +2 -1
- package/dist/core/FireCMS.d.ts +2 -1
- package/dist/core/FireCMSRouter.d.ts +1 -1
- package/dist/core/SideDialogs.d.ts +1 -1
- package/dist/editor/components/SlashCommandMenu.d.ts +2 -1
- package/dist/editor/editor.d.ts +1 -1
- package/dist/editor/selectors/color-selector.d.ts +1 -1
- package/dist/editor/selectors/link-selector.d.ts +1 -1
- package/dist/editor/selectors/node-selector.d.ts +1 -1
- package/dist/editor/selectors/text-buttons.d.ts +1 -1
- package/dist/form/EntityForm.d.ts +1 -1
- package/dist/form/EntityFormActions.d.ts +1 -1
- package/dist/form/components/CustomIdField.d.ts +2 -1
- package/dist/form/components/FieldHelperText.d.ts +1 -1
- package/dist/form/components/FormEntry.d.ts +1 -1
- package/dist/form/components/FormLayout.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +1 -1
- package/dist/form/components/LocalChangesMenu.d.ts +2 -1
- package/dist/form/components/StorageItemPreview.d.ts +2 -1
- package/dist/form/components/StorageUploadProgress.d.ts +2 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +3 -2
- package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -2
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -1
- package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +2 -1
- package/dist/i18n/FireCMSi18nProvider.d.ts +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +24457 -23726
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +22959 -22228
- package/dist/index.umd.js.map +1 -1
- package/dist/preview/components/ArrayEnumPreview.d.ts +2 -1
- package/dist/preview/components/AsyncPreviewComponent.d.ts +1 -1
- package/dist/preview/components/EmptyValue.d.ts +2 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ImagePreview.d.ts +2 -1
- package/dist/preview/components/ReferencePreview.d.ts +1 -1
- package/dist/preview/components/StorageThumbnail.d.ts +1 -1
- package/dist/preview/components/UserPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +2 -1
- package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +1 -1
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +2 -1
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +3 -2
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +5 -4
- package/dist/routes/FireCMSRoute.d.ts +2 -1
- package/dist/types/collections.d.ts +38 -0
- package/dist/types/properties.d.ts +9 -8
- package/dist/types/translations.d.ts +23 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/lazy_eager.d.ts +7 -0
- package/dist/util/objects.d.ts +1 -0
- package/dist/util/property_utils.d.ts +1 -1
- package/package.json +5 -5
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +9 -3
- package/src/components/EntityCollectionTable/internal/common.tsx +2 -2
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +3 -5
- package/src/components/EntityJsonPreview.tsx +2 -1
- package/src/components/ErrorBoundary.tsx +3 -3
- package/src/components/VirtualTable/VirtualTable.tsx +5 -3
- package/src/components/VirtualTable/VirtualTableHeader.tsx +9 -8
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +8 -3
- package/src/components/VirtualTable/VirtualTableProps.tsx +7 -1
- package/src/components/VirtualTable/types.tsx +1 -0
- package/src/core/DrawerNavigationGroup.tsx +1 -1
- package/src/core/EntityEditView.tsx +50 -5
- package/src/core/EntitySidePanel.tsx +2 -1
- package/src/core/field_configs.tsx +4 -2
- package/src/editor/editor.tsx +20 -1
- package/src/editor/markdown.ts +89 -1
- package/src/form/EntityForm.tsx +64 -4
- package/src/form/PropertyFieldBinding.tsx +4 -3
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +18 -5
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +18 -5
- package/src/form/field_bindings/BlockFieldBinding.tsx +21 -7
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +1 -1
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +23 -6
- package/src/form/field_bindings/MapFieldBinding.tsx +23 -8
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +43 -20
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +15 -1
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +25 -11
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +25 -11
- package/src/form/field_bindings/RepeatFieldBinding.tsx +18 -5
- package/src/form/field_bindings/SelectFieldBinding.tsx +7 -5
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +24 -7
- package/src/form/field_bindings/SwitchFieldBinding.tsx +31 -14
- package/src/form/field_bindings/TextFieldBinding.tsx +10 -7
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +7 -5
- package/src/index.ts +1 -0
- package/src/internal/useBuildSideEntityController.tsx +1 -1
- package/src/locales/de.ts +28 -1
- package/src/locales/en.ts +27 -0
- package/src/locales/es.ts +28 -1
- package/src/locales/fr.ts +28 -1
- package/src/locales/hi.ts +28 -1
- package/src/locales/it.ts +28 -1
- package/src/locales/pt.ts +28 -1
- package/src/preview/PropertyPreview.tsx +6 -5
- package/src/preview/components/ReferencePreview.tsx +2 -1
- package/src/preview/property_previews/MapPropertyPreview.tsx +49 -27
- package/src/routes/FireCMSRoute.tsx +63 -54
- package/src/types/collections.ts +40 -0
- package/src/types/properties.ts +11 -10
- package/src/types/translations.ts +27 -0
- package/src/util/index.ts +1 -0
- package/src/util/lazy_eager.tsx +33 -0
- package/src/util/objects.ts +15 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { EnumValueConfig } from "../../types";
|
|
2
3
|
import { PreviewSize } from "../PropertyPreviewProps";
|
|
3
4
|
/**
|
|
@@ -8,4 +9,4 @@ export declare function ArrayEnumPreview({ name, value, enumValues, size }: {
|
|
|
8
9
|
name: string | undefined;
|
|
9
10
|
enumValues: EnumValueConfig[];
|
|
10
11
|
size: PreviewSize;
|
|
11
|
-
}):
|
|
12
|
+
}): React.JSX.Element;
|
|
@@ -8,4 +8,4 @@ export interface AsyncPreviewComponentProps {
|
|
|
8
8
|
*
|
|
9
9
|
* @group Preview components
|
|
10
10
|
*/
|
|
11
|
-
export declare const AsyncPreviewComponent: React.MemoExoticComponent<(<M extends Record<string, any>>({ builder }: AsyncPreviewComponentProps) =>
|
|
11
|
+
export declare const AsyncPreviewComponent: React.MemoExoticComponent<(<M extends Record<string, any>>({ builder }: AsyncPreviewComponentProps) => React.JSX.Element)>;
|
|
@@ -10,4 +10,4 @@ export interface EnumValuesChipProps {
|
|
|
10
10
|
/**
|
|
11
11
|
* @group Preview components
|
|
12
12
|
*/
|
|
13
|
-
export declare function EnumValuesChip({ enumValues, enumKey, size, className, children }: EnumValuesChipProps):
|
|
13
|
+
export declare function EnumValuesChip({ enumValues, enumKey, size, className, children }: EnumValuesChipProps): React.JSX.Element | null;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PreviewSize } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
@@ -13,4 +14,4 @@ export interface ImagePreviewProps {
|
|
|
13
14
|
/**
|
|
14
15
|
* @group Preview components
|
|
15
16
|
*/
|
|
16
|
-
export declare function ImagePreview({ size, url, fill }: ImagePreviewProps):
|
|
17
|
+
export declare function ImagePreview({ size, url, fill }: ImagePreviewProps): React.JSX.Element;
|
|
@@ -14,4 +14,4 @@ export type ReferencePreviewProps = {
|
|
|
14
14
|
/**
|
|
15
15
|
* @group Preview components
|
|
16
16
|
*/
|
|
17
|
-
export declare const ReferencePreview: (props: ReferencePreviewProps) =>
|
|
17
|
+
export declare const ReferencePreview: (props: ReferencePreviewProps) => React.JSX.Element;
|
|
@@ -11,5 +11,5 @@ type StorageThumbnailProps = {
|
|
|
11
11
|
* @group Preview components
|
|
12
12
|
*/
|
|
13
13
|
export declare const StorageThumbnail: React.FunctionComponent<StorageThumbnailProps>;
|
|
14
|
-
export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size, fill }: StorageThumbnailProps):
|
|
14
|
+
export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size, fill }: StorageThumbnailProps): React.JSX.Element | null;
|
|
15
15
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* Preview component for displaying user information.
|
|
@@ -5,4 +6,4 @@ import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
|
5
6
|
*
|
|
6
7
|
* @group Preview components
|
|
7
8
|
*/
|
|
8
|
-
export declare function UserPreview({ value }: PropertyPreviewProps<string>):
|
|
9
|
+
export declare function UserPreview({ value }: PropertyPreviewProps<string>): React.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
4
5
|
*/
|
|
5
|
-
export declare function ArrayOfMapsPreview({ propertyKey, value, property: inputProperty, size, }: PropertyPreviewProps<Record<string, any>[]>):
|
|
6
|
+
export declare function ArrayOfMapsPreview({ propertyKey, value, property: inputProperty, size, }: PropertyPreviewProps<Record<string, any>[]>): React.JSX.Element | null;
|
|
@@ -2,4 +2,4 @@ import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
|
2
2
|
/**
|
|
3
3
|
* @group Preview components
|
|
4
4
|
*/
|
|
5
|
-
export declare function ArrayOfReferencesPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>): import("react
|
|
5
|
+
export declare function ArrayOfReferencesPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>): import("react").JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
4
5
|
*/
|
|
5
|
-
export declare function ArrayOfStorageComponentsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>):
|
|
6
|
+
export declare function ArrayOfStorageComponentsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>): React.JSX.Element | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../../preview";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
4
5
|
*/
|
|
5
|
-
export declare function ArrayOfStringsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<string[]>):
|
|
6
|
+
export declare function ArrayOfStringsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<string[]>): React.JSX.Element | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
4
5
|
*/
|
|
5
|
-
export declare function ArrayOneOfPreview({ propertyKey, value, property: inputProperty, size, }: PropertyPreviewProps<any[]>):
|
|
6
|
+
export declare function ArrayOneOfPreview({ propertyKey, value, property: inputProperty, size, }: PropertyPreviewProps<any[]>): React.JSX.Element | null;
|
|
@@ -2,4 +2,4 @@ import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
|
2
2
|
/**
|
|
3
3
|
* @group Preview components
|
|
4
4
|
*/
|
|
5
|
-
export declare function ArrayPropertyEnumPreview({ propertyKey, value, property, size }: PropertyPreviewProps<string[] | number[]>): import("react
|
|
5
|
+
export declare function ArrayPropertyEnumPreview({ propertyKey, value, property, size }: PropertyPreviewProps<string[] | number[]>): import("react").JSX.Element | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
4
5
|
*/
|
|
5
|
-
export declare function ArrayPropertyPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>):
|
|
6
|
+
export declare function ArrayPropertyPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>): React.JSX.Element | null;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { PropertyPreviewProps } from "../PropertyPreviewProps";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
4
5
|
*/
|
|
5
|
-
export declare function MapPropertyPreview<T extends Record<string, any> = Record<string, any>>({ propertyKey, value, property, size }: PropertyPreviewProps<T>):
|
|
6
|
+
export declare function MapPropertyPreview<T extends Record<string, any> = Record<string, any>>({ propertyKey, value, property, size }: PropertyPreviewProps<T>): React.JSX.Element | null;
|
|
6
7
|
export declare function KeyValuePreview({ value }: {
|
|
7
8
|
value: any;
|
|
8
|
-
}):
|
|
9
|
+
}): React.JSX.Element | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ResolvedProperty } from "../../types";
|
|
2
|
+
import React from "react";
|
|
2
3
|
import { PreviewSize } from "../PropertyPreviewProps";
|
|
3
4
|
export interface SkeletonPropertyComponentProps {
|
|
4
5
|
property: ResolvedProperty;
|
|
@@ -8,7 +9,7 @@ export interface SkeletonPropertyComponentProps {
|
|
|
8
9
|
* @group Preview components
|
|
9
10
|
*/
|
|
10
11
|
export declare function SkeletonPropertyComponent({ property, size }: SkeletonPropertyComponentProps): any;
|
|
11
|
-
export declare function renderSkeletonImageThumbnail(size: PreviewSize, fill?: boolean):
|
|
12
|
-
export declare function renderSkeletonText(index?: number, width?: number):
|
|
13
|
-
export declare function renderSkeletonCaptionText(index?: number):
|
|
14
|
-
export declare function renderSkeletonIcon():
|
|
12
|
+
export declare function renderSkeletonImageThumbnail(size: PreviewSize, fill?: boolean): React.JSX.Element;
|
|
13
|
+
export declare function renderSkeletonText(index?: number, width?: number): React.JSX.Element;
|
|
14
|
+
export declare function renderSkeletonCaptionText(index?: number): React.JSX.Element;
|
|
15
|
+
export declare function renderSkeletonIcon(): React.JSX.Element;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare function FireCMSRoute(): React.JSX.Element | null;
|
|
@@ -142,6 +142,30 @@ export interface EntityCollection<M extends Record<string, any> = any, USER exte
|
|
|
142
142
|
* the side dialog of an entity.
|
|
143
143
|
*/
|
|
144
144
|
subcollections?: EntityCollection<any, any>[];
|
|
145
|
+
/**
|
|
146
|
+
* You can group subcollections and custom views into dropdown menus
|
|
147
|
+
* in the entity view tabs. Views listed in a group will be removed
|
|
148
|
+
* from the top-level tabs and shown under a single dropdown instead.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```tsx
|
|
152
|
+
* const productsCollection = buildCollection({
|
|
153
|
+
* id: "products",
|
|
154
|
+
* path: "products",
|
|
155
|
+
* name: "Products",
|
|
156
|
+
* properties: { ... },
|
|
157
|
+
* subcollections: [localesCollection, reviewsCollection],
|
|
158
|
+
* entityViews: [sampleView],
|
|
159
|
+
* viewGroups: [
|
|
160
|
+
* {
|
|
161
|
+
* name: "Related data",
|
|
162
|
+
* views: ["locales", "reviews", "sample_view"]
|
|
163
|
+
* }
|
|
164
|
+
* ]
|
|
165
|
+
* });
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
viewGroups?: ViewGroup[];
|
|
145
169
|
/**
|
|
146
170
|
* This interface defines all the callbacks that can be used when an entity
|
|
147
171
|
* is being created, updated or deleted.
|
|
@@ -361,6 +385,20 @@ export interface KanbanConfig<M extends Record<string, any> = any> {
|
|
|
361
385
|
*/
|
|
362
386
|
columnProperty: Extract<keyof M, string>;
|
|
363
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* You can group subcollections and custom views into dropdown menus in the entity view tabs.
|
|
390
|
+
* @group Collections
|
|
391
|
+
*/
|
|
392
|
+
export interface ViewGroup {
|
|
393
|
+
/**
|
|
394
|
+
* Name of the group
|
|
395
|
+
*/
|
|
396
|
+
name: string;
|
|
397
|
+
/**
|
|
398
|
+
* Array of subcollection paths/ids or custom view keys
|
|
399
|
+
*/
|
|
400
|
+
views: string[];
|
|
401
|
+
}
|
|
364
402
|
/**
|
|
365
403
|
* View mode for displaying a collection.
|
|
366
404
|
* @group Collections
|
|
@@ -125,6 +125,15 @@ export interface BaseProperty<T extends CMSType, CustomProps = any> {
|
|
|
125
125
|
* @see https://jsonlogic.com/ for JSON Logic syntax
|
|
126
126
|
*/
|
|
127
127
|
conditions?: PropertyConditions;
|
|
128
|
+
/**
|
|
129
|
+
* Set this property to true to provide the UX to explicitly set the value to `null`.
|
|
130
|
+
* Defaults to `false`.
|
|
131
|
+
*/
|
|
132
|
+
nullable?: boolean;
|
|
133
|
+
/**
|
|
134
|
+
* @deprecated Use `nullable` instead.
|
|
135
|
+
*/
|
|
136
|
+
clearable?: boolean;
|
|
128
137
|
}
|
|
129
138
|
/**
|
|
130
139
|
* @group Entity properties
|
|
@@ -473,10 +482,6 @@ export interface NumberProperty extends BaseProperty<number> {
|
|
|
473
482
|
* Rules for validating this property
|
|
474
483
|
*/
|
|
475
484
|
validation?: NumberPropertyValidationSchema;
|
|
476
|
-
/**
|
|
477
|
-
* Add an icon to clear the value and set it to `null`. Defaults to `false`
|
|
478
|
-
*/
|
|
479
|
-
clearable?: boolean;
|
|
480
485
|
}
|
|
481
486
|
/**
|
|
482
487
|
* @group Entity properties
|
|
@@ -569,10 +574,6 @@ export interface StringProperty extends BaseProperty<string> {
|
|
|
569
574
|
* Rules for validating this property
|
|
570
575
|
*/
|
|
571
576
|
validation?: StringPropertyValidationSchema;
|
|
572
|
-
/**
|
|
573
|
-
* Add an icon to clear the value and set it to `null`. Defaults to `false`
|
|
574
|
-
*/
|
|
575
|
-
clearable?: boolean;
|
|
576
577
|
/**
|
|
577
578
|
* You can use this property (a string) to behave as a reference to another
|
|
578
579
|
* collection. The stored value is the ID of the entity in the
|
|
@@ -412,6 +412,8 @@ export interface FireCMSTranslations {
|
|
|
412
412
|
cms_users: string;
|
|
413
413
|
roles_menu: string;
|
|
414
414
|
project_settings: string;
|
|
415
|
+
firestore_explorer: string;
|
|
416
|
+
explore_your_firestore_data: string;
|
|
415
417
|
build_admin_panel_in_minutes: string;
|
|
416
418
|
go_live_instantly: string;
|
|
417
419
|
create_production_ready_back_offices: string;
|
|
@@ -643,4 +645,25 @@ export interface FireCMSTranslations {
|
|
|
643
645
|
settings_appcheck_refresh_note: string;
|
|
644
646
|
settings_appcheck_updated: string;
|
|
645
647
|
settings_appcheck_error: string;
|
|
648
|
+
missing_firestore_security_rules: string;
|
|
649
|
+
firecms_cloud_requires_security_rule: string;
|
|
650
|
+
cannot_be_accessed_without_it: string;
|
|
651
|
+
required_security_rule: string;
|
|
652
|
+
fix_automatically: string;
|
|
653
|
+
open_firebase_rules: string;
|
|
654
|
+
security_rules_updated_successfully: string;
|
|
655
|
+
sec_rules_fixing: string;
|
|
656
|
+
sec_rules_fixed: string;
|
|
657
|
+
marketplace_managed_by_gcp: string;
|
|
658
|
+
marketplace_billing_note: string;
|
|
659
|
+
marketplace_manage_in_gcp_console: string;
|
|
660
|
+
marketplace_plan_changes_note: string;
|
|
661
|
+
marketplace_welcome_title: string;
|
|
662
|
+
marketplace_welcome_subtitle: string;
|
|
663
|
+
marketplace_select_or_create_project: string;
|
|
664
|
+
marketplace_link_project: string;
|
|
665
|
+
marketplace_linking: string;
|
|
666
|
+
marketplace_link_success: string;
|
|
667
|
+
marketplace_link_error: string;
|
|
668
|
+
marketplace_no_account_id: string;
|
|
646
669
|
}
|
package/dist/util/index.d.ts
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Returns a React.lazy component that is also preloaded immediately using
|
|
4
|
+
* requestIdleCallback or setTimeout.
|
|
5
|
+
* This ensures that chunks are split, but fetched in the background before they are actually needed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function lazyEager<T extends React.ComponentType<any>>(factory: () => Promise<any>, exportName?: string): React.LazyExoticComponent<T>;
|
package/dist/util/objects.d.ts
CHANGED
|
@@ -10,3 +10,4 @@ export declare function removeUndefined(value: any, removeEmptyStrings?: boolean
|
|
|
10
10
|
export declare function removeNulls(value: any): any;
|
|
11
11
|
export declare function isEmptyObject(obj: object): boolean;
|
|
12
12
|
export declare function removePropsIfExisting(source: any, comparison: any): any;
|
|
13
|
+
export declare function jsonStringifyReplacer(key: string, value: any): any;
|
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { AuthController, EntityCollection, PropertiesOrBuilders, PropertyConfig, PropertyOrBuilder, ResolvedProperties, ResolvedProperty } from "../types";
|
|
3
3
|
export declare function isReferenceProperty(authController: AuthController, propertyOrBuilder: PropertyOrBuilder, fields: Record<string, PropertyConfig>): boolean | null;
|
|
4
4
|
export declare function getIdIcon(size: "small" | "medium" | "large"): React.ReactNode;
|
|
5
|
-
export declare function getIconForWidget(widget: PropertyConfig | undefined, size: "small" | "medium" | "large"):
|
|
5
|
+
export declare function getIconForWidget(widget: PropertyConfig | undefined, size: "small" | "medium" | "large"): React.JSX.Element;
|
|
6
6
|
export declare function getIconForProperty(property: PropertyOrBuilder<any> | ResolvedProperty<any>, size?: "small" | "medium" | "large", fields?: Record<string, PropertyConfig>): React.ReactNode;
|
|
7
7
|
export declare function getColorForProperty(property: PropertyOrBuilder, fields: Record<string, PropertyConfig>): string;
|
|
8
8
|
/**
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@firecms/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.3.0-canary.2064433",
|
|
5
5
|
"description": "Awesome Firebase/Firestore-based headless open-source CMS",
|
|
6
6
|
"funding": {
|
|
7
7
|
"url": "https://github.com/sponsors/firecmsco"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "https://github.com/
|
|
13
|
+
"url": "https://github.com/FireCMSco/firecms.git",
|
|
14
14
|
"directory": "packages/firecms_core"
|
|
15
15
|
},
|
|
16
16
|
"main": "./dist/index.umd.js",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"@dnd-kit/core": "^6.3.1",
|
|
54
54
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
55
55
|
"@dnd-kit/sortable": "^10.0.0",
|
|
56
|
-
"@firecms/formex": "3.
|
|
57
|
-
"@firecms/ui": "3.
|
|
56
|
+
"@firecms/formex": "^3.3.0-canary.2064433",
|
|
57
|
+
"@firecms/ui": "^3.3.0-canary.2064433",
|
|
58
58
|
"@floating-ui/dom": "^1.7.4",
|
|
59
59
|
"@radix-ui/react-portal": "^1.1.10",
|
|
60
60
|
"@radix-ui/react-slot": "^1.2.4",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"dist",
|
|
137
137
|
"src"
|
|
138
138
|
],
|
|
139
|
-
"gitHead": "
|
|
139
|
+
"gitHead": "9ecf37abf793bd2f2daaaed6f517ee5ee19b01ae",
|
|
140
140
|
"publishConfig": {
|
|
141
141
|
"access": "public"
|
|
142
142
|
},
|
|
@@ -5,6 +5,7 @@ import { Badge, Checkbox, cls, IconButton, Menu, MenuItem, MoreVertIcon, Skeleto
|
|
|
5
5
|
import { useFireCMSContext, useLargeLayout } from "../../hooks";
|
|
6
6
|
import { getEntityFromCache } from "../../util/entity_cache";
|
|
7
7
|
import { getLocalChangesBackup } from "../../util";
|
|
8
|
+
import { getChanges } from "../../form/EntityForm";
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
*
|
|
@@ -81,13 +82,18 @@ export const EntityCollectionRowActions = function EntityCollectionRowActions({
|
|
|
81
82
|
const collapsedActions = actions.filter(a => a.collapsed || a.collapsed === undefined);
|
|
82
83
|
const uncollapsedActions = actions.filter(a => a.collapsed === false);
|
|
83
84
|
const enableLocalChangesBackup = collection ? getLocalChangesBackup(collection) : false;
|
|
84
|
-
const
|
|
85
|
+
const cachedData = enableLocalChangesBackup ? getEntityFromCache(fullPath + "/" + entity.id) : undefined;
|
|
86
|
+
const hasDraft = (() => {
|
|
87
|
+
if (!cachedData || typeof cachedData !== "object" || Object.keys(cachedData).length === 0) return false;
|
|
88
|
+
const realChanges = getChanges(cachedData as any, (entity?.values ?? {}) as any);
|
|
89
|
+
return Object.keys(realChanges).length > 0;
|
|
90
|
+
})();
|
|
85
91
|
const iconSize = largeLayout && (size === "m" || size === "l" || size == "xl") ? "medium" : "small";
|
|
86
92
|
|
|
87
93
|
const content = (
|
|
88
94
|
<div
|
|
89
95
|
className={cls(
|
|
90
|
-
"h-full flex items-center justify-center flex-col bg-surface-50 dark:bg-surface-900 bg-opacity-90 bg-surface-50/90 dark:bg-opacity-90 dark:bg-surface-900/90 z-10",
|
|
96
|
+
"h-full flex items-center justify-center flex-col bg-surface-50 dark:bg-surface-900 bg-opacity-90 bg-surface-50/90 dark:bg-opacity-90 dark:bg-surface-900/90 z-10 shrink-0",
|
|
91
97
|
frozen ? "sticky left-0" : ""
|
|
92
98
|
)}
|
|
93
99
|
onClick={useCallback((event: any) => {
|
|
@@ -101,7 +107,7 @@ export const EntityCollectionRowActions = function EntityCollectionRowActions({
|
|
|
101
107
|
}}>
|
|
102
108
|
|
|
103
109
|
{(hasActions || selectionEnabled) &&
|
|
104
|
-
<div className="w-
|
|
110
|
+
<div className="w-full flex justify-center">
|
|
105
111
|
|
|
106
112
|
{uncollapsedActions.map((action, index) => {
|
|
107
113
|
const isEditAction = action.key === "edit";
|
|
@@ -23,14 +23,14 @@ export function getTablePropertyColumnWidth(property: ResolvedProperty): number
|
|
|
23
23
|
if (property.dataType === "string") {
|
|
24
24
|
if (property.url) {
|
|
25
25
|
return 280;
|
|
26
|
+
} else if (property.markdown) {
|
|
27
|
+
return 300;
|
|
26
28
|
} else if (property.storage) {
|
|
27
29
|
return 160;
|
|
28
30
|
} else if (property.enumValues) {
|
|
29
31
|
return 200;
|
|
30
32
|
} else if (property.multiline) {
|
|
31
33
|
return 300;
|
|
32
|
-
} else if (property.markdown) {
|
|
33
|
-
return 300;
|
|
34
34
|
} else if (property.email) {
|
|
35
35
|
return 200;
|
|
36
36
|
} else {
|
|
@@ -904,11 +904,9 @@ export const EntityCollectionView = React.memo(
|
|
|
904
904
|
/>
|
|
905
905
|
|
|
906
906
|
{/* View content - only the view-specific content changes */}
|
|
907
|
-
{tableController.dataLoadingError
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
)}
|
|
911
|
-
{viewMode === "kanban" && enabledViews.includes("kanban") ? (
|
|
907
|
+
{tableController.dataLoadingError ? (
|
|
908
|
+
pluginErrorView ?? <CollectionDataErrorBanner error={tableController.dataLoadingError} />
|
|
909
|
+
) : viewMode === "kanban" && enabledViews.includes("kanban") ? (
|
|
912
910
|
<EntityCollectionBoardView
|
|
913
911
|
key={`kanban-view-${fullPath}-${selectedKanbanProperty}`}
|
|
914
912
|
collection={collection}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React, { useRef } from "react";
|
|
2
2
|
import { Highlight, themes } from "prism-react-renderer";
|
|
3
3
|
import { useModeController } from "../hooks";
|
|
4
|
+
import { jsonStringifyReplacer } from "../util/objects";
|
|
4
5
|
|
|
5
6
|
export function EntityJsonPreview({ values }: { values: object }) {
|
|
6
|
-
const code = JSON.stringify(values,
|
|
7
|
+
const code = JSON.stringify(values, jsonStringifyReplacer, "\t");
|
|
7
8
|
const { mode } = useModeController();
|
|
8
9
|
const preRef = useRef<HTMLPreElement>(null);
|
|
9
10
|
|
|
@@ -35,10 +35,10 @@ export class ErrorBoundary extends React.Component<PropsWithChildren<Record<stri
|
|
|
35
35
|
function FallbackView({ message }: { message?: string }) {
|
|
36
36
|
const { t } = useTranslation();
|
|
37
37
|
return (
|
|
38
|
-
<div className="h-full w-full bg-slate-100 flex items-center justify-center p-4">
|
|
38
|
+
<div className="h-full w-full bg-slate-100 dark:bg-surface-900 flex items-center justify-center p-4">
|
|
39
39
|
<div
|
|
40
|
-
className="flex flex-col items-center justify-center m-4 bg-white dark:bg-
|
|
41
|
-
<div className="flex items-center mb-4 text-red-500">
|
|
40
|
+
className="flex flex-col items-center justify-center m-4 bg-white dark:bg-surface-800 p-8 rounded-lg shadow-sm border border-gray-200 dark:border-surface-700">
|
|
41
|
+
<div className="flex items-center mb-4 text-red-500 dark:text-red-400">
|
|
42
42
|
<ErrorIcon/>
|
|
43
43
|
<div className="ml-4">{t("error")}</div>
|
|
44
44
|
</div>
|
|
@@ -126,6 +126,7 @@ export const VirtualTable = React.memo<VirtualTableProps<any>>(
|
|
|
126
126
|
AddColumnComponent,
|
|
127
127
|
initialScroll = 0,
|
|
128
128
|
onColumnsOrderChange,
|
|
129
|
+
headerIconSize,
|
|
129
130
|
}: VirtualTableProps<T>) {
|
|
130
131
|
|
|
131
132
|
const sortByProperty: string | undefined = sortBy ? sortBy[0] : undefined;
|
|
@@ -211,7 +212,7 @@ export const VirtualTable = React.memo<VirtualTableProps<any>>(
|
|
|
211
212
|
}, [tableRef]);
|
|
212
213
|
|
|
213
214
|
const [measureRef, bounds] = useMeasure({
|
|
214
|
-
debounce:
|
|
215
|
+
debounce: 0,
|
|
215
216
|
polyfill: ResizeObserver,
|
|
216
217
|
scroll: true,
|
|
217
218
|
// This is important for handling zooming in react-flow
|
|
@@ -369,8 +370,9 @@ export const VirtualTable = React.memo<VirtualTableProps<any>>(
|
|
|
369
370
|
setColumns(newColumns);
|
|
370
371
|
onColumnsOrderChange(newColumns);
|
|
371
372
|
} : undefined,
|
|
372
|
-
draggingColumnId
|
|
373
|
-
|
|
373
|
+
draggingColumnId,
|
|
374
|
+
headerIconSize,
|
|
375
|
+
}), [data, rowHeight, cellRenderer, columns, currentSort, onRowClick, customView, onColumnResizeInternal, onColumnResizeEndInternal, filterInput, onColumnSort, onFilterUpdateInternal, sortByProperty, hoverRow, createFilterField, rowClassName, endAdornment, AddColumnComponent, onColumnsOrderChange, draggingColumnId, headerIconSize]);
|
|
374
376
|
|
|
375
377
|
// Get sortable column keys (excluding frozen columns)
|
|
376
378
|
const sortableColumnKeys = columns
|
|
@@ -48,6 +48,7 @@ type VirtualTableHeaderProps<M extends Record<string, any>> = {
|
|
|
48
48
|
AdditionalHeaderWidget?: (props: { onHover: boolean }) => React.ReactNode;
|
|
49
49
|
isDragging?: boolean;
|
|
50
50
|
isDraggable?: boolean;
|
|
51
|
+
headerIconSize?: "small" | "smallest";
|
|
51
52
|
};
|
|
52
53
|
|
|
53
54
|
export const VirtualTableHeader = React.memo<VirtualTableHeaderProps<any>>(
|
|
@@ -64,7 +65,8 @@ export const VirtualTableHeader = React.memo<VirtualTableHeaderProps<any>>(
|
|
|
64
65
|
createFilterField,
|
|
65
66
|
AdditionalHeaderWidget,
|
|
66
67
|
isDragging,
|
|
67
|
-
isDraggable
|
|
68
|
+
isDraggable,
|
|
69
|
+
headerIconSize = "small",
|
|
68
70
|
}: VirtualTableHeaderProps<M>) {
|
|
69
71
|
|
|
70
72
|
const [onHover, setOnHover] = useState(false);
|
|
@@ -136,18 +138,17 @@ export const VirtualTableHeader = React.memo<VirtualTableHeaderProps<any>>(
|
|
|
136
138
|
<Badge color="secondary"
|
|
137
139
|
invisible={!sort}>
|
|
138
140
|
<IconButton
|
|
139
|
-
size={
|
|
141
|
+
size={headerIconSize}
|
|
140
142
|
className={onHover || openFilter ? "bg-white dark:bg-surface-950" : undefined}
|
|
141
143
|
onClick={() => {
|
|
142
144
|
onColumnSort(column.key as Extract<keyof M, string>);
|
|
143
145
|
}}
|
|
144
146
|
>
|
|
145
|
-
{
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
<ArrowUpwardIcon className={"rotate-180"} />}
|
|
147
|
+
<ArrowUpwardIcon size={headerIconSize}
|
|
148
|
+
className={cls(
|
|
149
|
+
"transition-transform duration-200",
|
|
150
|
+
sort === "desc" ? "rotate-180" : "rotate-0"
|
|
151
|
+
)} />
|
|
151
152
|
</IconButton>
|
|
152
153
|
</Badge>
|
|
153
154
|
}
|
|
@@ -22,7 +22,8 @@ const SortableColumnHeader = ({
|
|
|
22
22
|
onClickResizeColumn,
|
|
23
23
|
createFilterField,
|
|
24
24
|
isDragging,
|
|
25
|
-
isDraggable
|
|
25
|
+
isDraggable,
|
|
26
|
+
headerIconSize
|
|
26
27
|
}: {
|
|
27
28
|
column: VirtualTableColumn;
|
|
28
29
|
columnIndex: number;
|
|
@@ -37,6 +38,7 @@ const SortableColumnHeader = ({
|
|
|
37
38
|
createFilterField: any;
|
|
38
39
|
isDragging: boolean;
|
|
39
40
|
isDraggable: boolean;
|
|
41
|
+
headerIconSize?: "small" | "smallest";
|
|
40
42
|
}) => {
|
|
41
43
|
const [isPressing, setIsPressing] = useState(false);
|
|
42
44
|
|
|
@@ -103,7 +105,8 @@ const SortableColumnHeader = ({
|
|
|
103
105
|
createFilterField={createFilterField}
|
|
104
106
|
AdditionalHeaderWidget={column.AdditionalHeaderWidget}
|
|
105
107
|
isDragging={isDragging || isPressing}
|
|
106
|
-
isDraggable={isDraggable}
|
|
108
|
+
isDraggable={isDraggable}
|
|
109
|
+
headerIconSize={headerIconSize} />
|
|
107
110
|
</div>
|
|
108
111
|
);
|
|
109
112
|
};
|
|
@@ -123,7 +126,8 @@ export const VirtualTableHeaderRow = ({
|
|
|
123
126
|
data,
|
|
124
127
|
cellRenderer: CellRenderer,
|
|
125
128
|
rowHeight = 54,
|
|
126
|
-
draggingColumnId
|
|
129
|
+
draggingColumnId,
|
|
130
|
+
headerIconSize,
|
|
127
131
|
}: VirtualTableContextProps<any>) => {
|
|
128
132
|
|
|
129
133
|
const columnRefs = useMemo(() => columns.map(() => createRef<HTMLDivElement>()), [columns.length]);
|
|
@@ -234,6 +238,7 @@ export const VirtualTableHeaderRow = ({
|
|
|
234
238
|
createFilterField={createFilterField}
|
|
235
239
|
isDragging={isDragging}
|
|
236
240
|
isDraggable={isDraggable}
|
|
241
|
+
headerIconSize={headerIconSize}
|
|
237
242
|
/>
|
|
238
243
|
</ErrorBoundary>
|
|
239
244
|
);
|
|
@@ -168,6 +168,12 @@ export interface VirtualTableProps<T extends Record<string, any>> {
|
|
|
168
168
|
*/
|
|
169
169
|
onColumnsOrderChange?: (columns: VirtualTableColumn[]) => void;
|
|
170
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Size of icons in column headers (sort, filter).
|
|
173
|
+
* @default "small"
|
|
174
|
+
*/
|
|
175
|
+
headerIconSize?: "small" | "smallest";
|
|
176
|
+
|
|
171
177
|
}
|
|
172
178
|
|
|
173
179
|
export type CellRendererParams<T = any> = {
|
|
@@ -206,7 +212,7 @@ export interface VirtualTableColumn<CustomProps = any> {
|
|
|
206
212
|
/**
|
|
207
213
|
* Label displayed in the header
|
|
208
214
|
*/
|
|
209
|
-
title?:
|
|
215
|
+
title?: React.ReactNode;
|
|
210
216
|
|
|
211
217
|
/**
|
|
212
218
|
* This column is frozen to the left
|
|
@@ -83,7 +83,7 @@ export function DrawerNavigationGroup({
|
|
|
83
83
|
color={"secondary"}
|
|
84
84
|
className="font-medium flex-grow line-clamp-1"
|
|
85
85
|
>
|
|
86
|
-
{(group
|
|
86
|
+
{(group && group !== "__default__" ? group : t("views_group")).toUpperCase()}
|
|
87
87
|
</Typography>
|
|
88
88
|
{headerActions && (
|
|
89
89
|
<div onClick={(e) => e.stopPropagation()}>
|