@firecms/core 3.0.0-canary.14 → 3.0.0-canary.140
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 +5 -4
- 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 +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 +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 +2 -2
- 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 +3 -0
- 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 +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/FormikArrayContainer.d.ts +2 -1
- 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 → MultiSelectFieldBinding.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 +3 -5
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- 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 +8 -2
- package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +15817 -12453
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +20045 -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 +3 -3
- package/dist/types/collections.d.ts +39 -5
- package/dist/types/datasource.d.ts +55 -35
- package/dist/types/entities.d.ts +6 -1
- package/dist/types/entity_actions.d.ts +14 -0
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/fields.d.ts +47 -41
- package/dist/types/firecms.d.ts +4 -0
- 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 +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/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 +3 -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/property_utils.d.ts +1 -1
- 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 +19 -15
- package/src/components/CircularProgressCenter.tsx +1 -1
- 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 +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 +31 -16
- 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 +32 -30
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +19 -7
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +8 -11
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +138 -85
- 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 +43 -39
- package/src/components/EntityView.tsx +6 -6
- package/src/components/ErrorView.tsx +1 -1
- package/src/components/HomePage/DefaultHomePage.tsx +25 -19
- package/src/components/HomePage/NavigationCard.tsx +3 -3
- package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
- package/src/components/HomePage/NavigationGroup.tsx +1 -1
- 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 +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 +88 -21
- package/src/components/VirtualTable/VirtualTable.tsx +77 -46
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- 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 +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 +23 -12
- 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 +176 -0
- package/src/core/DefaultDrawer.tsx +183 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +716 -153
- package/src/core/EntitySidePanel.tsx +1 -2
- package/src/core/FireCMS.tsx +53 -52
- package/src/core/NavigationRoutes.tsx +7 -8
- package/src/core/SideDialogs.tsx +1 -0
- package/src/core/field_configs.tsx +7 -8
- package/src/core/index.tsx +3 -4
- package/src/form/PropertyFieldBinding.tsx +56 -22
- package/src/form/components/CustomIdField.tsx +4 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/FormikArrayContainer.tsx +4 -1
- 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 +29 -17
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +29 -25
- package/src/form/field_bindings/BlockFieldBinding.tsx +30 -27
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +50 -44
- package/src/form/field_bindings/MapFieldBinding.tsx +20 -19
- 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 +41 -30
- package/src/form/field_bindings/RepeatFieldBinding.tsx +32 -19
- 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 +2 -1
- package/src/hooks/data/save.ts +9 -4
- package/src/hooks/data/useDataSource.tsx +11 -3
- 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 +91 -31
- package/src/hooks/useProjectLog.tsx +32 -10
- 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 +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/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 +3 -3
- package/src/types/collections.ts +48 -7
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +65 -43
- package/src/types/entities.ts +11 -1
- package/src/types/entity_actions.tsx +16 -3
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/fields.tsx +51 -45
- package/src/types/firecms.tsx +5 -0
- 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 +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/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 +8 -2
- 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 +25 -28
- package/src/util/permissions.ts +1 -0
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +2 -2
- 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/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/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,77 +0,0 @@
|
|
|
1
|
-
import { Entity, EntityCollection, EntityStatus, EntityValues, FormContext, ResolvedEntityCollection } from "../types";
|
|
2
|
-
import { ValidationError } from "yup";
|
|
3
|
-
/**
|
|
4
|
-
* @group Components
|
|
5
|
-
*/
|
|
6
|
-
export interface EntityFormProps<M extends Record<string, any>> {
|
|
7
|
-
/**
|
|
8
|
-
* New or existing status
|
|
9
|
-
*/
|
|
10
|
-
status: EntityStatus;
|
|
11
|
-
/**
|
|
12
|
-
* Path of the collection this entity is located
|
|
13
|
-
*/
|
|
14
|
-
path: string;
|
|
15
|
-
/**
|
|
16
|
-
* The collection is used to build the fields of the form
|
|
17
|
-
*/
|
|
18
|
-
collection: EntityCollection<M>;
|
|
19
|
-
/**
|
|
20
|
-
* The updated entity is passed from the parent component when the underlying data
|
|
21
|
-
* has changed in the datasource
|
|
22
|
-
*/
|
|
23
|
-
entity?: Entity<M>;
|
|
24
|
-
/**
|
|
25
|
-
* The callback function called when Save is clicked and validation is correct
|
|
26
|
-
*/
|
|
27
|
-
onEntitySaveRequested: (props: EntityFormSaveParams<M>) => Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* The callback function called when discard is clicked
|
|
30
|
-
*/
|
|
31
|
-
onDiscard?: () => void;
|
|
32
|
-
/**
|
|
33
|
-
* The callback function when the form is dirty, so the values are different
|
|
34
|
-
* from the original ones
|
|
35
|
-
*/
|
|
36
|
-
onModified?: (dirty: boolean) => void;
|
|
37
|
-
/**
|
|
38
|
-
* The callback function when the form original values have been modified
|
|
39
|
-
*/
|
|
40
|
-
onValuesChanged?: (values?: EntityValues<M>) => void;
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
43
|
-
* @param id
|
|
44
|
-
*/
|
|
45
|
-
onIdChange?: (id: string) => void;
|
|
46
|
-
currentEntityId?: string;
|
|
47
|
-
onFormContextChange?: (formContext: FormContext<M>) => void;
|
|
48
|
-
hideId?: boolean;
|
|
49
|
-
autoSave?: boolean;
|
|
50
|
-
onIdUpdateError?: (error: any) => void;
|
|
51
|
-
}
|
|
52
|
-
export type EntityFormSaveParams<M extends Record<string, any>> = {
|
|
53
|
-
collection: ResolvedEntityCollection<M>;
|
|
54
|
-
path: string;
|
|
55
|
-
entityId: string | undefined;
|
|
56
|
-
values: EntityValues<M>;
|
|
57
|
-
previousValues?: EntityValues<M>;
|
|
58
|
-
closeAfterSave: boolean;
|
|
59
|
-
autoSave: boolean;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* This is the form used internally by the CMS
|
|
63
|
-
* @param status
|
|
64
|
-
* @param path
|
|
65
|
-
* @param collection
|
|
66
|
-
* @param entity
|
|
67
|
-
* @param onEntitySave
|
|
68
|
-
* @param onDiscard
|
|
69
|
-
* @param onModified
|
|
70
|
-
* @param onValuesChanged
|
|
71
|
-
* @constructor
|
|
72
|
-
* @group Components
|
|
73
|
-
*/
|
|
74
|
-
export declare const EntityForm: typeof EntityFormInternal;
|
|
75
|
-
declare function EntityFormInternal<M extends Record<string, any>>({ status, path, collection: inputCollection, entity, onEntitySaveRequested, onDiscard, onModified, onValuesChanged, onIdChange, onFormContextChange, hideId, autoSave, onIdUpdateError, }: EntityFormProps<M>): import("react/jsx-runtime").JSX.Element;
|
|
76
|
-
export declare function yupToFormErrors(yupError: ValidationError): Record<string, any>;
|
|
77
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FieldProps } from "../../types";
|
|
2
|
-
/**
|
|
3
|
-
* Render a markdown field that allows edition and seeing the preview.
|
|
4
|
-
*
|
|
5
|
-
* This is one of the internal components that get mapped natively inside forms
|
|
6
|
-
* and tables to the specified properties.
|
|
7
|
-
* @group Form fields
|
|
8
|
-
*/
|
|
9
|
-
export declare function MarkdownFieldBinding({ propertyKey, value, setValue, error, showError, disabled, autoFocus, touched, property, tableMode, includeDescription, context }: FieldProps<string>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function useLocaleConfig(locale?: string): void;
|
package/dist/types/appcheck.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from "firebase/app";
|
|
2
|
-
/**
|
|
3
|
-
* @group Firebase
|
|
4
|
-
*/
|
|
5
|
-
export interface AppCheck {
|
|
6
|
-
firebaseApp?: FirebaseApp;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* @group Firebase
|
|
10
|
-
*/
|
|
11
|
-
export interface AppCheckOptions {
|
|
12
|
-
providerKey: string;
|
|
13
|
-
useEnterpriseRecaptcha: boolean;
|
|
14
|
-
isTokenAutoRefreshEnabled?: boolean;
|
|
15
|
-
debugToken?: string;
|
|
16
|
-
forceRefresh?: boolean;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* @group Firebase
|
|
20
|
-
*/
|
|
21
|
-
export declare interface AppCheckTokenResult {
|
|
22
|
-
/**
|
|
23
|
-
* The token string in JWT format.
|
|
24
|
-
*/
|
|
25
|
-
readonly token: string;
|
|
26
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
|
|
3
|
-
import { Link as ReactLink } from "react-router-dom";
|
|
4
|
-
import { ErrorBoundary } from "../components";
|
|
5
|
-
import {
|
|
6
|
-
Avatar,
|
|
7
|
-
cn,
|
|
8
|
-
DarkModeIcon,
|
|
9
|
-
IconButton,
|
|
10
|
-
LightModeIcon,
|
|
11
|
-
LogoutIcon,
|
|
12
|
-
Menu,
|
|
13
|
-
MenuItem,
|
|
14
|
-
Skeleton,
|
|
15
|
-
Typography
|
|
16
|
-
} from "@firecms/ui";
|
|
17
|
-
import { useAuthController, useLargeLayout, useModeController, useNavigationController } from "../hooks";
|
|
18
|
-
import { User } from "../types";
|
|
19
|
-
|
|
20
|
-
export type FireCMSAppBarProps<ADDITIONAL_PROPS = object> = {
|
|
21
|
-
title: string;
|
|
22
|
-
/**
|
|
23
|
-
* A component that gets rendered on the upper side of the main toolbar
|
|
24
|
-
*/
|
|
25
|
-
endAdornment?: React.ReactNode;
|
|
26
|
-
|
|
27
|
-
startAdornment?: React.ReactNode;
|
|
28
|
-
|
|
29
|
-
dropDownActions?: React.ReactNode;
|
|
30
|
-
|
|
31
|
-
includeDrawer?: boolean;
|
|
32
|
-
|
|
33
|
-
drawerOpen: boolean;
|
|
34
|
-
|
|
35
|
-
className?: string;
|
|
36
|
-
|
|
37
|
-
style?: React.CSSProperties;
|
|
38
|
-
|
|
39
|
-
user?: User;
|
|
40
|
-
} & ADDITIONAL_PROPS;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* This component renders the main app bar of FireCMS.
|
|
44
|
-
* You will likely not need to use this component directly.
|
|
45
|
-
*
|
|
46
|
-
* @param title
|
|
47
|
-
* @param toolbarExtraWidget
|
|
48
|
-
* @param drawerOpen
|
|
49
|
-
* @constructor
|
|
50
|
-
*/
|
|
51
|
-
export const FireCMSAppBar = function FireCMSAppBar({
|
|
52
|
-
title,
|
|
53
|
-
endAdornment,
|
|
54
|
-
startAdornment,
|
|
55
|
-
drawerOpen,
|
|
56
|
-
dropDownActions,
|
|
57
|
-
includeDrawer,
|
|
58
|
-
className,
|
|
59
|
-
style,
|
|
60
|
-
user: userProp
|
|
61
|
-
}: FireCMSAppBarProps) {
|
|
62
|
-
const navigation = useNavigationController();
|
|
63
|
-
|
|
64
|
-
const authController = useAuthController();
|
|
65
|
-
const {
|
|
66
|
-
mode,
|
|
67
|
-
toggleMode
|
|
68
|
-
} = useModeController();
|
|
69
|
-
|
|
70
|
-
const largeLayout = useLargeLayout();
|
|
71
|
-
|
|
72
|
-
const user = userProp ?? authController.user;
|
|
73
|
-
|
|
74
|
-
let avatarComponent: JSX.Element;
|
|
75
|
-
if (user && user.photoURL) {
|
|
76
|
-
avatarComponent = <Avatar
|
|
77
|
-
src={user.photoURL}/>;
|
|
78
|
-
} else if (user === undefined || authController.initialLoading) {
|
|
79
|
-
avatarComponent = <div className={"p-1 flex justify-center"}>
|
|
80
|
-
<Skeleton className={"w-10 h-10 rounded-full"}/>
|
|
81
|
-
</div>;
|
|
82
|
-
} else {
|
|
83
|
-
const initial = user?.displayName
|
|
84
|
-
? user.displayName[0].toUpperCase()
|
|
85
|
-
: (user?.email ? user.email[0].toUpperCase() : "A");
|
|
86
|
-
avatarComponent = <Avatar>{initial}</Avatar>;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return (
|
|
90
|
-
<div
|
|
91
|
-
style={style}
|
|
92
|
-
className={cn("pr-2",
|
|
93
|
-
{
|
|
94
|
-
"ml-[17rem]": drawerOpen && largeLayout,
|
|
95
|
-
"ml-16": includeDrawer && !(drawerOpen && largeLayout) && !startAdornment,
|
|
96
|
-
"h-16": true,
|
|
97
|
-
"z-10": largeLayout,
|
|
98
|
-
"transition-all": true,
|
|
99
|
-
"ease-in": true,
|
|
100
|
-
"duration-75": true,
|
|
101
|
-
"w-full": !includeDrawer,
|
|
102
|
-
"w-[calc(100%-64px)]": includeDrawer && !(drawerOpen && largeLayout),
|
|
103
|
-
"w-[calc(100%-17rem)]": includeDrawer && (drawerOpen && largeLayout),
|
|
104
|
-
"duration-150": drawerOpen && largeLayout,
|
|
105
|
-
fixed: true,
|
|
106
|
-
},
|
|
107
|
-
className)}>
|
|
108
|
-
|
|
109
|
-
<div className="flex flex-row gap-2 px-4 h-full items-center">
|
|
110
|
-
|
|
111
|
-
{startAdornment}
|
|
112
|
-
|
|
113
|
-
{navigation && <div className="mr-8 hidden lg:block">
|
|
114
|
-
<ReactLink
|
|
115
|
-
className="visited:text-inherit visited:dark:text-inherit"
|
|
116
|
-
to={navigation?.basePath ?? "/"}
|
|
117
|
-
>
|
|
118
|
-
<Typography variant="subtitle1"
|
|
119
|
-
noWrap
|
|
120
|
-
className={"ml-2 !font-medium"}>
|
|
121
|
-
{title}
|
|
122
|
-
</Typography>
|
|
123
|
-
</ReactLink>
|
|
124
|
-
</div>}
|
|
125
|
-
|
|
126
|
-
<div className={"flex-grow"}/>
|
|
127
|
-
|
|
128
|
-
{endAdornment &&
|
|
129
|
-
<ErrorBoundary>
|
|
130
|
-
{endAdornment}
|
|
131
|
-
</ErrorBoundary>}
|
|
132
|
-
|
|
133
|
-
<IconButton
|
|
134
|
-
color="inherit"
|
|
135
|
-
aria-label="Open drawer"
|
|
136
|
-
onClick={toggleMode}
|
|
137
|
-
size="large">
|
|
138
|
-
{mode === "dark"
|
|
139
|
-
? <DarkModeIcon/>
|
|
140
|
-
: <LightModeIcon/>}
|
|
141
|
-
</IconButton>
|
|
142
|
-
|
|
143
|
-
<Menu trigger={avatarComponent}>
|
|
144
|
-
{user && <div className={"px-4 py-2 mb-2"}>
|
|
145
|
-
{user.displayName && <Typography variant={"body1"} color={"secondary"}>
|
|
146
|
-
{user.displayName}
|
|
147
|
-
</Typography>}
|
|
148
|
-
{user.email && <Typography variant={"body2"} color={"secondary"}>
|
|
149
|
-
{user.email}
|
|
150
|
-
</Typography>}
|
|
151
|
-
</div>}
|
|
152
|
-
|
|
153
|
-
{dropDownActions}
|
|
154
|
-
|
|
155
|
-
{!dropDownActions && <MenuItem onClick={authController.signOut}>
|
|
156
|
-
<LogoutIcon/>
|
|
157
|
-
Log Out
|
|
158
|
-
</MenuItem>}
|
|
159
|
-
|
|
160
|
-
</Menu>
|
|
161
|
-
|
|
162
|
-
</div>
|
|
163
|
-
</div>
|
|
164
|
-
);
|
|
165
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ContentPasteIcon, IconButton, Typography } from "@firecms/ui";
|
|
2
|
-
import { useCallback, useState } from "react";
|
|
3
|
-
|
|
4
|
-
export function PropertyIdCopyTooltipContent({ propertyId }: { propertyId: string }) {
|
|
5
|
-
|
|
6
|
-
const [copied, setCopied] = useState(false);
|
|
7
|
-
|
|
8
|
-
return (
|
|
9
|
-
<div className={"flex flex-row gap-2 items-center justify-center text-white"}>
|
|
10
|
-
<div>
|
|
11
|
-
<Typography variant={"caption"} className={"min-w-20 text-slate-400"}
|
|
12
|
-
color={"disabled"}>{copied ? "Copied" : "Property ID"}</Typography>
|
|
13
|
-
<Typography variant={"caption"} className={"text-white"}><code>{propertyId}</code></Typography>
|
|
14
|
-
</div>
|
|
15
|
-
{/* Copy to clipboard button*/}
|
|
16
|
-
<IconButton size={"small"}>
|
|
17
|
-
<ContentPasteIcon size={"smallest"}
|
|
18
|
-
className={"text-white"}
|
|
19
|
-
onClick={useCallback(() => {
|
|
20
|
-
navigator.clipboard.writeText(propertyId);
|
|
21
|
-
setCopied(true);
|
|
22
|
-
setTimeout(() => setCopied(false), 2000);
|
|
23
|
-
}, [propertyId])}
|
|
24
|
-
/>
|
|
25
|
-
</IconButton>
|
|
26
|
-
</div>
|
|
27
|
-
);
|
|
28
|
-
}
|
package/src/core/Drawer.tsx
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import React, { useCallback } from "react";
|
|
2
|
-
|
|
3
|
-
import { useLargeLayout, useNavigationController } from "../hooks";
|
|
4
|
-
|
|
5
|
-
import { NavLink, useNavigate } from "react-router-dom";
|
|
6
|
-
import { CMSAnalyticsEvent, TopNavigationEntry, TopNavigationResult } from "../types";
|
|
7
|
-
import { IconForView } from "../util";
|
|
8
|
-
import { cn, IconButton, Menu, MenuItem, MoreVertIcon, Tooltip, Typography } from "@firecms/ui";
|
|
9
|
-
import { useAnalyticsController } from "../hooks/useAnalyticsController";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Props used in case you need to override the default drawer
|
|
13
|
-
* @group Core
|
|
14
|
-
*/
|
|
15
|
-
export type DrawerProps<T = {}> = T & {
|
|
16
|
-
hovered: boolean,
|
|
17
|
-
drawerOpen: boolean,
|
|
18
|
-
closeDrawer: () => any,
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Default drawer used in the CMS
|
|
23
|
-
* @group Core
|
|
24
|
-
*/
|
|
25
|
-
export function Drawer({
|
|
26
|
-
hovered,
|
|
27
|
-
drawerOpen,
|
|
28
|
-
closeDrawer
|
|
29
|
-
}: DrawerProps) {
|
|
30
|
-
|
|
31
|
-
const analyticsController = useAnalyticsController();
|
|
32
|
-
const navigation = useNavigationController();
|
|
33
|
-
|
|
34
|
-
const tooltipsOpen = hovered && !drawerOpen;
|
|
35
|
-
const largeLayout = useLargeLayout();
|
|
36
|
-
const navigate = useNavigate();
|
|
37
|
-
|
|
38
|
-
const [adminMenuOpen, setAdminMenuOpen] = React.useState(false);
|
|
39
|
-
|
|
40
|
-
if (!navigation.topLevelNavigation)
|
|
41
|
-
throw Error("Navigation not ready in Drawer");
|
|
42
|
-
|
|
43
|
-
const {
|
|
44
|
-
navigationEntries,
|
|
45
|
-
groups
|
|
46
|
-
}: TopNavigationResult = navigation.topLevelNavigation;
|
|
47
|
-
|
|
48
|
-
const adminViews = navigationEntries.filter(e => e.type === "admin") ?? [];
|
|
49
|
-
const groupsWithoutAdmin = groups.filter(g => g !== "Admin");
|
|
50
|
-
|
|
51
|
-
const buildGroupHeader = useCallback((group?: string) => {
|
|
52
|
-
if (!drawerOpen) return <div className="h-12 w-full"/>;
|
|
53
|
-
return <div
|
|
54
|
-
className="pt-8 pl-6 pr-8 pb-2 flex flex-row items-center">
|
|
55
|
-
<Typography variant={"caption"}
|
|
56
|
-
color={"secondary"}
|
|
57
|
-
className="font-medium flex-grow line-clamp-1">
|
|
58
|
-
{group ? group.toUpperCase() : "Views".toUpperCase()}
|
|
59
|
-
</Typography>
|
|
60
|
-
|
|
61
|
-
</div>;
|
|
62
|
-
}, [drawerOpen]);
|
|
63
|
-
|
|
64
|
-
const onClick = (view: TopNavigationEntry) => {
|
|
65
|
-
const eventName: CMSAnalyticsEvent = view.type === "collection"
|
|
66
|
-
? "drawer_navigate_to_collection"
|
|
67
|
-
: (view.type === "view" ? "drawer_navigate_to_view" : "unmapped_event");
|
|
68
|
-
analyticsController.onAnalyticsEvent?.(eventName, { url: view.url });
|
|
69
|
-
if (!largeLayout)
|
|
70
|
-
closeDrawer();
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return (
|
|
74
|
-
<>
|
|
75
|
-
|
|
76
|
-
<div className={"flex-grow overflow-scroll no-scrollbar"}>
|
|
77
|
-
|
|
78
|
-
{groupsWithoutAdmin.map((group) => (
|
|
79
|
-
<React.Fragment
|
|
80
|
-
key={`drawer_group_${group}`}>
|
|
81
|
-
{buildGroupHeader(group)}
|
|
82
|
-
{Object.values(navigationEntries)
|
|
83
|
-
.filter(e => e.group === group)
|
|
84
|
-
.map((view, index) =>
|
|
85
|
-
<DrawerNavigationItem
|
|
86
|
-
key={`navigation_${index}`}
|
|
87
|
-
icon={<IconForView collectionOrView={view.collection ?? view.view}/>}
|
|
88
|
-
tooltipsOpen={tooltipsOpen}
|
|
89
|
-
drawerOpen={drawerOpen}
|
|
90
|
-
onClick={() => onClick(view)}
|
|
91
|
-
url={view.url}
|
|
92
|
-
name={view.name}/>)}
|
|
93
|
-
</React.Fragment>
|
|
94
|
-
))}
|
|
95
|
-
|
|
96
|
-
</div>
|
|
97
|
-
|
|
98
|
-
{adminViews.length > 0 && <Menu
|
|
99
|
-
open={adminMenuOpen}
|
|
100
|
-
onOpenChange={setAdminMenuOpen}
|
|
101
|
-
trigger={
|
|
102
|
-
<IconButton
|
|
103
|
-
shape={"square"}
|
|
104
|
-
className={"m-4 text-gray-900 dark:text-white w-fit"}>
|
|
105
|
-
<Tooltip title={"Admin"}
|
|
106
|
-
open={tooltipsOpen}
|
|
107
|
-
side={"right"} sideOffset={28}>
|
|
108
|
-
<MoreVertIcon/>
|
|
109
|
-
</Tooltip>
|
|
110
|
-
{drawerOpen && <div
|
|
111
|
-
className={cn(
|
|
112
|
-
drawerOpen ? "opacity-100" : "opacity-0 hidden",
|
|
113
|
-
"mx-4 font-inherit text-inherit"
|
|
114
|
-
)}>
|
|
115
|
-
ADMIN
|
|
116
|
-
</div>}
|
|
117
|
-
</IconButton>}
|
|
118
|
-
>
|
|
119
|
-
{adminViews.map((entry, index) =>
|
|
120
|
-
<MenuItem
|
|
121
|
-
onClick={(event) => {
|
|
122
|
-
event.preventDefault();
|
|
123
|
-
navigate(entry.path);
|
|
124
|
-
}}
|
|
125
|
-
key={`navigation_${index}`}>
|
|
126
|
-
{<IconForView collectionOrView={entry.view}/>}
|
|
127
|
-
{entry.name}
|
|
128
|
-
</MenuItem>)}
|
|
129
|
-
|
|
130
|
-
</Menu>}
|
|
131
|
-
</>
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export function DrawerNavigationItem({
|
|
136
|
-
name,
|
|
137
|
-
icon,
|
|
138
|
-
drawerOpen,
|
|
139
|
-
tooltipsOpen,
|
|
140
|
-
url,
|
|
141
|
-
onClick
|
|
142
|
-
}: {
|
|
143
|
-
icon: React.ReactElement,
|
|
144
|
-
name: string,
|
|
145
|
-
tooltipsOpen: boolean,
|
|
146
|
-
drawerOpen: boolean,
|
|
147
|
-
url: string,
|
|
148
|
-
onClick?: () => void,
|
|
149
|
-
}) {
|
|
150
|
-
|
|
151
|
-
const iconWrap = <div
|
|
152
|
-
className={"text-gray-600 dark:text-gray-500"}>
|
|
153
|
-
{icon}
|
|
154
|
-
</div>;
|
|
155
|
-
|
|
156
|
-
const listItem = <NavLink
|
|
157
|
-
onClick={onClick}
|
|
158
|
-
style={{
|
|
159
|
-
width: !drawerOpen ? "72px" : "280px",
|
|
160
|
-
transition: drawerOpen ? "width 150ms ease-in" : undefined
|
|
161
|
-
}}
|
|
162
|
-
className={({ isActive }: any) => cn("rounded-r-xl truncate",
|
|
163
|
-
"hover:bg-slate-300 hover:bg-opacity-75 dark:hover:bg-gray-700 dark:hover:bg-opacity-75 text-gray-800 dark:text-gray-200 hover:text-gray-900 hover:dark:text-white",
|
|
164
|
-
"flex flex-row items-center mr-8",
|
|
165
|
-
// "transition-all ease-in-out delay-100 duration-300",
|
|
166
|
-
// drawerOpen ? "w-full" : "w-18",
|
|
167
|
-
drawerOpen ? "pl-8 h-12" : "pl-6 h-11",
|
|
168
|
-
"font-medium text-sm",
|
|
169
|
-
isActive ? "bg-slate-200 bg-opacity-75 dark:bg-gray-800" : ""
|
|
170
|
-
)}
|
|
171
|
-
to={url}
|
|
172
|
-
>
|
|
173
|
-
|
|
174
|
-
{iconWrap}
|
|
175
|
-
|
|
176
|
-
<div
|
|
177
|
-
className={cn(
|
|
178
|
-
drawerOpen ? "opacity-100" : "opacity-0 hidden",
|
|
179
|
-
"ml-4 font-inherit text-inherit"
|
|
180
|
-
)}>
|
|
181
|
-
{name.toUpperCase()}
|
|
182
|
-
</div>
|
|
183
|
-
</NavLink>;
|
|
184
|
-
|
|
185
|
-
return <Tooltip
|
|
186
|
-
open={drawerOpen ? false : tooltipsOpen}
|
|
187
|
-
side="right"
|
|
188
|
-
title={name}>
|
|
189
|
-
{listItem}
|
|
190
|
-
</Tooltip>;
|
|
191
|
-
}
|