@firecms/core 3.0.0-canary.18 → 3.0.0-canary.180
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 +23 -6
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -13
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
- 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/index.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +16 -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 +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/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 +13 -3
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +28 -12
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
- package/dist/components/common/index.d.ts +2 -1
- 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 +3 -1
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +4 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- 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 +41 -9
- package/dist/core/FireCMS.d.ts +2 -2
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +2 -3
- package/dist/core/index.d.ts +4 -4
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -4
- package/dist/form/components/index.d.ts +1 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -5
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/index.d.ts +3 -5
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +4 -5
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +4 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +3 -5
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useProjectLog.d.ts +8 -2
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +21537 -14243
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +23973 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -16
- package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
- 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/preview/util.d.ts +3 -3
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/FireCMSRoute.d.ts +1 -0
- package/dist/routes/HomePageRoute.d.ts +3 -0
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +71 -22
- package/dist/types/datasource.d.ts +52 -36
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +7 -2
- package/dist/types/entity_actions.d.ts +28 -4
- package/dist/types/entity_callbacks.d.ts +16 -16
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +66 -42
- package/dist/types/firecms.d.ts +6 -2
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +31 -14
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +23 -12
- package/dist/types/properties.d.ts +51 -23
- package/dist/types/property_config.d.ts +0 -2
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/side_entity_controller.d.ts +1 -1
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +1 -0
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/entities.d.ts +3 -3
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +23 -0
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -98
- package/dist/util/icons.d.ts +6 -3
- package/dist/util/index.d.ts +2 -0
- package/dist/util/navigation_from_path.d.ts +5 -1
- package/dist/util/navigation_utils.d.ts +14 -3
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +3 -3
- package/dist/util/resolutions.d.ts +30 -16
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/package.json +61 -48
- 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 +126 -40
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
- package/src/components/DeleteEntityDialog.tsx +10 -19
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +54 -37
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +31 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +84 -77
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +206 -112
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +4 -2
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityPreview.tsx +62 -52
- package/src/components/EntityView.tsx +10 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/HomePage/DefaultHomePage.tsx +26 -19
- package/src/components/HomePage/FavouritesView.tsx +6 -11
- package/src/components/HomePage/NavigationCard.tsx +3 -3
- package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +19 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +27 -12
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
- package/src/components/UnsavedChangesDialog.tsx +42 -0
- package/src/components/VirtualTable/VirtualTable.tsx +96 -48
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +33 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +3 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +33 -40
- package/src/components/common/index.ts +2 -1
- 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 +24 -3
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +4 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +201 -0
- package/src/core/DefaultDrawer.tsx +185 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +1001 -213
- package/src/core/EntitySidePanel.tsx +80 -17
- package/src/core/FireCMS.tsx +56 -49
- package/src/core/FireCMSRouter.tsx +17 -0
- package/src/core/NavigationRoutes.tsx +20 -34
- package/src/core/SideDialogs.tsx +12 -6
- package/src/core/field_configs.tsx +11 -12
- package/src/core/index.tsx +6 -5
- package/src/form/PropertyFieldBinding.tsx +85 -44
- package/src/form/components/CustomIdField.tsx +6 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/LabelWithIcon.tsx +30 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +22 -12
- package/src/form/components/StorageUploadProgress.tsx +3 -4
- package/src/form/components/index.tsx +1 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +31 -17
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -35
- package/src/form/field_bindings/BlockFieldBinding.tsx +56 -34
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
- package/src/form/field_bindings/MapFieldBinding.tsx +72 -53
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +37 -47
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/index.tsx +4 -9
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +1 -17
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +13 -9
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +11 -5
- package/src/hooks/useBuildNavigationController.tsx +150 -50
- package/src/hooks/useFireCMSContext.tsx +5 -5
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useProjectLog.tsx +32 -10
- package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
- package/src/hooks/useValidateAuthenticator.tsx +17 -37
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +72 -82
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +230 -70
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +13 -20
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +25 -36
- package/src/preview/components/ReferencePreview.tsx +22 -33
- 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 +9 -9
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +230 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +87 -27
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +61 -43
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +12 -2
- package/src/types/entity_actions.tsx +32 -7
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +72 -46
- package/src/types/firecms.tsx +7 -2
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +37 -18
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +25 -14
- package/src/types/properties.ts +59 -24
- package/src/types/property_config.tsx +0 -2
- package/src/types/side_dialogs_controller.tsx +13 -0
- package/src/types/side_entity_controller.tsx +1 -1
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +2 -0
- package/src/util/builders.ts +10 -8
- package/src/util/entities.ts +9 -6
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +196 -0
- package/src/util/enums.ts +1 -1
- package/src/util/icon_list.ts +16 -10
- package/src/util/icon_synonyms.ts +3 -100
- package/src/util/icons.tsx +17 -7
- package/src/util/index.ts +2 -0
- package/src/util/join_collections.ts +3 -0
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +10 -2
- package/src/util/navigation_utils.ts +59 -7
- package/src/util/objects.ts +45 -28
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +11 -4
- package/src/util/references.ts +11 -2
- 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 +34 -8
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -55
- package/dist/core/SideEntityView.d.ts +0 -7
- package/dist/form/EntityForm.d.ts +0 -77
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/FireCMSAppBar.tsx +0 -165
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
- package/src/core/Drawer.tsx +0 -191
- package/src/core/Scaffold.tsx +0 -281
- package/src/core/SideEntityView.tsx +0 -38
- package/src/form/EntityForm.tsx +0 -728
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo } from "react";
|
|
2
2
|
|
|
3
3
|
import { EntitySidePanelProps } from "../types";
|
|
4
|
-
import { useNavigationController } from "../hooks";
|
|
4
|
+
import { useNavigationController, useSideEntityController } from "../hooks";
|
|
5
5
|
|
|
6
6
|
import { ErrorBoundary } from "../components";
|
|
7
|
-
import { EntityEditView } from "./EntityEditView";
|
|
7
|
+
import { EntityEditView, OnUpdateParams } from "./EntityEditView";
|
|
8
8
|
import { useSideDialogContext } from "./SideDialogs";
|
|
9
|
+
import { CloseIcon, IconButton, OpenInFullIcon } from "@firecms/ui";
|
|
10
|
+
import { useLocation, useNavigate } from "react-router-dom";
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* This is the component in charge of rendering the side dialog used
|
|
@@ -20,30 +22,58 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
20
22
|
const {
|
|
21
23
|
blocked,
|
|
22
24
|
setBlocked,
|
|
23
|
-
setBlockedNavigationMessage
|
|
25
|
+
setBlockedNavigationMessage,
|
|
26
|
+
close
|
|
24
27
|
} = useSideDialogContext();
|
|
25
28
|
|
|
29
|
+
const navigate = useNavigate();
|
|
30
|
+
const location = useLocation();
|
|
31
|
+
|
|
32
|
+
const sideEntityController = useSideEntityController();
|
|
26
33
|
const navigationController = useNavigationController();
|
|
27
34
|
|
|
35
|
+
const onClose = () => {
|
|
36
|
+
if (props.onClose) {
|
|
37
|
+
props.onClose();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
setBlocked(false);
|
|
41
|
+
close(true);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const onUpdate = (params: OnUpdateParams) => {
|
|
45
|
+
if (props.onUpdate) {
|
|
46
|
+
props.onUpdate(params);
|
|
47
|
+
}
|
|
48
|
+
if (params.status !== "existing") {
|
|
49
|
+
sideEntityController.replace({
|
|
50
|
+
path: params.path,
|
|
51
|
+
entityId: params.entityId,
|
|
52
|
+
selectedTab: params.selectedTab,
|
|
53
|
+
updateUrl: true,
|
|
54
|
+
collection: params.collection,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
|
|
28
60
|
const parentCollectionIds = useMemo(() => {
|
|
29
61
|
return navigationController.getParentCollectionIds(props.path);
|
|
30
62
|
}, [navigationController, props.path]);
|
|
31
63
|
|
|
32
64
|
const collection = useMemo(() => {
|
|
33
|
-
if (
|
|
34
|
-
|
|
65
|
+
if (props.collection) {
|
|
66
|
+
return props.collection;
|
|
67
|
+
}
|
|
35
68
|
|
|
36
|
-
const registryCollection = navigationController.getCollection(props.path
|
|
69
|
+
const registryCollection = navigationController.getCollection(props.path);
|
|
37
70
|
if (registryCollection) {
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
if (!usedCollection) {
|
|
41
|
-
console.error("ERROR: No collection found in path `", props.path, "`. Entity id: ", props.entityId);
|
|
42
|
-
throw Error("ERROR: No collection found in path `" + props.path + "`. Make sure you have defined a collection for this path in the root navigation.");
|
|
71
|
+
return registryCollection;
|
|
43
72
|
}
|
|
44
73
|
|
|
45
|
-
|
|
46
|
-
|
|
74
|
+
console.error("ERROR: No collection found in path `", props.path, "`. Entity id: ", props.entityId);
|
|
75
|
+
throw Error("ERROR: No collection found in path `" + props.path + "`. Make sure you have defined a collection for this path in the root navigation.");
|
|
76
|
+
}, [navigationController, props.collection]);
|
|
47
77
|
|
|
48
78
|
useEffect(() => {
|
|
49
79
|
function beforeunload(e: any) {
|
|
@@ -63,11 +93,11 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
63
93
|
|
|
64
94
|
}, [blocked, collection]);
|
|
65
95
|
|
|
66
|
-
const
|
|
67
|
-
setBlocked(modified);
|
|
96
|
+
const onValuesModified = useCallback((modified: boolean) => {
|
|
68
97
|
setBlockedNavigationMessage(modified
|
|
69
98
|
? <> You have unsaved changes in this <b>{collection?.singularName ?? collection?.name}</b>.</>
|
|
70
99
|
: undefined)
|
|
100
|
+
setBlocked(modified);
|
|
71
101
|
}, [collection?.name, setBlocked, setBlockedNavigationMessage]);
|
|
72
102
|
|
|
73
103
|
if (!props || !collection) {
|
|
@@ -79,10 +109,43 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
79
109
|
<ErrorBoundary>
|
|
80
110
|
<EntityEditView
|
|
81
111
|
{...props}
|
|
82
|
-
|
|
112
|
+
layout={"side_panel"}
|
|
83
113
|
collection={collection}
|
|
84
114
|
parentCollectionIds={parentCollectionIds}
|
|
85
|
-
|
|
115
|
+
onValuesModified={onValuesModified}
|
|
116
|
+
onClose={onClose}
|
|
117
|
+
onSaved={onUpdate}
|
|
118
|
+
barActions={<>
|
|
119
|
+
<IconButton
|
|
120
|
+
className="self-center"
|
|
121
|
+
onClick={onClose}>
|
|
122
|
+
<CloseIcon size={"small"}/>
|
|
123
|
+
</IconButton>
|
|
124
|
+
<IconButton
|
|
125
|
+
className="self-center"
|
|
126
|
+
onClick={() => {
|
|
127
|
+
if (props.entityId)
|
|
128
|
+
navigate(location.pathname);
|
|
129
|
+
else
|
|
130
|
+
navigate(location.pathname + "#new");
|
|
131
|
+
}}>
|
|
132
|
+
<OpenInFullIcon size={"small"}/>
|
|
133
|
+
</IconButton>
|
|
134
|
+
</>}
|
|
135
|
+
onTabChange={({
|
|
136
|
+
path,
|
|
137
|
+
entityId,
|
|
138
|
+
selectedTab,
|
|
139
|
+
collection
|
|
140
|
+
}) => {
|
|
141
|
+
sideEntityController.replace({
|
|
142
|
+
path,
|
|
143
|
+
entityId,
|
|
144
|
+
selectedTab,
|
|
145
|
+
updateUrl: true,
|
|
146
|
+
collection
|
|
147
|
+
});
|
|
148
|
+
}}
|
|
86
149
|
/>
|
|
87
150
|
</ErrorBoundary>
|
|
88
151
|
|
package/src/core/FireCMS.tsx
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
3
|
+
import React, { useMemo } from "react";
|
|
4
|
+
import { CenteredView, Typography } from "@firecms/ui";
|
|
5
|
+
import { CustomizationController, EntityCollection, FireCMSContext, FireCMSPlugin, FireCMSProps, User } from "../types";
|
|
6
|
+
import { AuthControllerContext } from "../contexts";
|
|
5
7
|
import { useBuildSideEntityController } from "../internal/useBuildSideEntityController";
|
|
6
|
-
import { useCustomizationController, useFireCMSContext
|
|
8
|
+
import { useCustomizationController, useFireCMSContext } from "../hooks";
|
|
7
9
|
import { useBuildSideDialogsController } from "../internal/useBuildSideDialogsController";
|
|
8
10
|
import { ErrorView } from "../components";
|
|
9
11
|
import { StorageSourceContext } from "../contexts/StorageSourceContext";
|
|
@@ -12,14 +14,12 @@ import { DataSourceContext } from "../contexts/DataSourceContext";
|
|
|
12
14
|
import { SideEntityControllerContext } from "../contexts/SideEntityControllerContext";
|
|
13
15
|
import { NavigationContext } from "../contexts/NavigationContext";
|
|
14
16
|
import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
|
|
15
|
-
import { useLocaleConfig } from "../internal/useLocaleConfig";
|
|
16
|
-
import { CenteredView, Typography } from "@firecms/ui";
|
|
17
17
|
import { DialogsProvider } from "../contexts/DialogsProvider";
|
|
18
18
|
import { useBuildDataSource } from "../internal/useBuildDataSource";
|
|
19
|
-
import { useBuildCustomizationController } from "../internal/useBuildCustomizationController";
|
|
20
19
|
import { CustomizationControllerContext } from "../contexts/CustomizationControllerContext";
|
|
21
20
|
import { AnalyticsContext } from "../contexts/AnalyticsContext";
|
|
22
21
|
import { useProjectLog } from "../hooks/useProjectLog";
|
|
22
|
+
import { BreadcrumbsProvider } from "../contexts/BreacrumbsContext";
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* If you are using independent components of the CMS
|
|
@@ -30,12 +30,11 @@ import { useProjectLog } from "../hooks/useProjectLog";
|
|
|
30
30
|
*
|
|
31
31
|
* You only need to use this component if you are building a custom app.
|
|
32
32
|
*
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
* @group Core
|
|
35
35
|
*/
|
|
36
|
-
export function FireCMS<
|
|
36
|
+
export function FireCMS<USER extends User, EC extends EntityCollection>(props: FireCMSProps<USER, EC>) {
|
|
37
37
|
|
|
38
|
-
const modeController = useModeController();
|
|
39
38
|
const {
|
|
40
39
|
children,
|
|
41
40
|
entityLinkBuilder,
|
|
@@ -51,10 +50,9 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
|
|
|
51
50
|
entityViews,
|
|
52
51
|
components,
|
|
53
52
|
navigationController,
|
|
53
|
+
apiKey
|
|
54
54
|
} = props;
|
|
55
55
|
|
|
56
|
-
useLocaleConfig(locale);
|
|
57
|
-
|
|
58
56
|
/**
|
|
59
57
|
* Controller in charge of fetching and persisting data
|
|
60
58
|
*/
|
|
@@ -71,7 +69,7 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
|
|
|
71
69
|
|
|
72
70
|
const loading = authController.initialLoading || navigationController.loading || pluginsLoading;
|
|
73
71
|
|
|
74
|
-
const customizationController =
|
|
72
|
+
const customizationController: CustomizationController = {
|
|
75
73
|
dateTimeFormat,
|
|
76
74
|
locale,
|
|
77
75
|
entityLinkBuilder,
|
|
@@ -79,13 +77,22 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
|
|
|
79
77
|
entityViews: entityViews ?? [],
|
|
80
78
|
propertyConfigs: propertyConfigs ?? {},
|
|
81
79
|
components
|
|
82
|
-
}
|
|
80
|
+
};
|
|
83
81
|
|
|
84
82
|
const analyticsController = useMemo(() => ({
|
|
85
83
|
onAnalyticsEvent
|
|
86
84
|
}), []);
|
|
87
85
|
|
|
88
|
-
const accessResponse = useProjectLog(
|
|
86
|
+
const accessResponse = useProjectLog({
|
|
87
|
+
apiKey,
|
|
88
|
+
authController,
|
|
89
|
+
dataSourceDelegate,
|
|
90
|
+
plugins
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
if (accessResponse?.message) {
|
|
94
|
+
console.warn(accessResponse.message);
|
|
95
|
+
}
|
|
89
96
|
|
|
90
97
|
if (navigationController.navigationLoadingError) {
|
|
91
98
|
return (
|
|
@@ -109,54 +116,54 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
|
|
|
109
116
|
|
|
110
117
|
if (accessResponse?.blocked) {
|
|
111
118
|
return (
|
|
112
|
-
<CenteredView maxWidth={"md"} fullScreen={true}>
|
|
113
|
-
<Typography variant={"h4"}>
|
|
114
|
-
|
|
119
|
+
<CenteredView maxWidth={"md"} fullScreen={true} className={"flex flex-col gap-2"}>
|
|
120
|
+
<Typography variant={"h4"} gutterBottom>
|
|
121
|
+
License needed
|
|
115
122
|
</Typography>
|
|
116
123
|
<Typography>
|
|
117
|
-
|
|
124
|
+
You need a valid license to use FireCMS PRO. Please reach out at <a
|
|
118
125
|
href={"mailto:hello@firecms.co"}>hello@firecms.co</a> for more information.
|
|
119
126
|
</Typography>
|
|
120
127
|
{accessResponse?.message &&
|
|
121
|
-
<Typography>
|
|
128
|
+
<Typography>{accessResponse?.message}</Typography>}
|
|
122
129
|
</CenteredView>
|
|
123
130
|
);
|
|
124
131
|
}
|
|
125
132
|
|
|
126
133
|
return (
|
|
127
|
-
<
|
|
128
|
-
<
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
<
|
|
134
|
+
<AnalyticsContext.Provider value={analyticsController}>
|
|
135
|
+
<CustomizationControllerContext.Provider value={customizationController}>
|
|
136
|
+
<UserConfigurationPersistenceContext.Provider
|
|
137
|
+
value={userConfigPersistence}>
|
|
138
|
+
<StorageSourceContext.Provider
|
|
139
|
+
value={storageSource}>
|
|
140
|
+
<DataSourceContext.Provider
|
|
141
|
+
value={dataSource}>
|
|
142
|
+
<AuthControllerContext.Provider
|
|
143
|
+
value={authController}>
|
|
144
|
+
<SideDialogsControllerContext.Provider
|
|
145
|
+
value={sideDialogsController}>
|
|
146
|
+
<SideEntityControllerContext.Provider
|
|
147
|
+
value={sideEntityController}>
|
|
148
|
+
<NavigationContext.Provider
|
|
149
|
+
value={navigationController}>
|
|
150
|
+
<DialogsProvider>
|
|
151
|
+
<BreadcrumbsProvider>
|
|
145
152
|
<FireCMSInternal
|
|
146
153
|
loading={loading}>
|
|
147
154
|
{children}
|
|
148
155
|
</FireCMSInternal>
|
|
149
|
-
</
|
|
150
|
-
</
|
|
151
|
-
</
|
|
152
|
-
</
|
|
153
|
-
</
|
|
154
|
-
</
|
|
155
|
-
</
|
|
156
|
-
</
|
|
157
|
-
</
|
|
158
|
-
</
|
|
159
|
-
</
|
|
156
|
+
</BreadcrumbsProvider>
|
|
157
|
+
</DialogsProvider>
|
|
158
|
+
</NavigationContext.Provider>
|
|
159
|
+
</SideEntityControllerContext.Provider>
|
|
160
|
+
</SideDialogsControllerContext.Provider>
|
|
161
|
+
</AuthControllerContext.Provider>
|
|
162
|
+
</DataSourceContext.Provider>
|
|
163
|
+
</StorageSourceContext.Provider>
|
|
164
|
+
</UserConfigurationPersistenceContext.Provider>
|
|
165
|
+
</CustomizationControllerContext.Provider>
|
|
166
|
+
</AnalyticsContext.Provider>
|
|
160
167
|
);
|
|
161
168
|
|
|
162
169
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createBrowserRouter, RouterProvider } from "react-router-dom"
|
|
2
|
+
import { removeInitialAndTrailingSlashes } from "../util";
|
|
3
|
+
|
|
4
|
+
export function FireCMSRouter({
|
|
5
|
+
children,
|
|
6
|
+
basePath
|
|
7
|
+
}: {
|
|
8
|
+
children: React.ReactNode,
|
|
9
|
+
basePath?: string;
|
|
10
|
+
}) {
|
|
11
|
+
return <RouterProvider router={createBrowserRouter([
|
|
12
|
+
{
|
|
13
|
+
path: basePath ? `${removeInitialAndTrailingSlashes(basePath)}/*` : "/*",
|
|
14
|
+
element: children
|
|
15
|
+
}
|
|
16
|
+
])}/>;
|
|
17
|
+
}
|
|
@@ -2,9 +2,11 @@ import React from "react";
|
|
|
2
2
|
|
|
3
3
|
import { Route, Routes, useLocation } from "react-router-dom";
|
|
4
4
|
import { CMSView } from "../types";
|
|
5
|
-
import { DefaultHomePage,
|
|
5
|
+
import { DefaultHomePage, ErrorBoundary, NotFoundPage } from "../components";
|
|
6
6
|
import { useNavigationController } from "../hooks";
|
|
7
|
-
import {
|
|
7
|
+
import { FireCMSRoute } from "../routes/FireCMSRoute";
|
|
8
|
+
import { CustomCMSRoute } from "../routes/CustomCMSRoute";
|
|
9
|
+
import { HomePageRoute } from "../routes/HomePageRoute";
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
12
|
* @group Components
|
|
@@ -13,9 +15,9 @@ export type NavigationRoutesProps = {
|
|
|
13
15
|
/**
|
|
14
16
|
* In case you need to override the home page
|
|
15
17
|
*/
|
|
16
|
-
|
|
18
|
+
homePage?: React.ReactNode;
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
children?: React.ReactNode | React.ReactNode[]
|
|
19
21
|
|
|
20
22
|
};
|
|
21
23
|
|
|
@@ -25,14 +27,12 @@ export type NavigationRoutesProps = {
|
|
|
25
27
|
* or the home route) related to a {@link NavigationController}.
|
|
26
28
|
* This component needs a parent {@link FireCMS}
|
|
27
29
|
*
|
|
28
|
-
* @constructor
|
|
29
30
|
* @group Components
|
|
30
31
|
*/
|
|
31
|
-
|
|
32
32
|
export const NavigationRoutes = React.memo<NavigationRoutesProps>(
|
|
33
33
|
function NavigationRoutes({
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
homePage = <DefaultHomePage/>,
|
|
35
|
+
children
|
|
36
36
|
}: NavigationRoutesProps) {
|
|
37
37
|
|
|
38
38
|
const location = useLocation();
|
|
@@ -68,32 +68,18 @@ export const NavigationRoutes = React.memo<NavigationRoutesProps>(
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
key={`navigation_${collection.id ?? collection.path}`}
|
|
80
|
-
element={
|
|
81
|
-
<ErrorBoundary>
|
|
82
|
-
<EntityCollectionView
|
|
83
|
-
key={`collection_view_${collection.id ?? collection.path}`}
|
|
84
|
-
isSubCollection={false}
|
|
85
|
-
parentCollectionIds={[]}
|
|
86
|
-
fullPath={collection.id ?? collection.path}
|
|
87
|
-
{...collection}
|
|
88
|
-
Actions={toArray(collection.Actions)}/>
|
|
89
|
-
</ErrorBoundary>
|
|
90
|
-
}/>;
|
|
91
|
-
}
|
|
92
|
-
);
|
|
71
|
+
const urlPath = navigation.buildUrlCollectionPath("");
|
|
72
|
+
const collectionRoute = <Route path={urlPath + "/*"}
|
|
73
|
+
key={`navigation_entity`}
|
|
74
|
+
element={
|
|
75
|
+
<ErrorBoundary>
|
|
76
|
+
<FireCMSRoute/>
|
|
77
|
+
</ErrorBoundary>
|
|
78
|
+
}/>
|
|
93
79
|
|
|
94
80
|
const homeRoute = (
|
|
95
81
|
<Route path={"/"}
|
|
96
|
-
element={<
|
|
82
|
+
element={<HomePageRoute>{homePage}</HomePageRoute>}/>
|
|
97
83
|
);
|
|
98
84
|
|
|
99
85
|
const notFoundRoute = <Route path={"*"}
|
|
@@ -104,7 +90,7 @@ export const NavigationRoutes = React.memo<NavigationRoutesProps>(
|
|
|
104
90
|
return (
|
|
105
91
|
<Routes location={baseLocation}>
|
|
106
92
|
|
|
107
|
-
{
|
|
93
|
+
{collectionRoute}
|
|
108
94
|
|
|
109
95
|
{cmsViews}
|
|
110
96
|
|
|
@@ -112,7 +98,7 @@ export const NavigationRoutes = React.memo<NavigationRoutesProps>(
|
|
|
112
98
|
|
|
113
99
|
{notFoundRoute}
|
|
114
100
|
|
|
115
|
-
{
|
|
101
|
+
{children}
|
|
116
102
|
|
|
117
103
|
</Routes>
|
|
118
104
|
);
|
|
@@ -122,6 +108,6 @@ const buildCMSViewRoute = (path: string, cmsView: CMSView) => {
|
|
|
122
108
|
return <Route
|
|
123
109
|
key={"navigation_view_" + path}
|
|
124
110
|
path={path}
|
|
125
|
-
element={cmsView
|
|
111
|
+
element={<CustomCMSRoute cmsView={cmsView}/>}
|
|
126
112
|
/>;
|
|
127
113
|
};
|
package/src/core/SideDialogs.tsx
CHANGED
|
@@ -2,8 +2,9 @@ import React, { useContext, useEffect, useState } from "react";
|
|
|
2
2
|
import { useSideDialogsController } from "../hooks";
|
|
3
3
|
import { SideDialogPanelProps } from "../types";
|
|
4
4
|
import { Sheet } from "@firecms/ui";
|
|
5
|
-
import {
|
|
5
|
+
import { useNavigationUnsavedChangesDialog } from "../internal/useUnsavedChangesDialog";
|
|
6
6
|
import { ErrorBoundary } from "../components";
|
|
7
|
+
import { UnsavedChangesDialog } from "../components/UnsavedChangesDialog";
|
|
7
8
|
|
|
8
9
|
export type SideDialogContextProps = {
|
|
9
10
|
blocked: boolean,
|
|
@@ -111,8 +112,6 @@ function SideDialogView({
|
|
|
111
112
|
}
|
|
112
113
|
};
|
|
113
114
|
|
|
114
|
-
// const offsetClass = offsetPosition > 0 ? `transform translate-x-${offsetPosition}` : "";
|
|
115
|
-
|
|
116
115
|
return (
|
|
117
116
|
<SideDialogContext.Provider
|
|
118
117
|
value={{
|
|
@@ -126,13 +125,20 @@ function SideDialogView({
|
|
|
126
125
|
<Sheet
|
|
127
126
|
open={Boolean(panel)}
|
|
128
127
|
onOpenChange={(open) => !open && onCloseRequest()}
|
|
128
|
+
title={"Side dialog " + panel?.key}
|
|
129
|
+
// style={{
|
|
130
|
+
// zIndex: offsetPosition * 20 + 20,
|
|
131
|
+
// }}
|
|
132
|
+
// overlayStyle={{
|
|
133
|
+
// zIndex: offsetPosition * 20 + 10,
|
|
134
|
+
// }}
|
|
129
135
|
>
|
|
130
136
|
{panel &&
|
|
131
137
|
<div
|
|
132
|
-
className={"transform max-w-[100vw] lg:max-w-[95vw] flex flex-col h-full transition-all duration-250 ease-in-out bg-white dark:bg-
|
|
138
|
+
className={"transform max-w-[100vw] lg:max-w-[95vw] flex flex-col h-full transition-all duration-250 ease-in-out bg-white dark:bg-surface-900 "}
|
|
133
139
|
style={{
|
|
134
140
|
width: panel.width,
|
|
135
|
-
transform: `translateX(-${offsetPosition * 200}px)
|
|
141
|
+
transform: `translateX(-${offsetPosition * 200}px)`,
|
|
136
142
|
}}
|
|
137
143
|
>
|
|
138
144
|
<ErrorBoundary>
|
|
@@ -145,7 +151,7 @@ function SideDialogView({
|
|
|
145
151
|
</Sheet>
|
|
146
152
|
|
|
147
153
|
<UnsavedChangesDialog
|
|
148
|
-
open={
|
|
154
|
+
open={drawerCloseRequested}
|
|
149
155
|
handleOk={drawerCloseRequested ? handleDrawerCloseOk : handleNavigationOk}
|
|
150
156
|
handleCancel={drawerCloseRequested ? handleDrawerCloseCancel : handleNavigationCancel}
|
|
151
157
|
body={blockedNavigationMessage}/>
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
DateTimeFieldBinding,
|
|
9
9
|
KeyValueFieldBinding,
|
|
10
10
|
MapFieldBinding,
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
MarkdownEditorFieldBinding,
|
|
12
|
+
MultiSelectFieldBinding,
|
|
13
13
|
ReferenceFieldBinding,
|
|
14
14
|
RepeatFieldBinding,
|
|
15
15
|
SelectFieldBinding,
|
|
@@ -23,7 +23,6 @@ import {
|
|
|
23
23
|
AddLinkIcon,
|
|
24
24
|
BallotIcon,
|
|
25
25
|
DriveFolderUploadIcon,
|
|
26
|
-
EmailIcon,
|
|
27
26
|
FlagIcon,
|
|
28
27
|
FormatListNumberedIcon,
|
|
29
28
|
FormatQuoteIcon,
|
|
@@ -31,6 +30,7 @@ import {
|
|
|
31
30
|
LinkIcon,
|
|
32
31
|
ListAltIcon,
|
|
33
32
|
ListIcon,
|
|
33
|
+
MailIcon,
|
|
34
34
|
NumbersIcon,
|
|
35
35
|
RepeatIcon,
|
|
36
36
|
ScheduleIcon,
|
|
@@ -77,7 +77,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
|
|
|
77
77
|
property: {
|
|
78
78
|
dataType: "string",
|
|
79
79
|
markdown: true,
|
|
80
|
-
Field:
|
|
80
|
+
Field: MarkdownEditorFieldBinding
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
url: {
|
|
@@ -96,7 +96,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
|
|
|
96
96
|
key: "email",
|
|
97
97
|
name: "Email",
|
|
98
98
|
description: "Text with email validation",
|
|
99
|
-
Icon:
|
|
99
|
+
Icon: MailIcon,
|
|
100
100
|
color: "#154fb3",
|
|
101
101
|
property: {
|
|
102
102
|
dataType: "string",
|
|
@@ -129,7 +129,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
|
|
|
129
129
|
},
|
|
130
130
|
multi_select: {
|
|
131
131
|
key: "multi_select",
|
|
132
|
-
name: "Multi select",
|
|
132
|
+
name: "Multi select (enum)",
|
|
133
133
|
description: "Select multiple text values from within an enumeration",
|
|
134
134
|
Icon: ListAltIcon,
|
|
135
135
|
color: "#4223c9",
|
|
@@ -139,7 +139,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
|
|
|
139
139
|
dataType: "string",
|
|
140
140
|
enumValues: [],
|
|
141
141
|
},
|
|
142
|
-
Field:
|
|
142
|
+
Field: MultiSelectFieldBinding
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
number_input: {
|
|
@@ -177,7 +177,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
|
|
|
177
177
|
dataType: "number",
|
|
178
178
|
enumValues: [],
|
|
179
179
|
},
|
|
180
|
-
Field:
|
|
180
|
+
Field: MultiSelectFieldBinding
|
|
181
181
|
}
|
|
182
182
|
},
|
|
183
183
|
file_upload: {
|
|
@@ -300,7 +300,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
|
|
|
300
300
|
block: {
|
|
301
301
|
key: "block",
|
|
302
302
|
name: "Block",
|
|
303
|
-
description: "A complex field that allows the user to compose different fields together, with a key
|
|
303
|
+
description: "A complex field that allows the user to compose different fields together, with a key/value format",
|
|
304
304
|
Icon: ViewStreamIcon,
|
|
305
305
|
color: "#ff9408",
|
|
306
306
|
property: {
|
|
@@ -331,7 +331,7 @@ export function getFieldConfig(property: Property | ResolvedProperty, propertyCo
|
|
|
331
331
|
}
|
|
332
332
|
const defaultFieldConfig = DEFAULT_FIELD_CONFIGS[defaultFieldId];
|
|
333
333
|
const customField = fieldId ? propertyConfigs[fieldId] : undefined;
|
|
334
|
-
return mergeDeep(defaultFieldConfig ?? {}, customField ?? {});
|
|
334
|
+
return mergeDeep(defaultFieldConfig ?? {}, customField ?? {} as PropertyConfig);
|
|
335
335
|
}
|
|
336
336
|
|
|
337
337
|
export function getDefaultFieldId(property: Property | ResolvedProperty) {
|
|
@@ -359,8 +359,7 @@ export function getDefaultFieldId(property: Property | ResolvedProperty) {
|
|
|
359
359
|
} else if (property.dataType === "map") {
|
|
360
360
|
if (property.keyValue)
|
|
361
361
|
return "key_value";
|
|
362
|
-
|
|
363
|
-
return "group";
|
|
362
|
+
return "group";
|
|
364
363
|
} else if (property.dataType === "array") {
|
|
365
364
|
const of = (property as ArrayProperty).of;
|
|
366
365
|
const oneOf = (property as ArrayProperty).oneOf;
|
package/src/core/index.tsx
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export * from "./FireCMS";
|
|
2
2
|
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
export type { DrawerProps } from "./Drawer";
|
|
7
|
-
export { Drawer, DrawerNavigationItem } from "./Drawer";
|
|
3
|
+
export * from "./DefaultDrawer";
|
|
4
|
+
export * from "./DrawerNavigationItem";
|
|
8
5
|
|
|
9
6
|
export * from "./field_configs";
|
|
10
7
|
|
|
11
8
|
export * from "./SideDialogs";
|
|
12
9
|
export * from "./NavigationRoutes";
|
|
10
|
+
|
|
11
|
+
export * from "./FireCMSRouter";
|
|
12
|
+
|
|
13
|
+
export * from "../app";
|