@firecms/core 3.0.0-canary.21 → 3.0.0-canary.211
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 +23 -6
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -13
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
- package/dist/components/EntityCollectionTable/index.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +16 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +5 -4
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +3 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +28 -12
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
- package/dist/components/common/index.d.ts +2 -1
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +4 -6
- package/dist/components/common/useColumnsIds.d.ts +3 -1
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +4 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/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 +35 -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 +37 -69
- 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 -5
- 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 +21921 -14330
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +24271 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -16
- package/dist/internal/useBuildSideEntityController.d.ts +2 -2
- 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 +77 -22
- package/dist/types/datasource.d.ts +52 -36
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +7 -2
- package/dist/types/entity_actions.d.ts +28 -4
- package/dist/types/entity_callbacks.d.ts +16 -16
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +71 -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 +32 -14
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +23 -12
- package/dist/types/properties.d.ts +52 -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 +6 -1
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +1 -0
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/entities.d.ts +3 -3
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +23 -0
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -98
- package/dist/util/icons.d.ts +6 -3
- package/dist/util/index.d.ts +2 -0
- package/dist/util/navigation_from_path.d.ts +6 -1
- package/dist/util/navigation_utils.d.ts +14 -3
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +3 -3
- package/dist/util/resolutions.d.ts +36 -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 +127 -41
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
- package/src/components/DeleteEntityDialog.tsx +10 -19
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +54 -37
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +31 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +81 -80
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +207 -113
- 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 +62 -52
- package/src/components/EntityView.tsx +10 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/HomePage/DefaultHomePage.tsx +26 -19
- package/src/components/HomePage/FavouritesView.tsx +6 -11
- package/src/components/HomePage/NavigationCard.tsx +3 -3
- package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +19 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +27 -12
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
- package/src/components/UnsavedChangesDialog.tsx +42 -0
- package/src/components/VirtualTable/VirtualTable.tsx +96 -48
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +33 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +3 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +33 -40
- package/src/components/common/index.ts +2 -1
- package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
- package/src/components/common/types.tsx +4 -6
- package/src/components/common/useColumnsIds.tsx +24 -3
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +4 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- package/src/contexts/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 +345 -480
- package/src/core/EntityEditViewFormActions.tsx +199 -0
- package/src/core/EntitySidePanel.tsx +86 -17
- package/src/core/FireCMS.tsx +56 -49
- 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 +585 -539
- package/src/form/EntityFormActions.tsx +169 -0
- package/src/form/PropertyFieldBinding.tsx +85 -44
- package/src/form/components/CustomIdField.tsx +6 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/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 +31 -19
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -35
- package/src/form/field_bindings/BlockFieldBinding.tsx +56 -34
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
- package/src/form/field_bindings/MapFieldBinding.tsx +71 -54
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +153 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +42 -50
- 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 +13 -9
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +22 -29
- package/src/hooks/useBuildNavigationController.tsx +159 -54
- package/src/hooks/useFireCMSContext.tsx +5 -5
- 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 +72 -82
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +194 -73
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +17 -24
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +25 -36
- package/src/preview/components/ReferencePreview.tsx +22 -33
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +60 -28
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
- package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +235 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +94 -27
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +61 -43
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +12 -2
- package/src/types/entity_actions.tsx +32 -7
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +81 -46
- package/src/types/firecms.tsx +7 -2
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +38 -18
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +25 -14
- package/src/types/properties.ts +60 -25
- package/src/types/property_config.tsx +0 -2
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +6 -1
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +2 -0
- package/src/util/builders.ts +10 -8
- package/src/util/entities.ts +9 -6
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +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 +2 -0
- package/src/util/join_collections.ts +3 -0
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +13 -6
- package/src/util/navigation_utils.ts +59 -7
- package/src/util/objects.ts +48 -28
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +11 -4
- package/src/util/references.ts +11 -2
- package/src/util/resolutions.ts +100 -46
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +71 -27
- 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
package/src/types/collections.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { EntityOverrides } from "./entity_overrides";
|
|
|
17
17
|
*
|
|
18
18
|
* @group Models
|
|
19
19
|
*/
|
|
20
|
-
export interface EntityCollection<M extends Record<string, any> = any,
|
|
20
|
+
export interface EntityCollection<M extends Record<string, any> = any, USER extends User = any> {
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* You can set an alias that will be used internally instead of the `path`.
|
|
@@ -51,6 +51,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
51
51
|
*/
|
|
52
52
|
path: string;
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Optional database id of this collection. If not specified, the default
|
|
56
|
+
* database id will be used.
|
|
57
|
+
*/
|
|
58
|
+
databaseId?: string;
|
|
59
|
+
|
|
54
60
|
/**
|
|
55
61
|
* If this collection is a top level navigation entry, you can set this
|
|
56
62
|
* property to `true` to indicate that this collection is a collection group.
|
|
@@ -61,7 +67,8 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
61
67
|
* Icon key to use in this collection.
|
|
62
68
|
* You can use any of the icons in the Material specs:
|
|
63
69
|
* https://fonts.google.com/icons
|
|
64
|
-
* e.g. 'account_tree' or 'person'
|
|
70
|
+
* e.g. 'account_tree' or 'person'.
|
|
71
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
65
72
|
*/
|
|
66
73
|
icon?: string;
|
|
67
74
|
|
|
@@ -77,19 +84,23 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
77
84
|
*/
|
|
78
85
|
properties: PropertiesOrBuilders<M>;
|
|
79
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
89
|
+
*/
|
|
90
|
+
previewProperties?: string[];
|
|
91
|
+
|
|
80
92
|
/**
|
|
81
93
|
* Title property of the entity. This is the property that will be used
|
|
82
94
|
* as the title in entity related views and references.
|
|
83
95
|
* If not specified, the first property simple text property will be used.
|
|
84
96
|
*/
|
|
85
|
-
titleProperty?: keyof M
|
|
97
|
+
titleProperty?: keyof M;
|
|
86
98
|
|
|
87
99
|
/**
|
|
88
|
-
*
|
|
89
|
-
* Defaults to `
|
|
90
|
-
* Keep in mind that you can also set this prop to individual properties.
|
|
100
|
+
* When editing an entity, you can choose to open the entity in a side dialog
|
|
101
|
+
* or in a full screen dialog. Defaults to `full_screen`.
|
|
91
102
|
*/
|
|
92
|
-
|
|
103
|
+
openEntityMode?: "side_panel" | "full_screen";
|
|
93
104
|
|
|
94
105
|
/**
|
|
95
106
|
* Order in which the properties are displayed.
|
|
@@ -107,8 +118,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
107
118
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
108
119
|
* - If you are using a collection group, you will also have an
|
|
109
120
|
* additional `collectionGroupParent` column.
|
|
121
|
+
* You can use this prop to hide some properties from the table view.
|
|
122
|
+
* Note that if you set this prop, other ways to hide fields, like
|
|
123
|
+
* `hidden` in the property definition,will be ignored.
|
|
124
|
+
* `propertiesOrder` has precedence over `hidden`.
|
|
110
125
|
*/
|
|
111
|
-
propertiesOrder?: Extract<keyof M, string>[];
|
|
126
|
+
propertiesOrder?: (Extract<keyof M, string> | string | `subcollection:${string}` | "collectionGroupParent")[];
|
|
112
127
|
|
|
113
128
|
/**
|
|
114
129
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
@@ -128,7 +143,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
128
143
|
* Permissions the logged-in user can perform on this collection.
|
|
129
144
|
* If not specified everything defaults to `true`.
|
|
130
145
|
*/
|
|
131
|
-
permissions?: Permissions | PermissionsBuilder<EntityCollection,
|
|
146
|
+
permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
|
|
132
147
|
|
|
133
148
|
/**
|
|
134
149
|
* Are the entities in this collection selectable. Defaults to `true`
|
|
@@ -147,7 +162,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
147
162
|
* is being created, updated or deleted.
|
|
148
163
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
149
164
|
*/
|
|
150
|
-
callbacks?: EntityCallbacks<M,
|
|
165
|
+
callbacks?: EntityCallbacks<M, USER>;
|
|
151
166
|
|
|
152
167
|
/**
|
|
153
168
|
* Builder for rendering additional components such as buttons in the
|
|
@@ -178,7 +193,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
178
193
|
* }
|
|
179
194
|
* ```
|
|
180
195
|
*/
|
|
181
|
-
entityActions?: EntityAction<M,
|
|
196
|
+
entityActions?: EntityAction<M, USER>[];
|
|
182
197
|
|
|
183
198
|
/**
|
|
184
199
|
* Pass your own selection controller if you want to control selected
|
|
@@ -230,7 +245,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
230
245
|
* You can add additional fields to the collection view by implementing
|
|
231
246
|
* an additional field delegate.
|
|
232
247
|
*/
|
|
233
|
-
additionalFields?: AdditionalFieldDelegate<M,
|
|
248
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
234
249
|
|
|
235
250
|
/**
|
|
236
251
|
* Default size of the rendered collection
|
|
@@ -283,14 +298,38 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
283
298
|
/**
|
|
284
299
|
*
|
|
285
300
|
*/
|
|
286
|
-
exportable?: boolean | ExportConfig<
|
|
301
|
+
exportable?: boolean | ExportConfig<USER>;
|
|
287
302
|
|
|
288
303
|
/**
|
|
289
304
|
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
290
305
|
* are writing custom code
|
|
291
306
|
*/
|
|
292
307
|
ownerId?: string;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Overrides for the entity view, like the data source or the storage source.
|
|
311
|
+
*/
|
|
293
312
|
overrides?: EntityOverrides;
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
316
|
+
*/
|
|
317
|
+
sideDialogWidth?: number | string;
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Can this collection configuration be edited by the end user.
|
|
321
|
+
* Defaults to `true`.
|
|
322
|
+
* Keep in mind that you can also set this prop to individual properties.
|
|
323
|
+
* This prop has only effect if you are using the collection editor.
|
|
324
|
+
*/
|
|
325
|
+
editable?: boolean;
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* If set to true, the default values of the properties will be applied
|
|
329
|
+
* to the entity every time the entity is updated (not only when created).
|
|
330
|
+
* Defaults to false.
|
|
331
|
+
*/
|
|
332
|
+
alwaysApplyDefaultValues?: boolean;
|
|
294
333
|
}
|
|
295
334
|
|
|
296
335
|
/**
|
|
@@ -300,7 +339,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
300
339
|
*
|
|
301
340
|
* @group Models
|
|
302
341
|
*/
|
|
303
|
-
export interface CollectionActionsProps<M extends Record<string, any> = any,
|
|
342
|
+
export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
304
343
|
/**
|
|
305
344
|
* Full collection path of this entity. This is the full path, like
|
|
306
345
|
* `users/1234/addresses`
|
|
@@ -337,7 +376,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
337
376
|
/**
|
|
338
377
|
* Context of the app status
|
|
339
378
|
*/
|
|
340
|
-
context: FireCMSContext<
|
|
379
|
+
context: FireCMSContext<USER>;
|
|
341
380
|
|
|
342
381
|
/**
|
|
343
382
|
* Count of the entities in this collection
|
|
@@ -349,14 +388,13 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
349
388
|
/**
|
|
350
389
|
* Use this controller to retrieve the selected entities or modify them in
|
|
351
390
|
* an {@link EntityCollection}
|
|
352
|
-
* If you want to pass a `SelectionController` to
|
|
353
391
|
* @group Models
|
|
354
392
|
*/
|
|
355
393
|
export type SelectionController<M extends Record<string, any> = any> = {
|
|
356
394
|
selectedEntities: Entity<M>[];
|
|
357
395
|
setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
|
|
358
396
|
isEntitySelected: (entity: Entity<M>) => boolean;
|
|
359
|
-
toggleEntitySelection: (entity: Entity<M
|
|
397
|
+
toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
|
|
360
398
|
}
|
|
361
399
|
|
|
362
400
|
/**
|
|
@@ -400,9 +438,9 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
|
|
|
400
438
|
*/
|
|
401
439
|
export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
|
|
402
440
|
|
|
403
|
-
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any,
|
|
441
|
+
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
|
|
404
442
|
entity: Entity<M>,
|
|
405
|
-
context: FireCMSContext<
|
|
443
|
+
context: FireCMSContext<USER>
|
|
406
444
|
};
|
|
407
445
|
|
|
408
446
|
/**
|
|
@@ -411,7 +449,7 @@ export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, Us
|
|
|
411
449
|
* @group Models
|
|
412
450
|
*/
|
|
413
451
|
export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
414
|
-
|
|
452
|
+
USER extends User = User> {
|
|
415
453
|
|
|
416
454
|
/**
|
|
417
455
|
* ID of this column. You can use this id in the `properties` field of the
|
|
@@ -432,7 +470,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
|
432
470
|
/**
|
|
433
471
|
* Builder for the content of the cell for this column
|
|
434
472
|
*/
|
|
435
|
-
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M,
|
|
473
|
+
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
|
|
436
474
|
|
|
437
475
|
/**
|
|
438
476
|
* If this column needs to update dynamically based on other properties,
|
|
@@ -451,7 +489,10 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
|
451
489
|
* view.
|
|
452
490
|
* @param entity
|
|
453
491
|
*/
|
|
454
|
-
value?: (props: {
|
|
492
|
+
value?: (props: {
|
|
493
|
+
entity: Entity<M>,
|
|
494
|
+
context: FireCMSContext<any>
|
|
495
|
+
}) => string | number | Promise<string | number> | undefined;
|
|
455
496
|
}
|
|
456
497
|
|
|
457
498
|
/**
|
|
@@ -461,10 +502,29 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
|
461
502
|
*/
|
|
462
503
|
export type EntityCustomView<M extends Record<string, any> = any> =
|
|
463
504
|
{
|
|
464
|
-
|
|
465
|
-
|
|
505
|
+
/**
|
|
506
|
+
* Key of this custom view.
|
|
507
|
+
*/
|
|
508
|
+
key: string;
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Name of this custom view.
|
|
512
|
+
*/
|
|
513
|
+
name: string;
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* If set to true, the actions of the entity (save, discard,delete) will be
|
|
517
|
+
* included in the view. By default the actions are located in the right or bottom,
|
|
518
|
+
* based on the screen size. You can force the actions to be located at the bottom
|
|
519
|
+
* by setting this prop to "bottom".
|
|
520
|
+
*/
|
|
521
|
+
includeActions?: boolean | "bottom";
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Builder for rendering the custom view
|
|
525
|
+
*/
|
|
466
526
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
467
|
-
}
|
|
527
|
+
};
|
|
468
528
|
|
|
469
529
|
/**
|
|
470
530
|
* Parameters passed to the builder in charge of rendering a custom panel for
|
|
@@ -523,12 +583,18 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
523
583
|
filterValues?: FilterValues<Extract<keyof M, string>>;
|
|
524
584
|
setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
|
|
525
585
|
sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
|
|
526
|
-
setSortBy?: (sortBy
|
|
586
|
+
setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
|
|
527
587
|
searchString?: string;
|
|
528
588
|
setSearchString?: (searchString?: string) => void;
|
|
529
589
|
clearFilter?: () => void;
|
|
530
590
|
itemCount?: number;
|
|
531
591
|
setItemCount?: (itemCount: number) => void;
|
|
592
|
+
initialScroll?: number;
|
|
593
|
+
onScroll?: (props: {
|
|
594
|
+
scrollDirection: "forward" | "backward",
|
|
595
|
+
scrollOffset: number,
|
|
596
|
+
scrollUpdateWasRequested: boolean
|
|
597
|
+
}) => void;
|
|
532
598
|
paginationEnabled?: boolean;
|
|
533
599
|
pageSize?: number;
|
|
534
600
|
checkFilterCombination?: (filterValues: FilterValues<any>,
|
|
@@ -544,5 +610,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
|
|
|
544
610
|
cellRect: DOMRect;
|
|
545
611
|
width: number;
|
|
546
612
|
height: number;
|
|
547
|
-
|
|
613
|
+
entityPath: string;
|
|
614
|
+
entityId: string;
|
|
548
615
|
};
|
package/src/types/datasource.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Entity,
|
|
1
|
+
import { Entity, EntityStatus, EntityValues } from "./entities";
|
|
2
2
|
import { EntityCollection, FilterValues } from "./collections";
|
|
3
3
|
import { ResolvedEntityCollection } from "./resolved_entities";
|
|
4
|
+
import { FireCMSContext } from "./firecms_context";
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* @group Datasource
|
|
@@ -8,6 +9,7 @@ import { ResolvedEntityCollection } from "./resolved_entities";
|
|
|
8
9
|
export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
9
10
|
path: string;
|
|
10
11
|
entityId: string;
|
|
12
|
+
databaseId?: string;
|
|
11
13
|
collection?: EntityCollection<M, any>
|
|
12
14
|
}
|
|
13
15
|
|
|
@@ -62,12 +64,12 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
|
62
64
|
*/
|
|
63
65
|
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
64
66
|
entity: Entity<M>;
|
|
67
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
71
|
+
* Component in charge of communicating with the data source.
|
|
72
|
+
* Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
|
|
71
73
|
* @group Datasource
|
|
72
74
|
*/
|
|
73
75
|
export interface DataSource {
|
|
@@ -137,6 +139,7 @@ export interface DataSource {
|
|
|
137
139
|
fetchEntity<M extends Record<string, any> = any>({
|
|
138
140
|
path,
|
|
139
141
|
entityId,
|
|
142
|
+
databaseId,
|
|
140
143
|
collection
|
|
141
144
|
}: FetchEntityProps<M>
|
|
142
145
|
): Promise<Entity<M> | undefined>;
|
|
@@ -181,7 +184,8 @@ export interface DataSource {
|
|
|
181
184
|
*/
|
|
182
185
|
deleteEntity<M extends Record<string, any> = any>(
|
|
183
186
|
{
|
|
184
|
-
entity
|
|
187
|
+
entity,
|
|
188
|
+
collection
|
|
185
189
|
}: DeleteEntityProps<M>
|
|
186
190
|
): Promise<void>;
|
|
187
191
|
|
|
@@ -190,7 +194,7 @@ export interface DataSource {
|
|
|
190
194
|
* @param path Collection path
|
|
191
195
|
* @param name of the property
|
|
192
196
|
* @param value
|
|
193
|
-
* @param
|
|
197
|
+
* @param collection
|
|
194
198
|
* @param entityId
|
|
195
199
|
* @return `true` if there are no other fields besides the given entity
|
|
196
200
|
*/
|
|
@@ -198,13 +202,14 @@ export interface DataSource {
|
|
|
198
202
|
path: string,
|
|
199
203
|
name: string,
|
|
200
204
|
value: any,
|
|
201
|
-
entityId?: string
|
|
205
|
+
entityId?: string,
|
|
206
|
+
collection?: EntityCollection
|
|
202
207
|
): Promise<boolean>;
|
|
203
208
|
|
|
204
209
|
/**
|
|
205
210
|
* Generate an id for a new entity
|
|
206
211
|
*/
|
|
207
|
-
generateEntityId(path: string): string;
|
|
212
|
+
generateEntityId(path: string, collection: EntityCollection): string;
|
|
208
213
|
|
|
209
214
|
/**
|
|
210
215
|
* Count the number of entities in a collection
|
|
@@ -216,6 +221,19 @@ export interface DataSource {
|
|
|
216
221
|
* @param props
|
|
217
222
|
*/
|
|
218
223
|
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Called when the user clicks on the search bar in a collection view.
|
|
227
|
+
* Useful for initializing a text search index.
|
|
228
|
+
* @param props
|
|
229
|
+
*/
|
|
230
|
+
initTextSearch?: (props: {
|
|
231
|
+
context: FireCMSContext,
|
|
232
|
+
path: string,
|
|
233
|
+
collection: EntityCollection,
|
|
234
|
+
parentCollectionIds?: string[]
|
|
235
|
+
}) => Promise<boolean>;
|
|
236
|
+
|
|
219
237
|
}
|
|
220
238
|
|
|
221
239
|
export type FilterCombinationValidProps = {
|
|
@@ -225,21 +243,24 @@ export type FilterCombinationValidProps = {
|
|
|
225
243
|
sortBy?: [string, "asc" | "desc"];
|
|
226
244
|
};
|
|
227
245
|
|
|
228
|
-
export type SaveEntityDelegateProps<M extends Record<string, any> = any> =
|
|
246
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
|
|
229
247
|
|
|
230
|
-
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
231
|
-
Omit<FetchCollectionProps<M>, "collection">
|
|
232
|
-
& {
|
|
233
|
-
isCollectionGroup?: boolean
|
|
234
|
-
};
|
|
248
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
|
|
235
249
|
|
|
236
|
-
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
237
|
-
ListenCollectionProps<M>
|
|
238
|
-
& {
|
|
239
|
-
isCollectionGroup?: boolean;
|
|
240
|
-
};
|
|
250
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
|
|
241
251
|
|
|
242
252
|
export interface DataSourceDelegate {
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Key that identifies this data source delegate
|
|
256
|
+
*/
|
|
257
|
+
key: string;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* If the data source has been initialised
|
|
261
|
+
*/
|
|
262
|
+
initialised?: boolean;
|
|
263
|
+
|
|
243
264
|
/**
|
|
244
265
|
* Fetch data from a collection
|
|
245
266
|
* @param path
|
|
@@ -297,7 +318,7 @@ export interface DataSourceDelegate {
|
|
|
297
318
|
fetchEntity<M extends Record<string, any> = any>({
|
|
298
319
|
path,
|
|
299
320
|
entityId,
|
|
300
|
-
}:
|
|
321
|
+
}: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
301
322
|
|
|
302
323
|
/**
|
|
303
324
|
* Get realtime updates on one entity.
|
|
@@ -313,13 +334,13 @@ export interface DataSourceDelegate {
|
|
|
313
334
|
entityId,
|
|
314
335
|
onUpdate,
|
|
315
336
|
onError
|
|
316
|
-
}:
|
|
337
|
+
}: ListenEntityProps<M>): () => void;
|
|
317
338
|
|
|
318
339
|
/**
|
|
319
340
|
* Save entity to the specified path
|
|
320
341
|
* @param path
|
|
321
|
-
* @param
|
|
322
|
-
* @param
|
|
342
|
+
* @param entityId
|
|
343
|
+
* @param values
|
|
323
344
|
* @param status
|
|
324
345
|
*/
|
|
325
346
|
saveEntity<M extends Record<string, any> = any>({
|
|
@@ -342,14 +363,15 @@ export interface DataSourceDelegate {
|
|
|
342
363
|
* @param name of the property
|
|
343
364
|
* @param value
|
|
344
365
|
* @param entityId
|
|
366
|
+
* @param collection
|
|
345
367
|
* @return `true` if there are no other fields besides the given entity
|
|
346
368
|
*/
|
|
347
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
369
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
348
370
|
|
|
349
371
|
/**
|
|
350
372
|
* Generate an id for a new entity
|
|
351
373
|
*/
|
|
352
|
-
generateEntityId(path: string): string;
|
|
374
|
+
generateEntityId(path: string, collection?: EntityCollection): string;
|
|
353
375
|
|
|
354
376
|
/**
|
|
355
377
|
* Count the number of entities in a collection
|
|
@@ -360,30 +382,26 @@ export interface DataSourceDelegate {
|
|
|
360
382
|
* Check if the given filter combination is valid
|
|
361
383
|
* @param props
|
|
362
384
|
*/
|
|
363
|
-
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
* Convert a FireCMS reference to a reference that can be used by the datasource
|
|
367
|
-
* @param reference
|
|
368
|
-
*/
|
|
369
|
-
buildReference: (reference: EntityReference) => any,
|
|
370
|
-
|
|
371
|
-
/**
|
|
372
|
-
* Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
|
|
373
|
-
* @param geoPoint
|
|
374
|
-
*/
|
|
375
|
-
buildGeoPoint: (geoPoint: GeoPoint) => any,
|
|
385
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
386
|
+
databaseId?: string
|
|
387
|
+
}): boolean;
|
|
376
388
|
|
|
377
389
|
/**
|
|
378
390
|
* Get the object to generate the current time in the datasource
|
|
379
391
|
*/
|
|
380
|
-
currentTime()
|
|
381
|
-
|
|
382
|
-
buildDate: (date: Date) => any;
|
|
383
|
-
|
|
384
|
-
buildDeleteFieldValue: () => any;
|
|
392
|
+
currentTime?: () => any;
|
|
385
393
|
|
|
386
394
|
delegateToCMSModel: (data: any) => any;
|
|
387
395
|
|
|
396
|
+
cmsToDelegateModel: (data: any) => any;
|
|
397
|
+
|
|
388
398
|
setDateToMidnight: (input?: any) => any;
|
|
399
|
+
|
|
400
|
+
initTextSearch?: (props: {
|
|
401
|
+
context: FireCMSContext,
|
|
402
|
+
path: string,
|
|
403
|
+
databaseId?: string,
|
|
404
|
+
collection: EntityCollection,
|
|
405
|
+
parentCollectionIds?: string[]
|
|
406
|
+
}) => Promise<boolean>;
|
|
389
407
|
}
|
|
@@ -15,19 +15,23 @@ export interface DialogsController {
|
|
|
15
15
|
* Open a dialog
|
|
16
16
|
* @param props
|
|
17
17
|
*/
|
|
18
|
-
open: (props: DialogControllerEntryProps) => { closeDialog: () => void };
|
|
18
|
+
open: <T extends object = object>(props: DialogControllerEntryProps<T>) => { closeDialog: () => void };
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Props used to open a side dialog
|
|
23
23
|
* @group Hooks and utilities
|
|
24
24
|
*/
|
|
25
|
-
export interface DialogControllerEntryProps {
|
|
25
|
+
export interface DialogControllerEntryProps<T extends object = object> {
|
|
26
26
|
|
|
27
27
|
key: string;
|
|
28
28
|
/**
|
|
29
29
|
* The component type that will be rendered
|
|
30
30
|
*/
|
|
31
|
-
Component: React.ComponentType<{ open: boolean, closeDialog: () => void }>;
|
|
31
|
+
Component: React.ComponentType<{ open: boolean, closeDialog: () => void } & T>;
|
|
32
|
+
/**
|
|
33
|
+
* Props to pass to the dialog component
|
|
34
|
+
*/
|
|
35
|
+
props?: T;
|
|
32
36
|
|
|
33
37
|
}
|
package/src/types/entities.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type EntityStatus = "new" | "existing" | "copy";
|
|
|
8
8
|
* Representation of an entity fetched from the datasource
|
|
9
9
|
* @group Models
|
|
10
10
|
*/
|
|
11
|
-
export interface Entity<M extends object> {
|
|
11
|
+
export interface Entity<M extends object = any> {
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* ID of the entity
|
|
@@ -25,6 +25,8 @@ export interface Entity<M extends object> {
|
|
|
25
25
|
* Current values
|
|
26
26
|
*/
|
|
27
27
|
values: EntityValues<M>;
|
|
28
|
+
|
|
29
|
+
databaseId?: string;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
/**
|
|
@@ -37,7 +39,7 @@ export type EntityValues<M extends object> = M;
|
|
|
37
39
|
/**
|
|
38
40
|
* Class used to create a reference to an entity in a different path
|
|
39
41
|
*/
|
|
40
|
-
export class EntityReference
|
|
42
|
+
export class EntityReference {
|
|
41
43
|
/**
|
|
42
44
|
* ID of the entity
|
|
43
45
|
*/
|
|
@@ -78,3 +80,11 @@ export class GeoPoint {
|
|
|
78
80
|
this.longitude = longitude;
|
|
79
81
|
}
|
|
80
82
|
}
|
|
83
|
+
|
|
84
|
+
export class Vector {
|
|
85
|
+
readonly value: number[];
|
|
86
|
+
|
|
87
|
+
constructor(value: number[]) {
|
|
88
|
+
this.value = value;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -4,12 +4,37 @@ import { Entity } from "./entities";
|
|
|
4
4
|
import { EntityCollection, SelectionController } from "./collections";
|
|
5
5
|
import { User } from "./user";
|
|
6
6
|
import { SideEntityController } from "./side_entity_controller";
|
|
7
|
-
import { EntityOverrides } from "./entity_overrides";
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* An entity action is a custom action that can be performed on an entity.
|
|
10
|
+
* They are displayed in the entity view and in the collection view.
|
|
11
|
+
*/
|
|
12
|
+
export type EntityAction<M extends object = any, USER extends User = User> = {
|
|
13
|
+
/**
|
|
14
|
+
* Title of the action
|
|
15
|
+
*/
|
|
10
16
|
name: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Key of the action. You only need to provide this if you want to
|
|
20
|
+
* override the default actions.
|
|
21
|
+
* The default actions are:
|
|
22
|
+
* - edit
|
|
23
|
+
* - delete
|
|
24
|
+
* - copy
|
|
25
|
+
*/
|
|
26
|
+
key?: string;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Icon of the action
|
|
30
|
+
*/
|
|
11
31
|
icon?: React.ReactElement;
|
|
12
|
-
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Callback when the action is clicked
|
|
35
|
+
* @param props
|
|
36
|
+
*/
|
|
37
|
+
onClick: (props: EntityActionClickProps<M, USER>) => Promise<void> | void;
|
|
13
38
|
|
|
14
39
|
/**
|
|
15
40
|
* Show this action collapsed in the menu of the collection view.
|
|
@@ -25,11 +50,9 @@ export type EntityAction<M extends object = any, UserType extends User = User> =
|
|
|
25
50
|
|
|
26
51
|
}
|
|
27
52
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
export type EntityActionClickProps<M extends object, UserType extends User = User> = {
|
|
53
|
+
export type EntityActionClickProps<M extends object, USER extends User = User> = {
|
|
31
54
|
entity: Entity<M>;
|
|
32
|
-
context: FireCMSContext<
|
|
55
|
+
context: FireCMSContext<USER>;
|
|
33
56
|
fullPath?: string;
|
|
34
57
|
collection?: EntityCollection<M>;
|
|
35
58
|
selectionController?: SelectionController;
|
|
@@ -40,4 +63,6 @@ export type EntityActionClickProps<M extends object, UserType extends User = Use
|
|
|
40
63
|
* If this actions is being called from a side dialog
|
|
41
64
|
*/
|
|
42
65
|
sideEntityController?: SideEntityController;
|
|
66
|
+
|
|
67
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
43
68
|
};
|