@firecms/core 3.0.0-canary.24 → 3.0.0-canary.240
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 +30 -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 +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 +8 -5
- 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 +14 -4
- 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 +5 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -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 +40 -11
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +3 -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/index.d.ts +4 -4
- package/dist/form/EntityForm.d.ts +36 -64
- package/dist/form/EntityFormActions.d.ts +17 -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/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/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 +16 -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 +1 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +7 -12
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- 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 +21573 -13895
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +24361 -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 +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 +97 -23
- 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 +74 -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 +36 -14
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +36 -12
- package/dist/types/properties.d.ts +73 -24
- 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 +10 -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/callbacks.d.ts +2 -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 +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 +3 -0
- package/dist/util/navigation_from_path.d.ts +6 -1
- package/dist/util/navigation_utils.d.ts +15 -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 +4 -4
- package/dist/util/references.d.ts +2 -2
- package/dist/util/resolutions.d.ts +41 -17
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/package.json +62 -48
- 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 +149 -46
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +11 -11
- package/src/components/DeleteEntityDialog.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +59 -40
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +48 -40
- 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 +32 -37
- 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 -80
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +229 -117
- 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/EntityJsonPreview.tsx +66 -0
- package/src/components/EntityPreview.tsx +80 -59
- package/src/components/EntityView.tsx +13 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/HomePage/DefaultHomePage.tsx +27 -20
- 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 +21 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +157 -145
- 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 +130 -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 +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 +44 -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 +6 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- 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 +406 -478
- package/src/core/EntityEditViewFormActions.tsx +199 -0
- package/src/core/EntitySidePanel.tsx +95 -19
- package/src/core/FireCMS.tsx +67 -59
- 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 +11 -12
- package/src/core/index.tsx +6 -5
- package/src/form/EntityForm.tsx +589 -535
- package/src/form/EntityFormActions.tsx +169 -0
- package/src/form/PropertyFieldBinding.tsx +89 -45
- package/src/form/components/CustomIdField.tsx +6 -2
- 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/StorageItemPreview.tsx +22 -12
- package/src/form/components/StorageUploadProgress.tsx +4 -5
- package/src/form/components/index.tsx +3 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +48 -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 +61 -52
- package/src/form/field_bindings/MapFieldBinding.tsx +71 -54
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +157 -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 +62 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +23 -15
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +47 -52
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/index.tsx +16 -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 +32 -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 +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 +22 -29
- package/src/hooks/useBuildNavigationController.tsx +193 -68
- package/src/hooks/useFireCMSContext.tsx +3 -33
- 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 +201 -75
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +20 -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 +25 -36
- package/src/preview/components/ReferencePreview.tsx +23 -34
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +60 -28
- 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 +7 -6
- package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
- 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/auth.tsx +9 -13
- package/src/types/collections.ts +118 -28
- 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 +85 -46
- package/src/types/firecms.tsx +7 -3
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +43 -18
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +42 -14
- package/src/types/properties.ts +87 -26
- package/src/types/property_config.tsx +0 -2
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +11 -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/callbacks.ts +119 -0
- package/src/util/createFormexStub.tsx +62 -0
- package/src/util/entities.ts +9 -6
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +204 -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 +3 -0
- package/src/util/join_collections.ts +6 -1
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +18 -7
- package/src/util/navigation_utils.ts +141 -25
- package/src/util/objects.ts +52 -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 +17 -6
- package/src/util/references.ts +19 -8
- package/src/util/resolutions.ts +110 -48
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +91 -28
- 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/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
|
@@ -1,26 +1,12 @@
|
|
|
1
|
-
import { DataSource, DataSourceDelegate,
|
|
1
|
+
import { AuthController, DataSource, DataSourceDelegate, NavigationController, PropertyConfig } from "../types";
|
|
2
2
|
/**
|
|
3
3
|
* Use this hook to build a {@link DataSource} based on Firestore
|
|
4
4
|
* @param firebaseApp
|
|
5
5
|
* @group Firebase
|
|
6
6
|
*/
|
|
7
|
-
export declare function useBuildDataSource({ delegate, propertyConfigs, navigationController }: {
|
|
7
|
+
export declare function useBuildDataSource({ delegate, propertyConfigs, navigationController, authController }: {
|
|
8
8
|
delegate: DataSourceDelegate;
|
|
9
9
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
10
10
|
navigationController: NavigationController;
|
|
11
|
+
authController: AuthController;
|
|
11
12
|
}): DataSource;
|
|
12
|
-
/**
|
|
13
|
-
* Recursive function that converts Firestore data types into CMS or plain
|
|
14
|
-
* JS types.
|
|
15
|
-
* FireCMS uses Javascript dates internally instead of Firestore timestamps.
|
|
16
|
-
* This makes it easier to interact with the rest of the libraries and
|
|
17
|
-
* bindings.
|
|
18
|
-
* Also, Firestore references are replaced with {@link EntityReference}
|
|
19
|
-
* @param data
|
|
20
|
-
* @param buildReference
|
|
21
|
-
* @param buildGeoPoint
|
|
22
|
-
* @param buildDate
|
|
23
|
-
* @param buildDelete
|
|
24
|
-
* @group Firestore
|
|
25
|
-
*/
|
|
26
|
-
export declare function cmsToDelegateModel(data: any, buildReference: (reference: EntityReference) => any, buildGeoPoint: (geoPoint: GeoPoint) => any, buildDate: (date: Date) => any, buildDelete: () => any): any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityCollection, EntitySidePanelProps, NavigationController, SideDialogsController, SideEntityController } from "../types";
|
|
2
|
-
export declare function getEntityViewWidth(props: EntitySidePanelProps<any>, small: boolean): string;
|
|
3
|
-
export declare const useBuildSideEntityController: (navigation: NavigationController, sideDialogsController: SideDialogsController) => SideEntityController;
|
|
1
|
+
import { AuthController, CustomizationController, EntityCollection, EntitySidePanelProps, NavigationController, SideDialogsController, SideEntityController } from "../types";
|
|
2
|
+
export declare function getEntityViewWidth(props: EntitySidePanelProps<any>, small: boolean, customizationController: CustomizationController, authController: AuthController): string;
|
|
3
|
+
export declare const useBuildSideEntityController: (navigation: NavigationController, sideDialogsController: SideDialogsController, authController: AuthController) => SideEntityController;
|
|
4
4
|
export declare function buildSidePanelsFromUrl(path: string, collections: EntityCollection[], newFlag: boolean): EntitySidePanelProps<any>[];
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook to handle navigation blocking when there are unsaved changes.
|
|
3
|
+
*
|
|
4
|
+
* @param when - Indicates whether to block navigation.
|
|
5
|
+
* @param onSuccess - Callback invoked when navigation is confirmed.
|
|
6
|
+
* @returns An object containing the state of navigation blocking and handlers.
|
|
7
|
+
*/
|
|
2
8
|
export declare function useNavigationUnsavedChangesDialog(when: boolean, onSuccess: () => void): {
|
|
3
9
|
navigationWasBlocked: boolean;
|
|
4
10
|
handleCancel: () => void;
|
|
5
11
|
handleOk: () => void;
|
|
6
12
|
};
|
|
7
|
-
export interface UnsavedChangesDialogProps {
|
|
8
|
-
open: boolean;
|
|
9
|
-
body?: React.ReactNode;
|
|
10
|
-
title?: string;
|
|
11
|
-
handleOk: () => void;
|
|
12
|
-
handleCancel: () => void;
|
|
13
|
-
}
|
|
14
|
-
export declare function UnsavedChangesDialog({ open, handleOk, handleCancel, body, title }: UnsavedChangesDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,7 +2,7 @@ import { CMSType, Property, ResolvedProperty } from "../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* @group Preview components
|
|
4
4
|
*/
|
|
5
|
-
export type PreviewSize = "
|
|
5
|
+
export type PreviewSize = "small" | "medium" | "large";
|
|
6
6
|
/**
|
|
7
7
|
* @group Preview components
|
|
8
8
|
*/
|
|
@@ -37,4 +37,9 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
|
37
37
|
* Additional properties set by the developer
|
|
38
38
|
*/
|
|
39
39
|
customProps?: CustomProps;
|
|
40
|
+
/**
|
|
41
|
+
* If the preview should be interactive or not.
|
|
42
|
+
* This applies only to videos.
|
|
43
|
+
*/
|
|
44
|
+
interactive?: boolean;
|
|
40
45
|
}
|
|
@@ -3,7 +3,7 @@ import { EnumValues } from "../../types";
|
|
|
3
3
|
export interface EnumValuesChipProps {
|
|
4
4
|
enumValues?: EnumValues;
|
|
5
5
|
enumKey: string | number;
|
|
6
|
-
size: "
|
|
6
|
+
size: "small" | "medium" | "large";
|
|
7
7
|
className?: string;
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
}
|
|
@@ -8,9 +8,10 @@ export type ReferencePreviewProps = {
|
|
|
8
8
|
previewProperties?: string[];
|
|
9
9
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
10
10
|
hover?: boolean;
|
|
11
|
-
|
|
11
|
+
includeEntityLink?: boolean;
|
|
12
|
+
includeId?: boolean;
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
15
|
* @group Preview components
|
|
15
16
|
*/
|
|
16
|
-
export declare const ReferencePreview:
|
|
17
|
+
export declare const ReferencePreview: (props: ReferencePreviewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,10 +4,11 @@ type StorageThumbnailProps = {
|
|
|
4
4
|
storagePathOrDownloadUrl: string;
|
|
5
5
|
storeUrl: boolean;
|
|
6
6
|
size: PreviewSize;
|
|
7
|
+
interactive?: boolean;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
9
10
|
* @group Preview components
|
|
10
11
|
*/
|
|
11
12
|
export declare const StorageThumbnail: React.FunctionComponent<StorageThumbnailProps>;
|
|
12
|
-
export declare function StorageThumbnailInternal({ storeUrl, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
14
|
export {};
|
|
@@ -4,9 +4,10 @@ import { PreviewSize } from "../PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function UrlComponentPreview({ url, previewType, size, hint }: {
|
|
7
|
+
export declare function UrlComponentPreview({ url, previewType, size, hint, interactive }: {
|
|
8
8
|
url: string;
|
|
9
9
|
previewType?: PreviewType;
|
|
10
10
|
size: PreviewSize;
|
|
11
11
|
hint?: string;
|
|
12
|
+
interactive?: boolean;
|
|
12
13
|
}): React.ReactElement;
|
package/dist/preview/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CollectionSize } from "../types";
|
|
2
2
|
import { PreviewSize } from "./PropertyPreviewProps";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
3
|
+
export declare const SMALL_THUMBNAIL = 40;
|
|
4
|
+
export declare const MEDIUM_THUMBNAIL = 100;
|
|
5
|
+
export declare const LARGE_THUMBNAIL = 200;
|
|
6
6
|
export declare function getThumbnailMeasure(size: PreviewSize): number;
|
|
7
7
|
export declare function getPreviewSizeFrom(size: CollectionSize): PreviewSize;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function FireCMSRoute(): import("react/jsx-runtime").JSX.Element | null;
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -8,16 +8,12 @@ import { StorageSource } from "./storage";
|
|
|
8
8
|
* to do it as the result of a hook.
|
|
9
9
|
* @group Hooks and utilities
|
|
10
10
|
*/
|
|
11
|
-
export type AuthController<
|
|
11
|
+
export type AuthController<USER extends User = any, ExtraData = any> = {
|
|
12
12
|
/**
|
|
13
13
|
* The user currently logged in
|
|
14
14
|
* The values can be: the user object, null if they skipped login
|
|
15
15
|
*/
|
|
16
|
-
user:
|
|
17
|
-
/**
|
|
18
|
-
* Roles related to the logged user
|
|
19
|
-
*/
|
|
20
|
-
roles?: Role[];
|
|
16
|
+
user: USER | null;
|
|
21
17
|
/**
|
|
22
18
|
* Initial loading flag. It is used not to display the login screen
|
|
23
19
|
* when the app first loads, and it has not been checked whether the user
|
|
@@ -32,7 +28,7 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
32
28
|
/**
|
|
33
29
|
* Sign out
|
|
34
30
|
*/
|
|
35
|
-
signOut: () => void
|
|
31
|
+
signOut: () => Promise<void>;
|
|
36
32
|
/**
|
|
37
33
|
* Error initializing the authentication
|
|
38
34
|
*/
|
|
@@ -51,20 +47,22 @@ export type AuthController<UserType extends User = any, ExtraData extends any =
|
|
|
51
47
|
loginSkipped: boolean;
|
|
52
48
|
extra: ExtraData;
|
|
53
49
|
setExtra: (extra: ExtraData) => void;
|
|
50
|
+
setUser?: (user: USER | null) => void;
|
|
51
|
+
setUserRoles?: (roles: Role[]) => void;
|
|
54
52
|
};
|
|
55
53
|
/**
|
|
56
54
|
* Implement this function to allow access to specific users.
|
|
57
55
|
* @group Hooks and utilities
|
|
58
56
|
*/
|
|
59
|
-
export type Authenticator<
|
|
57
|
+
export type Authenticator<USER extends User = User> = (props: {
|
|
60
58
|
/**
|
|
61
59
|
* Logged-in user or null
|
|
62
60
|
*/
|
|
63
|
-
user:
|
|
61
|
+
user: USER | null;
|
|
64
62
|
/**
|
|
65
63
|
* AuthController
|
|
66
64
|
*/
|
|
67
|
-
authController:
|
|
65
|
+
authController: AuthController<USER>;
|
|
68
66
|
/**
|
|
69
67
|
* Connector to your database, e.g. your Firestore database
|
|
70
68
|
*/
|
|
@@ -16,7 +16,7 @@ import { EntityOverrides } from "./entity_overrides";
|
|
|
16
16
|
*
|
|
17
17
|
* @group Models
|
|
18
18
|
*/
|
|
19
|
-
export interface EntityCollection<M extends Record<string, any> = any,
|
|
19
|
+
export interface EntityCollection<M extends Record<string, any> = any, USER extends User = any> {
|
|
20
20
|
/**
|
|
21
21
|
* You can set an alias that will be used internally instead of the `path`.
|
|
22
22
|
* The `alias` value will be used to determine the URL of the collection,
|
|
@@ -44,6 +44,11 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
44
44
|
* This path also determines the URL in FireCMS, unless an alias is specified
|
|
45
45
|
*/
|
|
46
46
|
path: string;
|
|
47
|
+
/**
|
|
48
|
+
* Optional database id of this collection. If not specified, the default
|
|
49
|
+
* database id will be used.
|
|
50
|
+
*/
|
|
51
|
+
databaseId?: string;
|
|
47
52
|
/**
|
|
48
53
|
* If this collection is a top level navigation entry, you can set this
|
|
49
54
|
* property to `true` to indicate that this collection is a collection group.
|
|
@@ -53,7 +58,8 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
53
58
|
* Icon key to use in this collection.
|
|
54
59
|
* You can use any of the icons in the Material specs:
|
|
55
60
|
* https://fonts.google.com/icons
|
|
56
|
-
* e.g. 'account_tree' or 'person'
|
|
61
|
+
* e.g. 'account_tree' or 'person'.
|
|
62
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
57
63
|
*/
|
|
58
64
|
icon?: string;
|
|
59
65
|
/**
|
|
@@ -66,6 +72,10 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
66
72
|
* Set of properties that compose an entity
|
|
67
73
|
*/
|
|
68
74
|
properties: PropertiesOrBuilders<M>;
|
|
75
|
+
/**
|
|
76
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
77
|
+
*/
|
|
78
|
+
previewProperties?: string[];
|
|
69
79
|
/**
|
|
70
80
|
* Title property of the entity. This is the property that will be used
|
|
71
81
|
* as the title in entity related views and references.
|
|
@@ -73,11 +83,10 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
73
83
|
*/
|
|
74
84
|
titleProperty?: keyof M;
|
|
75
85
|
/**
|
|
76
|
-
*
|
|
77
|
-
* Defaults to `
|
|
78
|
-
* Keep in mind that you can also set this prop to individual properties.
|
|
86
|
+
* When editing an entity, you can choose to open the entity in a side dialog
|
|
87
|
+
* or in a full screen dialog. Defaults to `full_screen`.
|
|
79
88
|
*/
|
|
80
|
-
|
|
89
|
+
openEntityMode?: "side_panel" | "full_screen";
|
|
81
90
|
/**
|
|
82
91
|
* Order in which the properties are displayed.
|
|
83
92
|
* If you are specifying your collection as code, the order is the same as the
|
|
@@ -88,14 +97,18 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
88
97
|
* `hidden` in the property definition, will be ignored.
|
|
89
98
|
* `propertiesOrder` has precedence over `hidden`.
|
|
90
99
|
* - For properties use the property key.
|
|
91
|
-
* - For additional
|
|
100
|
+
* - For additional fields use the field key.
|
|
92
101
|
* - If you have subcollections, you get a column for each subcollection,
|
|
93
102
|
* with the path (or alias) as the subcollection, prefixed with
|
|
94
103
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
95
104
|
* - If you are using a collection group, you will also have an
|
|
96
105
|
* additional `collectionGroupParent` column.
|
|
106
|
+
* You can use this prop to hide some properties from the table view.
|
|
107
|
+
* Note that if you set this prop, other ways to hide fields, like
|
|
108
|
+
* `hidden` in the property definition,will be ignored.
|
|
109
|
+
* `propertiesOrder` has precedence over `hidden`.
|
|
97
110
|
*/
|
|
98
|
-
propertiesOrder?: Extract<keyof M, string>[];
|
|
111
|
+
propertiesOrder?: (Extract<keyof M, string> | string | `subcollection:${string}` | "collectionGroupParent")[];
|
|
99
112
|
/**
|
|
100
113
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
101
114
|
* collection are loaded.
|
|
@@ -112,7 +125,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
112
125
|
* Permissions the logged-in user can perform on this collection.
|
|
113
126
|
* If not specified everything defaults to `true`.
|
|
114
127
|
*/
|
|
115
|
-
permissions?: Permissions | PermissionsBuilder<EntityCollection,
|
|
128
|
+
permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
|
|
116
129
|
/**
|
|
117
130
|
* Are the entities in this collection selectable. Defaults to `true`
|
|
118
131
|
*/
|
|
@@ -128,7 +141,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
128
141
|
* is being created, updated or deleted.
|
|
129
142
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
130
143
|
*/
|
|
131
|
-
callbacks?: EntityCallbacks<M,
|
|
144
|
+
callbacks?: EntityCallbacks<M, USER>;
|
|
132
145
|
/**
|
|
133
146
|
* Builder for rendering additional components such as buttons in the
|
|
134
147
|
* collection toolbar
|
|
@@ -157,7 +170,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
157
170
|
* }
|
|
158
171
|
* ```
|
|
159
172
|
*/
|
|
160
|
-
entityActions?: EntityAction<M,
|
|
173
|
+
entityActions?: EntityAction<M, USER>[];
|
|
161
174
|
/**
|
|
162
175
|
* Pass your own selection controller if you want to control selected
|
|
163
176
|
* entities externally.
|
|
@@ -176,12 +189,14 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
176
189
|
* Force a filter in this view. If applied, the rest of the filters will
|
|
177
190
|
* be disabled. Filters applied with this prop cannot be changed.
|
|
178
191
|
* e.g. `forceFilter: { age: [">=", 18] }`
|
|
192
|
+
* e.g. `forceFilter: { related_user: ["==", new EntityReference("sdc43dsw2", "users")] }`
|
|
179
193
|
*/
|
|
180
194
|
forceFilter?: FilterValues<Extract<keyof M, string>>;
|
|
181
195
|
/**
|
|
182
196
|
* Initial filters applied to the collection this collection is related to.
|
|
183
197
|
* Defaults to none. Filters applied with this prop can be changed.
|
|
184
198
|
* e.g. `initialFilter: { age: [">=", 18] }`
|
|
199
|
+
* e.g. `initialFilter: { related_user: ["==", new EntityReference("sdc43dsw2", "users")] }`
|
|
185
200
|
*/
|
|
186
201
|
initialFilter?: FilterValues<Extract<keyof M, string>>;
|
|
187
202
|
/**
|
|
@@ -202,7 +217,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
202
217
|
* You can add additional fields to the collection view by implementing
|
|
203
218
|
* an additional field delegate.
|
|
204
219
|
*/
|
|
205
|
-
additionalFields?: AdditionalFieldDelegate<M,
|
|
220
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
206
221
|
/**
|
|
207
222
|
* Default size of the rendered collection
|
|
208
223
|
*/
|
|
@@ -247,13 +262,42 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
247
262
|
/**
|
|
248
263
|
*
|
|
249
264
|
*/
|
|
250
|
-
exportable?: boolean | ExportConfig<
|
|
265
|
+
exportable?: boolean | ExportConfig<USER>;
|
|
251
266
|
/**
|
|
252
267
|
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
253
268
|
* are writing custom code
|
|
254
269
|
*/
|
|
255
270
|
ownerId?: string;
|
|
271
|
+
/**
|
|
272
|
+
* Overrides for the entity view, like the data source or the storage source.
|
|
273
|
+
*/
|
|
256
274
|
overrides?: EntityOverrides;
|
|
275
|
+
/**
|
|
276
|
+
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
277
|
+
*/
|
|
278
|
+
sideDialogWidth?: number | string;
|
|
279
|
+
/**
|
|
280
|
+
* Can this collection configuration be edited by the end user.
|
|
281
|
+
* Defaults to `true`.
|
|
282
|
+
* Keep in mind that you can also set this prop to individual properties.
|
|
283
|
+
* This prop has only effect if you are using the collection editor.
|
|
284
|
+
*/
|
|
285
|
+
editable?: boolean;
|
|
286
|
+
/**
|
|
287
|
+
* If set to true, the default values of the properties will be applied
|
|
288
|
+
* to the entity every time the entity is updated (not only when created).
|
|
289
|
+
* Defaults to false.
|
|
290
|
+
*/
|
|
291
|
+
alwaysApplyDefaultValues?: boolean;
|
|
292
|
+
/**
|
|
293
|
+
* If set to true, a tab including the JSON representation of the entity will be included.
|
|
294
|
+
*/
|
|
295
|
+
includeJsonView?: boolean;
|
|
296
|
+
/**
|
|
297
|
+
* If set to true, changes to the entity will be saved in a subcollection.
|
|
298
|
+
* This prop has no effect if the history plugin is not enabled
|
|
299
|
+
*/
|
|
300
|
+
history?: boolean;
|
|
257
301
|
}
|
|
258
302
|
/**
|
|
259
303
|
* Parameter passed to the `Actions` prop in the collection configuration.
|
|
@@ -262,7 +306,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
262
306
|
*
|
|
263
307
|
* @group Models
|
|
264
308
|
*/
|
|
265
|
-
export interface CollectionActionsProps<M extends Record<string, any> = any,
|
|
309
|
+
export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
266
310
|
/**
|
|
267
311
|
* Full collection path of this entity. This is the full path, like
|
|
268
312
|
* `users/1234/addresses`
|
|
@@ -293,7 +337,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
293
337
|
/**
|
|
294
338
|
* Context of the app status
|
|
295
339
|
*/
|
|
296
|
-
context: FireCMSContext<
|
|
340
|
+
context: FireCMSContext<USER>;
|
|
297
341
|
/**
|
|
298
342
|
* Count of the entities in this collection
|
|
299
343
|
*/
|
|
@@ -302,14 +346,13 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
302
346
|
/**
|
|
303
347
|
* Use this controller to retrieve the selected entities or modify them in
|
|
304
348
|
* an {@link EntityCollection}
|
|
305
|
-
* If you want to pass a `SelectionController` to
|
|
306
349
|
* @group Models
|
|
307
350
|
*/
|
|
308
351
|
export type SelectionController<M extends Record<string, any> = any> = {
|
|
309
352
|
selectedEntities: Entity<M>[];
|
|
310
353
|
setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
|
|
311
354
|
isEntitySelected: (entity: Entity<M>) => boolean;
|
|
312
|
-
toggleEntitySelection: (entity: Entity<M
|
|
355
|
+
toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
|
|
313
356
|
};
|
|
314
357
|
/**
|
|
315
358
|
* Filter conditions in a `Query.where()` clause are specified using the
|
|
@@ -337,16 +380,16 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
|
|
|
337
380
|
* @group Models
|
|
338
381
|
*/
|
|
339
382
|
export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
|
|
340
|
-
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any,
|
|
383
|
+
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
|
|
341
384
|
entity: Entity<M>;
|
|
342
|
-
context: FireCMSContext<
|
|
385
|
+
context: FireCMSContext<USER>;
|
|
343
386
|
};
|
|
344
387
|
/**
|
|
345
388
|
* Use this interface for adding additional fields to entity collection views.
|
|
346
389
|
* If you need to do some async loading you can use {@link AsyncPreviewComponent}
|
|
347
390
|
* @group Models
|
|
348
391
|
*/
|
|
349
|
-
export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
392
|
+
export interface AdditionalFieldDelegate<M extends Record<string, any> = any, USER extends User = User> {
|
|
350
393
|
/**
|
|
351
394
|
* ID of this column. You can use this id in the `properties` field of the
|
|
352
395
|
* collection in any order you want
|
|
@@ -363,7 +406,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
363
406
|
/**
|
|
364
407
|
* Builder for the content of the cell for this column
|
|
365
408
|
*/
|
|
366
|
-
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M,
|
|
409
|
+
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
|
|
367
410
|
/**
|
|
368
411
|
* If this column needs to update dynamically based on other properties,
|
|
369
412
|
* you can define an array of keys as strings with the
|
|
@@ -391,9 +434,33 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
391
434
|
* @group Models
|
|
392
435
|
*/
|
|
393
436
|
export type EntityCustomView<M extends Record<string, any> = any> = {
|
|
437
|
+
/**
|
|
438
|
+
* Key of this custom view.
|
|
439
|
+
*/
|
|
394
440
|
key: string;
|
|
441
|
+
/**
|
|
442
|
+
* Name of this custom view.
|
|
443
|
+
*/
|
|
395
444
|
name: string;
|
|
445
|
+
/**
|
|
446
|
+
* Render this custom view in the tab of the entity view, instead of the name
|
|
447
|
+
*/
|
|
448
|
+
tabComponent?: React.ReactNode;
|
|
449
|
+
/**
|
|
450
|
+
* If set to true, the actions of the entity (save, discard,delete) will be
|
|
451
|
+
* included in the view. By default the actions are located in the right or bottom,
|
|
452
|
+
* based on the screen size. You can force the actions to be located at the bottom
|
|
453
|
+
* by setting this prop to "bottom".
|
|
454
|
+
*/
|
|
455
|
+
includeActions?: boolean | "bottom";
|
|
456
|
+
/**
|
|
457
|
+
* Builder for rendering the custom view
|
|
458
|
+
*/
|
|
396
459
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
460
|
+
/**
|
|
461
|
+
* Position of this tab in the entity view. Defaults to `end`.
|
|
462
|
+
*/
|
|
463
|
+
position?: "start" | "end";
|
|
397
464
|
};
|
|
398
465
|
/**
|
|
399
466
|
* Parameters passed to the builder in charge of rendering a custom panel for
|
|
@@ -445,12 +512,18 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
445
512
|
filterValues?: FilterValues<Extract<keyof M, string>>;
|
|
446
513
|
setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
|
|
447
514
|
sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
|
|
448
|
-
setSortBy?: (sortBy
|
|
515
|
+
setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
|
|
449
516
|
searchString?: string;
|
|
450
517
|
setSearchString?: (searchString?: string) => void;
|
|
451
518
|
clearFilter?: () => void;
|
|
452
519
|
itemCount?: number;
|
|
453
520
|
setItemCount?: (itemCount: number) => void;
|
|
521
|
+
initialScroll?: number;
|
|
522
|
+
onScroll?: (props: {
|
|
523
|
+
scrollDirection: "forward" | "backward";
|
|
524
|
+
scrollOffset: number;
|
|
525
|
+
scrollUpdateWasRequested: boolean;
|
|
526
|
+
}) => void;
|
|
454
527
|
paginationEnabled?: boolean;
|
|
455
528
|
pageSize?: number;
|
|
456
529
|
checkFilterCombination?: (filterValues: FilterValues<any>, sortBy?: [string, "asc" | "desc"]) => boolean;
|
|
@@ -463,5 +536,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
|
|
|
463
536
|
cellRect: DOMRect;
|
|
464
537
|
width: number;
|
|
465
538
|
height: number;
|
|
466
|
-
|
|
539
|
+
entityPath: string;
|
|
540
|
+
entityId: string;
|
|
467
541
|
};
|