@firecms/core 3.0.0-canary.29 → 3.0.0-canary.290
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 +34 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +31 -12
- 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 +14 -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 +20 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +10 -7
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
- package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
- package/dist/components/HomePage/NavigationCard.d.ts +3 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +4 -3
- package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
- package/dist/components/PropertyCollectionView.d.ts +23 -0
- 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 +14 -4
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/UserDisplay.d.ts +7 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -12
- package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
- 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 +5 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/contexts/InternalUserManagementContext.d.ts +3 -0
- package/dist/core/DefaultAppBar.d.ts +29 -0
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +49 -11
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +2 -3
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +2 -3
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/field_configs.d.ts +1 -1
- package/dist/core/index.d.ts +4 -4
- package/dist/form/EntityForm.d.ts +40 -64
- package/dist/form/EntityFormActions.d.ts +21 -0
- 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/FormEntry.d.ts +6 -0
- package/dist/form/components/FormLayout.d.ts +5 -0
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/LocalChangesMenu.d.ts +11 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -4
- package/dist/form/components/index.d.ts +3 -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/ReferenceAsStringFieldBinding.d.ts +9 -0
- 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 +5 -13
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +18 -18
- 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 +3 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +57 -13
- package/dist/hooks/useCollapsedGroups.d.ts +9 -0
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
- package/dist/hooks/useModeController.d.ts +1 -2
- 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 +24546 -13965
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +27256 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +3 -17
- package/dist/internal/useBuildSideEntityController.d.ts +3 -3
- 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 +4 -3
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/components/UserPreview.d.ts +8 -0
- package/dist/preview/index.d.ts +1 -0
- 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/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +123 -25
- package/dist/types/customization_controller.d.ts +8 -0
- package/dist/types/datasource.d.ts +52 -36
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +12 -3
- package/dist/types/entity_actions.d.ts +72 -8
- 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 +79 -39
- package/dist/types/firecms.d.ts +31 -3
- package/dist/types/firecms_context.d.ts +17 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal_user_management.d.ts +20 -0
- package/dist/types/navigation.d.ts +62 -19
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +58 -13
- package/dist/types/properties.d.ts +122 -31
- package/dist/types/property_config.d.ts +1 -3
- package/dist/types/roles.d.ts +3 -0
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/side_entity_controller.d.ts +14 -1
- package/dist/types/storage.d.ts +75 -0
- package/dist/types/user.d.ts +2 -1
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/callbacks.d.ts +2 -0
- package/dist/util/collections.d.ts +1 -0
- package/dist/util/createFormexStub.d.ts +2 -0
- package/dist/util/entities.d.ts +3 -3
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +28 -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 +7 -4
- package/dist/util/index.d.ts +3 -0
- package/dist/util/make_properties_editable.d.ts +1 -2
- package/dist/util/navigation_from_path.d.ts +10 -1
- package/dist/util/navigation_utils.d.ts +15 -3
- package/dist/util/objects.d.ts +3 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +4 -4
- package/dist/util/references.d.ts +2 -2
- package/dist/util/resolutions.d.ts +42 -17
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +4 -3
- package/package.json +70 -53
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +253 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +447 -229
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
- package/src/components/DeleteEntityDialog.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +87 -62
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +84 -42
- 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 +34 -39
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +241 -119
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
- 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/EntityJsonPreview.tsx +66 -0
- package/src/components/EntityPreview.tsx +83 -62
- package/src/components/EntityView.tsx +34 -42
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/FireCMSLogo.tsx +7 -51
- package/src/components/HomePage/DefaultHomePage.tsx +516 -158
- package/src/components/HomePage/FavouritesView.tsx +9 -14
- package/src/components/HomePage/HomePageDnD.tsx +702 -0
- package/src/components/HomePage/NavigationCard.tsx +48 -39
- package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
- package/src/components/HomePage/NavigationGroup.tsx +144 -30
- package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyCollectionView.tsx +329 -0
- package/src/components/PropertyConfigBadge.tsx +10 -4
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +23 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +157 -157
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +27 -9
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -24
- package/src/components/UnsavedChangesDialog.tsx +46 -0
- package/src/components/UserDisplay.tsx +55 -0
- package/src/components/VirtualTable/VirtualTable.tsx +105 -51
- 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 +28 -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 +2 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +99 -0
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +64 -44
- 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 +16 -2
- 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 +6 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- package/src/contexts/InternalUserManagementContext.tsx +4 -0
- package/src/contexts/ModeController.tsx +1 -3
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +219 -0
- package/src/core/DefaultDrawer.tsx +185 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +447 -469
- package/src/core/EntityEditViewFormActions.tsx +344 -0
- package/src/core/EntitySidePanel.tsx +96 -23
- package/src/core/FireCMS.tsx +85 -60
- package/src/core/FireCMSRouter.tsx +17 -0
- package/src/core/NavigationRoutes.tsx +28 -38
- package/src/core/SideDialogs.tsx +22 -12
- package/src/core/field_configs.tsx +41 -14
- package/src/core/index.tsx +6 -5
- package/src/form/EntityForm.tsx +740 -523
- package/src/form/EntityFormActions.tsx +226 -0
- package/src/form/PropertyFieldBinding.tsx +88 -41
- package/src/form/components/CustomIdField.tsx +9 -3
- package/src/form/components/ErrorFocus.tsx +22 -29
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +30 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/LocalChangesMenu.tsx +144 -0
- package/src/form/components/StorageItemPreview.tsx +23 -13
- package/src/form/components/StorageUploadProgress.tsx +5 -6
- package/src/form/components/index.tsx +3 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +50 -36
- package/src/form/field_bindings/BlockFieldBinding.tsx +56 -33
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +61 -52
- package/src/form/field_bindings/MapFieldBinding.tsx +73 -55
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +257 -199
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +94 -0
- package/src/form/index.tsx +21 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +13 -23
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +26 -33
- 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 +4 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +22 -29
- package/src/hooks/useBuildNavigationController.tsx +515 -121
- package/src/hooks/useCollapsedGroups.ts +64 -0
- package/src/hooks/useFireCMSContext.tsx +9 -35
- package/src/hooks/useInternalUserManagementController.tsx +16 -0
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useModeController.tsx +1 -2
- 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 +79 -85
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +204 -77
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +42 -25
- 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 +26 -37
- package/src/preview/components/ReferencePreview.tsx +30 -38
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +60 -28
- package/src/preview/components/UserPreview.tsx +27 -0
- package/src/preview/index.ts +1 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -6
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +7 -5
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -4
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -4
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -6
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +8 -7
- package/src/preview/property_previews/MapPropertyPreview.tsx +14 -13
- package/src/preview/property_previews/NumberPropertyPreview.tsx +2 -2
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
- 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 +246 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/analytics.ts +3 -0
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +146 -30
- package/src/types/customization_controller.tsx +9 -1
- package/src/types/datasource.ts +61 -43
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +19 -3
- package/src/types/entity_actions.tsx +86 -10
- 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 +91 -42
- package/src/types/firecms.tsx +34 -4
- package/src/types/firecms_context.tsx +18 -1
- package/src/types/index.ts +1 -1
- package/src/types/internal_user_management.ts +24 -0
- package/src/types/navigation.ts +77 -24
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +69 -15
- package/src/types/properties.ts +141 -33
- package/src/types/property_config.tsx +2 -2
- package/src/types/roles.ts +3 -0
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +16 -1
- package/src/types/storage.ts +83 -1
- package/src/types/user.ts +3 -1
- package/src/util/builders.ts +10 -8
- package/src/util/callbacks.ts +119 -0
- package/src/util/collections.ts +8 -0
- package/src/util/createFormexStub.tsx +66 -0
- package/src/util/entities.ts +11 -8
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +223 -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 +36 -11
- package/src/util/index.ts +3 -0
- package/src/util/join_collections.ts +11 -4
- package/src/util/make_properties_editable.ts +5 -19
- package/src/util/navigation_from_path.ts +33 -12
- package/src/util/navigation_utils.ts +141 -25
- package/src/util/objects.ts +128 -33
- 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 +17 -6
- package/src/util/references.ts +19 -8
- package/src/util/resolutions.ts +122 -48
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +162 -62
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
- package/dist/components/FireCMSAppBar.d.ts +0 -26
- 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/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/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
- 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/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
|
@@ -10,6 +10,7 @@ import { SideDialogsController } from "./side_dialogs_controller";
|
|
|
10
10
|
import { DialogsController } from "./dialogs_controller";
|
|
11
11
|
import { CustomizationController } from "./customization_controller";
|
|
12
12
|
import { AnalyticsController } from "./analytics_controller";
|
|
13
|
+
import { InternalUserManagement } from "./internal_user_management";
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* Context that includes the internal controllers and contexts used by the app.
|
|
@@ -18,7 +19,7 @@ import { AnalyticsController } from "./analytics_controller";
|
|
|
18
19
|
* @group Hooks and utilities
|
|
19
20
|
* @see useFireCMSContext
|
|
20
21
|
*/
|
|
21
|
-
export type FireCMSContext<
|
|
22
|
+
export type FireCMSContext<USER extends User = User, AuthControllerType extends AuthController<USER> = AuthController<USER>> = {
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Connector to your database, e.g. your Firestore database
|
|
@@ -80,4 +81,20 @@ export type FireCMSContext<UserType extends User = User, AuthControllerType exte
|
|
|
80
81
|
*/
|
|
81
82
|
analyticsController?: AnalyticsController;
|
|
82
83
|
|
|
84
|
+
/**
|
|
85
|
+
* This section is used to manage users in the CMS.
|
|
86
|
+
* It is used to show user information in various places of the CMS,
|
|
87
|
+
* for example, to show who created or modified an entity,
|
|
88
|
+
* or to assign ownership of an entity.
|
|
89
|
+
*
|
|
90
|
+
* In the base CMS, this information is not used for access control.
|
|
91
|
+
* You can pass your own implementation of this section, to populate
|
|
92
|
+
* the dropdown of users when assigning ownership of an entity,
|
|
93
|
+
* or to show more information about the user.
|
|
94
|
+
*
|
|
95
|
+
* If you are using the FireCMS user management plugin, this
|
|
96
|
+
* section will be implemented automatically.
|
|
97
|
+
*/
|
|
98
|
+
userManagement: InternalUserManagement<USER>
|
|
99
|
+
|
|
83
100
|
};
|
package/src/types/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from "./fields";
|
|
|
13
13
|
export * from "./property_config";
|
|
14
14
|
export * from "./datasource";
|
|
15
15
|
export * from "./entity_link_builder";
|
|
16
|
+
export * from "./internal_user_management";
|
|
16
17
|
export * from "./side_entity_controller";
|
|
17
18
|
export * from "./side_dialogs_controller";
|
|
18
19
|
export * from "./firecms_context";
|
|
@@ -23,7 +24,6 @@ export * from "./plugins";
|
|
|
23
24
|
export * from "./analytics";
|
|
24
25
|
export * from "./firecms";
|
|
25
26
|
export * from "./roles";
|
|
26
|
-
export * from "./appcheck";
|
|
27
27
|
export * from "./export_import";
|
|
28
28
|
export * from "./modify_collections";
|
|
29
29
|
export * from "./analytics_controller";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { User } from "./user";
|
|
2
|
+
|
|
3
|
+
export type InternalUserManagement<USER extends User = User> = {
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* List of users to be managed by the CMS.
|
|
7
|
+
*/
|
|
8
|
+
users: USER[];
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Function to get a user by its uid. This is used to show
|
|
12
|
+
* user information when assigning ownership of an entity.
|
|
13
|
+
*
|
|
14
|
+
* You can pass your own implementation if you want to show
|
|
15
|
+
* more information about the user.
|
|
16
|
+
*
|
|
17
|
+
* If you are using the FireCMS user management plugin, this
|
|
18
|
+
* function will be implemented automatically.
|
|
19
|
+
*
|
|
20
|
+
* @param uid
|
|
21
|
+
*/
|
|
22
|
+
getUser: (uid: string) => USER | null;
|
|
23
|
+
|
|
24
|
+
}
|
package/src/types/navigation.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { EntityCollection } from "./collections";
|
|
3
3
|
import { EntityReference } from "./entities";
|
|
4
|
+
import { FireCMSPlugin } from "./plugins";
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Controller that includes the resolved navigation and utility methods and
|
|
7
8
|
* attributes.
|
|
9
|
+
* This controller holds the state of the navigation including the collections.
|
|
8
10
|
* @group Models
|
|
9
11
|
*/
|
|
10
12
|
export type NavigationController<EC extends EntityCollection = EntityCollection<any>> = {
|
|
@@ -34,7 +36,7 @@ export type NavigationController<EC extends EntityCollection = EntityCollection<
|
|
|
34
36
|
* level of the navigation (e.g. in the home page or the navigation
|
|
35
37
|
* drawer)
|
|
36
38
|
*/
|
|
37
|
-
topLevelNavigation?:
|
|
39
|
+
topLevelNavigation?: NavigationResult;
|
|
38
40
|
|
|
39
41
|
/**
|
|
40
42
|
* Is the navigation loading (the configuration persistence has not
|
|
@@ -56,11 +58,15 @@ export type NavigationController<EC extends EntityCollection = EntityCollection<
|
|
|
56
58
|
* Get the collection configuration for a given path.
|
|
57
59
|
* The collection is resolved from the given path or alias.
|
|
58
60
|
*/
|
|
59
|
-
getCollection: (
|
|
60
|
-
|
|
61
|
-
includeUserOverride?: boolean) => EC | undefined;
|
|
61
|
+
getCollection: (pathOrId: string, includeUserOverride?: boolean) => EC | undefined;
|
|
62
|
+
|
|
62
63
|
/**
|
|
63
|
-
* Get the collection configuration
|
|
64
|
+
* Get the top level collection configuration for a given id
|
|
65
|
+
*/
|
|
66
|
+
getCollectionById: (id: string) => EC | undefined;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Get the collection configuration from its parent ids.
|
|
64
70
|
*/
|
|
65
71
|
getCollectionFromIds: (ids: string[]) => EC | undefined;
|
|
66
72
|
|
|
@@ -70,12 +76,14 @@ export type NavigationController<EC extends EntityCollection = EntityCollection<
|
|
|
70
76
|
getCollectionFromPaths: (pathSegments: string[]) => EC | undefined;
|
|
71
77
|
|
|
72
78
|
/**
|
|
73
|
-
* Default path under the navigation routes of the CMS will be created
|
|
79
|
+
* Default path under the navigation routes of the CMS will be created.
|
|
80
|
+
* Defaults to '/'. You may want to change this `basepath` to 'admin' for example.
|
|
74
81
|
*/
|
|
75
82
|
basePath: string;
|
|
76
83
|
|
|
77
84
|
/**
|
|
78
|
-
* Default path under the collection routes of the CMS will be created
|
|
85
|
+
* Default path under the collection routes of the CMS will be created.
|
|
86
|
+
* It defaults to '/c'
|
|
79
87
|
*/
|
|
80
88
|
baseCollectionPath: string;
|
|
81
89
|
|
|
@@ -88,16 +96,6 @@ export type NavigationController<EC extends EntityCollection = EntityCollection<
|
|
|
88
96
|
*/
|
|
89
97
|
urlPathToDataPath: (cmsPath: string) => string;
|
|
90
98
|
|
|
91
|
-
/**
|
|
92
|
-
* Convert a collection or entity path to a URL path
|
|
93
|
-
* @param path
|
|
94
|
-
*/
|
|
95
|
-
buildCMSUrlPath: (path: string) => string;
|
|
96
|
-
|
|
97
|
-
buildUrlEditCollectionPath: (props: {
|
|
98
|
-
path: string
|
|
99
|
-
}) => string;
|
|
100
|
-
|
|
101
99
|
/**
|
|
102
100
|
* Base url path for the home screen
|
|
103
101
|
*/
|
|
@@ -118,10 +116,11 @@ export type NavigationController<EC extends EntityCollection = EntityCollection<
|
|
|
118
116
|
buildUrlCollectionPath: (path: string) => string;
|
|
119
117
|
|
|
120
118
|
/**
|
|
121
|
-
* Turn a path with
|
|
119
|
+
* Turn a path with collection ids into a resolved path.
|
|
120
|
+
* The ids (typically used in urls) will be replaced with relative paths (typically used in database paths)
|
|
122
121
|
* @param pathWithAliases
|
|
123
122
|
*/
|
|
124
|
-
|
|
123
|
+
resolveIdsFrom: (pathWithAliases: string) => string;
|
|
125
124
|
|
|
126
125
|
/**
|
|
127
126
|
* Call this method to recalculate the navigation
|
|
@@ -145,8 +144,39 @@ export type NavigationController<EC extends EntityCollection = EntityCollection<
|
|
|
145
144
|
* @param ids
|
|
146
145
|
*/
|
|
147
146
|
convertIdsToPaths: (ids: string[]) => string[];
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* A function to navigate to a specified route or URL.
|
|
150
|
+
*
|
|
151
|
+
* @param {string} to - The target route or URL to navigate to.
|
|
152
|
+
* @param {NavigateOptions} [options] - Optional configuration settings for navigation, such as replace behavior or state data.
|
|
153
|
+
*/
|
|
154
|
+
navigate: (to: string, options?: NavigateOptions) => void;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Plugin system allowing to extend the CMS functionality.
|
|
158
|
+
*/
|
|
159
|
+
plugins?: FireCMSPlugin<any, any, any>[];
|
|
160
|
+
|
|
148
161
|
}
|
|
149
162
|
|
|
163
|
+
export interface NavigateOptions {
|
|
164
|
+
replace?: boolean;
|
|
165
|
+
state?: any;
|
|
166
|
+
preventScrollReset?: boolean;
|
|
167
|
+
relative?: "route" | "path";
|
|
168
|
+
flushSync?: boolean;
|
|
169
|
+
viewTransition?: boolean;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// currently not used, in favor of a single blocker in `FireCMSRoute`
|
|
173
|
+
export type NavigationBlocker = {
|
|
174
|
+
updateBlockListener: (path: string, block: boolean, basePath?: string) => () => void;
|
|
175
|
+
isBlocked: (path: string) => boolean;
|
|
176
|
+
proceed?: () => void;
|
|
177
|
+
reset?: () => void;
|
|
178
|
+
};
|
|
179
|
+
|
|
150
180
|
/**
|
|
151
181
|
* Custom additional views created by the developer, added to the main
|
|
152
182
|
* navigation.
|
|
@@ -174,8 +204,9 @@ export interface CMSView {
|
|
|
174
204
|
* You can use any of the icons in the Material specs:
|
|
175
205
|
* https://fonts.google.com/icons
|
|
176
206
|
* e.g. 'account_tree' or 'person'
|
|
207
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
177
208
|
*/
|
|
178
|
-
icon?: string;
|
|
209
|
+
icon?: string | React.ReactNode;
|
|
179
210
|
|
|
180
211
|
/**
|
|
181
212
|
* Should this view be hidden from the main navigation panel.
|
|
@@ -198,7 +229,22 @@ export interface CMSView {
|
|
|
198
229
|
|
|
199
230
|
}
|
|
200
231
|
|
|
201
|
-
|
|
232
|
+
/**
|
|
233
|
+
* Used to group navigation entries in the main navigation.
|
|
234
|
+
*/
|
|
235
|
+
export interface NavigationGroupMapping {
|
|
236
|
+
/**
|
|
237
|
+
* Name of the group, used to display the group header in the UI
|
|
238
|
+
*/
|
|
239
|
+
name: string;
|
|
240
|
+
/**
|
|
241
|
+
* List of collection ids or view paths that belong to this group.
|
|
242
|
+
*/
|
|
243
|
+
entries: string[];
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export interface NavigationEntry {
|
|
247
|
+
id: string;
|
|
202
248
|
url: string;
|
|
203
249
|
name: string;
|
|
204
250
|
path: string;
|
|
@@ -209,7 +255,14 @@ export interface TopNavigationEntry {
|
|
|
209
255
|
group: string;
|
|
210
256
|
}
|
|
211
257
|
|
|
212
|
-
export type
|
|
213
|
-
|
|
214
|
-
|
|
258
|
+
export type NavigationResult = {
|
|
259
|
+
|
|
260
|
+
allowDragAndDrop: boolean;
|
|
261
|
+
|
|
262
|
+
navigationEntries: NavigationEntry[],
|
|
263
|
+
|
|
264
|
+
groups: string[],
|
|
265
|
+
|
|
266
|
+
onNavigationEntriesUpdate: (entries: NavigationGroupMapping[]) => void;
|
|
215
267
|
};
|
|
268
|
+
|
package/src/types/permissions.ts
CHANGED
|
@@ -32,7 +32,7 @@ export interface Permissions {
|
|
|
32
32
|
* Props passed to a {@link PermissionsBuilder}
|
|
33
33
|
* @group Models
|
|
34
34
|
*/
|
|
35
|
-
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection,
|
|
35
|
+
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection, USER extends User = User, M extends object = InferCollectionType<EC>> {
|
|
36
36
|
/**
|
|
37
37
|
* Entity being edited, might be null in some cases, when the operation
|
|
38
38
|
* refers to the collection.
|
|
@@ -54,7 +54,7 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
54
54
|
/**
|
|
55
55
|
* Logged in user
|
|
56
56
|
*/
|
|
57
|
-
user:
|
|
57
|
+
user: USER | null;
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* Collection these permissions apply to
|
|
@@ -64,7 +64,7 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
64
64
|
/**
|
|
65
65
|
* Auth controller
|
|
66
66
|
*/
|
|
67
|
-
authController: AuthController<
|
|
67
|
+
authController: AuthController<USER>;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/**
|
|
@@ -72,10 +72,10 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
72
72
|
* based on the logged user or collection.
|
|
73
73
|
* @group Models
|
|
74
74
|
*/
|
|
75
|
-
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection,
|
|
75
|
+
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, USER extends User = User, M extends object = InferCollectionType<EC>> =
|
|
76
76
|
(({
|
|
77
77
|
pathSegments,
|
|
78
78
|
user,
|
|
79
79
|
collection,
|
|
80
80
|
authController
|
|
81
|
-
}: PermissionsBuilderProps<EC,
|
|
81
|
+
}: PermissionsBuilderProps<EC, USER, M>) => Permissions | undefined);
|
package/src/types/plugins.tsx
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from "react";
|
|
2
2
|
|
|
3
3
|
import { FireCMSContext } from "./firecms_context";
|
|
4
|
-
import { CollectionActionsProps, EntityCollection } from "./collections";
|
|
4
|
+
import { CollectionActionsProps, EntityCollection, EntityTableController } from "./collections";
|
|
5
5
|
import { User } from "./user";
|
|
6
6
|
import { FieldProps, FormContext } from "./fields";
|
|
7
7
|
import { CMSType, Property } from "./properties";
|
|
8
8
|
import { EntityStatus } from "./entities";
|
|
9
9
|
import { ResolvedProperty } from "./resolved_entities";
|
|
10
|
-
import {
|
|
10
|
+
import { NavigationGroupMapping } from "./navigation";
|
|
11
|
+
import { InternalUserManagement } from "./internal_user_management";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Interface used to define plugins for FireCMS.
|
|
14
15
|
* NOTE: This is a work in progress and the API is not stable yet.
|
|
15
16
|
* @group Core
|
|
16
17
|
*/
|
|
17
|
-
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
|
|
18
|
+
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any, COL_ACTIONS_START__PROPS = any> = {
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Key of the plugin. This is used to identify the plugin in the CMS.
|
|
@@ -43,6 +44,8 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
43
44
|
props?: PROPS;
|
|
44
45
|
};
|
|
45
46
|
|
|
47
|
+
userManagement?: InternalUserManagement
|
|
48
|
+
|
|
46
49
|
homePage?: {
|
|
47
50
|
|
|
48
51
|
/**
|
|
@@ -85,6 +88,20 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
85
88
|
children: React.ReactNode;
|
|
86
89
|
}
|
|
87
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Allow reordering with drag and drop of the collections in the home page.
|
|
93
|
+
*/
|
|
94
|
+
allowDragAndDrop?: boolean;
|
|
95
|
+
|
|
96
|
+
navigationEntries?: NavigationGroupMapping[];
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* This method will be called when the entries are updated in the home page.
|
|
100
|
+
* group => navigationEntriesOrder (path)
|
|
101
|
+
* @param entries
|
|
102
|
+
*/
|
|
103
|
+
onNavigationEntriesUpdate?: (entries: NavigationGroupMapping[]) => void;
|
|
104
|
+
|
|
88
105
|
}
|
|
89
106
|
|
|
90
107
|
collectionView?: {
|
|
@@ -94,9 +111,18 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
94
111
|
* toolbar.
|
|
95
112
|
*/
|
|
96
113
|
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
97
|
-
|
|
98
114
|
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
99
115
|
|
|
116
|
+
CollectionActionsStart?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS>[];
|
|
117
|
+
collectionActionsStartProps?: COL_ACTIONS_START__PROPS;
|
|
118
|
+
|
|
119
|
+
blockSearch?: (props: {
|
|
120
|
+
context: FireCMSContext,
|
|
121
|
+
path: string,
|
|
122
|
+
collection: EC,
|
|
123
|
+
parentCollectionIds?: string[]
|
|
124
|
+
}) => boolean;
|
|
125
|
+
|
|
100
126
|
showTextSearchBar?: (props: {
|
|
101
127
|
context: FireCMSContext,
|
|
102
128
|
path: string,
|
|
@@ -122,6 +148,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
122
148
|
parentCollectionIds: string[],
|
|
123
149
|
onHover: boolean,
|
|
124
150
|
collection: EC;
|
|
151
|
+
tableController: EntityTableController;
|
|
125
152
|
}>;
|
|
126
153
|
|
|
127
154
|
/**
|
|
@@ -132,6 +159,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
132
159
|
fullPath: string,
|
|
133
160
|
parentCollectionIds: string[],
|
|
134
161
|
collection: EC;
|
|
162
|
+
tableController: EntityTableController;
|
|
135
163
|
}>;
|
|
136
164
|
}
|
|
137
165
|
|
|
@@ -141,13 +169,37 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
141
169
|
props?: FORM_PROPS;
|
|
142
170
|
}
|
|
143
171
|
|
|
172
|
+
/**
|
|
173
|
+
* Add custom actions to the default ones ("Save", "Discard"...)
|
|
174
|
+
*/
|
|
144
175
|
Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
145
176
|
|
|
177
|
+
/**
|
|
178
|
+
* Add custom actions to the top of the form
|
|
179
|
+
*/
|
|
180
|
+
ActionsTop?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
181
|
+
|
|
146
182
|
fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
|
|
147
183
|
|
|
148
184
|
fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
|
|
149
185
|
}
|
|
150
186
|
|
|
187
|
+
collection?: {
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Use this method to modify a single collection before it is rendered.
|
|
191
|
+
* @param collection
|
|
192
|
+
*/
|
|
193
|
+
modifyCollection?: (collection: EntityCollection) => EntityCollection;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Use this method to modify, add or remove collections.
|
|
197
|
+
* @param collections
|
|
198
|
+
*/
|
|
199
|
+
injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
|
|
200
|
+
|
|
201
|
+
}
|
|
202
|
+
|
|
151
203
|
}
|
|
152
204
|
|
|
153
205
|
/**
|
|
@@ -156,7 +208,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
156
208
|
*
|
|
157
209
|
* @group Models
|
|
158
210
|
*/
|
|
159
|
-
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any,
|
|
211
|
+
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
160
212
|
/**
|
|
161
213
|
* Collection path of this entity. This is the full path, like
|
|
162
214
|
* `users/1234/addresses`
|
|
@@ -171,20 +223,22 @@ export interface PluginHomePageActionsProps<EP extends object = object, M extend
|
|
|
171
223
|
/**
|
|
172
224
|
* Context of the app status
|
|
173
225
|
*/
|
|
174
|
-
context: FireCMSContext<
|
|
226
|
+
context: FireCMSContext<USER>;
|
|
175
227
|
|
|
176
228
|
extraProps?: EP;
|
|
177
229
|
|
|
178
230
|
}
|
|
179
231
|
|
|
180
|
-
export interface PluginFormActionProps<
|
|
232
|
+
export interface PluginFormActionProps<USER extends User = User, EC extends EntityCollection = EntityCollection> {
|
|
181
233
|
entityId?: string;
|
|
182
234
|
path: string;
|
|
235
|
+
parentCollectionIds: string[];
|
|
183
236
|
status: EntityStatus;
|
|
184
237
|
collection: EC;
|
|
238
|
+
disabled: boolean;
|
|
185
239
|
formContext?: FormContext<any>;
|
|
186
|
-
context: FireCMSContext<
|
|
187
|
-
|
|
240
|
+
context: FireCMSContext<USER>;
|
|
241
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
188
242
|
}
|
|
189
243
|
|
|
190
244
|
export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Record<string, any> = any, EC extends EntityCollection<M> = EntityCollection<M>> = {
|
|
@@ -193,15 +247,15 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
|
|
|
193
247
|
property: Property<T> | ResolvedProperty<T>;
|
|
194
248
|
Field: React.ComponentType<FieldProps<T, any, M>>;
|
|
195
249
|
plugin: FireCMSPlugin;
|
|
196
|
-
path
|
|
197
|
-
collection
|
|
250
|
+
path?: string;
|
|
251
|
+
collection?: EC;
|
|
198
252
|
};
|
|
199
253
|
|
|
200
|
-
export interface PluginGenericProps<
|
|
201
|
-
context: FireCMSContext<
|
|
254
|
+
export interface PluginGenericProps<USER extends User = User> {
|
|
255
|
+
context: FireCMSContext<USER>;
|
|
202
256
|
}
|
|
203
257
|
|
|
204
|
-
export interface PluginHomePageAdditionalCardsProps<
|
|
258
|
+
export interface PluginHomePageAdditionalCardsProps<USER extends User = User> {
|
|
205
259
|
group?: string;
|
|
206
|
-
context: FireCMSContext<
|
|
260
|
+
context: FireCMSContext<USER>;
|
|
207
261
|
}
|