@firecms/core 3.0.0-canary.25 → 3.0.0-canary.250
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +34 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +31 -12
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +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 +2 -15
- package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
- package/dist/components/HomePage/NavigationCard.d.ts +3 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +4 -3
- package/dist/components/HomePage/NavigationGroup.d.ts +7 -1
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +3 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +14 -4
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -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/field_configs.d.ts +1 -1
- 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/ReferenceAsStringFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -13
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/index.d.ts +17 -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 +57 -13
- 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 +22839 -13875
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +25639 -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/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +106 -24
- 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 +8 -3
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +61 -18
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +48 -12
- package/dist/types/properties.d.ts +80 -24
- package/dist/types/property_config.d.ts +1 -3
- 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 +75 -0
- 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 +64 -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 +447 -229
- 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 +72 -42
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +32 -37
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +231 -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 +486 -159
- package/src/components/HomePage/FavouritesView.tsx +9 -14
- package/src/components/HomePage/HomePageDnD.tsx +613 -0
- package/src/components/HomePage/NavigationCard.tsx +48 -39
- package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
- package/src/components/HomePage/NavigationGroup.tsx +63 -29
- package/src/components/HomePage/RenameGroupDialog.tsx +113 -0
- 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 +105 -51
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +28 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/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 +408 -478
- package/src/core/EntityEditViewFormActions.tsx +199 -0
- package/src/core/EntitySidePanel.tsx +85 -21
- package/src/core/FireCMS.tsx +72 -58
- 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 +26 -13
- 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 +88 -45
- package/src/form/components/CustomIdField.tsx +9 -3
- 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 +50 -36
- 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 +73 -55
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +157 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +265 -202
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/index.tsx +17 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +13 -23
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +26 -33
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/index.tsx +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 +440 -119
- 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 -77
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +34 -25
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +26 -37
- package/src/preview/components/ReferencePreview.tsx +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/analytics.ts +3 -0
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +128 -29
- 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 +9 -4
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +76 -23
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +57 -14
- package/src/types/properties.ts +95 -26
- package/src/types/property_config.tsx +1 -2
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +11 -1
- package/src/types/storage.ts +83 -1
- 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 +21 -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 +90 -33
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +17 -6
- package/src/util/references.ts +19 -8
- package/src/util/resolutions.ts +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/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
- package/dist/components/FireCMSAppBar.d.ts +0 -26
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -55
- package/dist/core/SideEntityView.d.ts +0 -7
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
- package/src/components/FireCMSAppBar.tsx +0 -165
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
- package/src/core/Drawer.tsx +0 -191
- package/src/core/Scaffold.tsx +0 -281
- package/src/core/SideEntityView.tsx +0 -38
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
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
|
* @group Datasource
|
|
6
7
|
*/
|
|
7
8
|
export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
8
9
|
path: string;
|
|
9
10
|
entityId: string;
|
|
11
|
+
databaseId?: string;
|
|
10
12
|
collection?: EntityCollection<M, any>;
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
@@ -52,11 +54,11 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
|
52
54
|
*/
|
|
53
55
|
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
54
56
|
entity: Entity<M>;
|
|
57
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
60
|
+
* Component in charge of communicating with the data source.
|
|
61
|
+
* Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
|
|
60
62
|
* @group Datasource
|
|
61
63
|
*/
|
|
62
64
|
export interface DataSource {
|
|
@@ -97,7 +99,7 @@ export interface DataSource {
|
|
|
97
99
|
* @param entityId
|
|
98
100
|
* @param collection
|
|
99
101
|
*/
|
|
100
|
-
fetchEntity<M extends Record<string, any> = any>({ path, entityId, collection }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
102
|
+
fetchEntity<M extends Record<string, any> = any>({ path, entityId, databaseId, collection }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
101
103
|
/**
|
|
102
104
|
* Get realtime updates on one entity.
|
|
103
105
|
* @param path
|
|
@@ -121,21 +123,21 @@ export interface DataSource {
|
|
|
121
123
|
* @param entity
|
|
122
124
|
* @return was the whole deletion flow successful
|
|
123
125
|
*/
|
|
124
|
-
deleteEntity<M extends Record<string, any> = any>({ entity }: DeleteEntityProps<M>): Promise<void>;
|
|
126
|
+
deleteEntity<M extends Record<string, any> = any>({ entity, collection }: DeleteEntityProps<M>): Promise<void>;
|
|
125
127
|
/**
|
|
126
128
|
* Check if the given property is unique in the given collection
|
|
127
129
|
* @param path Collection path
|
|
128
130
|
* @param name of the property
|
|
129
131
|
* @param value
|
|
130
|
-
* @param
|
|
132
|
+
* @param collection
|
|
131
133
|
* @param entityId
|
|
132
134
|
* @return `true` if there are no other fields besides the given entity
|
|
133
135
|
*/
|
|
134
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
136
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
135
137
|
/**
|
|
136
138
|
* Generate an id for a new entity
|
|
137
139
|
*/
|
|
138
|
-
generateEntityId(path: string): string;
|
|
140
|
+
generateEntityId(path: string, collection: EntityCollection): string;
|
|
139
141
|
/**
|
|
140
142
|
* Count the number of entities in a collection
|
|
141
143
|
*/
|
|
@@ -145,6 +147,17 @@ export interface DataSource {
|
|
|
145
147
|
* @param props
|
|
146
148
|
*/
|
|
147
149
|
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Called when the user clicks on the search bar in a collection view.
|
|
152
|
+
* Useful for initializing a text search index.
|
|
153
|
+
* @param props
|
|
154
|
+
*/
|
|
155
|
+
initTextSearch?: (props: {
|
|
156
|
+
context: FireCMSContext;
|
|
157
|
+
path: string;
|
|
158
|
+
collection: EntityCollection;
|
|
159
|
+
parentCollectionIds?: string[];
|
|
160
|
+
}) => Promise<boolean>;
|
|
148
161
|
}
|
|
149
162
|
export type FilterCombinationValidProps = {
|
|
150
163
|
path: string;
|
|
@@ -152,14 +165,18 @@ export type FilterCombinationValidProps = {
|
|
|
152
165
|
filterValues: FilterValues<any>;
|
|
153
166
|
sortBy?: [string, "asc" | "desc"];
|
|
154
167
|
};
|
|
155
|
-
export type SaveEntityDelegateProps<M extends Record<string, any> = any> =
|
|
156
|
-
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
157
|
-
|
|
158
|
-
};
|
|
159
|
-
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M> & {
|
|
160
|
-
isCollectionGroup?: boolean;
|
|
161
|
-
};
|
|
168
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
|
|
169
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
|
|
170
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
|
|
162
171
|
export interface DataSourceDelegate {
|
|
172
|
+
/**
|
|
173
|
+
* Key that identifies this data source delegate
|
|
174
|
+
*/
|
|
175
|
+
key: string;
|
|
176
|
+
/**
|
|
177
|
+
* If the data source has been initialised
|
|
178
|
+
*/
|
|
179
|
+
initialised?: boolean;
|
|
163
180
|
/**
|
|
164
181
|
* Fetch data from a collection
|
|
165
182
|
* @param path
|
|
@@ -194,7 +211,7 @@ export interface DataSourceDelegate {
|
|
|
194
211
|
* @param path
|
|
195
212
|
* @param entityId
|
|
196
213
|
*/
|
|
197
|
-
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }:
|
|
214
|
+
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
198
215
|
/**
|
|
199
216
|
* Get realtime updates on one entity.
|
|
200
217
|
* @param path
|
|
@@ -204,12 +221,12 @@ export interface DataSourceDelegate {
|
|
|
204
221
|
* @param onError
|
|
205
222
|
* @return Function to cancel subscription
|
|
206
223
|
*/
|
|
207
|
-
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }:
|
|
224
|
+
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }: ListenEntityProps<M>): () => void;
|
|
208
225
|
/**
|
|
209
226
|
* Save entity to the specified path
|
|
210
227
|
* @param path
|
|
211
|
-
* @param
|
|
212
|
-
* @param
|
|
228
|
+
* @param entityId
|
|
229
|
+
* @param values
|
|
213
230
|
* @param status
|
|
214
231
|
*/
|
|
215
232
|
saveEntity<M extends Record<string, any> = any>({ path, entityId, values, status }: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
|
|
@@ -225,13 +242,14 @@ export interface DataSourceDelegate {
|
|
|
225
242
|
* @param name of the property
|
|
226
243
|
* @param value
|
|
227
244
|
* @param entityId
|
|
245
|
+
* @param collection
|
|
228
246
|
* @return `true` if there are no other fields besides the given entity
|
|
229
247
|
*/
|
|
230
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
248
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
231
249
|
/**
|
|
232
250
|
* Generate an id for a new entity
|
|
233
251
|
*/
|
|
234
|
-
generateEntityId(path: string): string;
|
|
252
|
+
generateEntityId(path: string, collection?: EntityCollection): string;
|
|
235
253
|
/**
|
|
236
254
|
* Count the number of entities in a collection
|
|
237
255
|
*/
|
|
@@ -240,23 +258,21 @@ export interface DataSourceDelegate {
|
|
|
240
258
|
* Check if the given filter combination is valid
|
|
241
259
|
* @param props
|
|
242
260
|
*/
|
|
243
|
-
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
* @param reference
|
|
247
|
-
*/
|
|
248
|
-
buildReference: (reference: EntityReference) => any;
|
|
249
|
-
/**
|
|
250
|
-
* Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
|
|
251
|
-
* @param geoPoint
|
|
252
|
-
*/
|
|
253
|
-
buildGeoPoint: (geoPoint: GeoPoint) => any;
|
|
261
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
262
|
+
databaseId?: string;
|
|
263
|
+
}): boolean;
|
|
254
264
|
/**
|
|
255
265
|
* Get the object to generate the current time in the datasource
|
|
256
266
|
*/
|
|
257
|
-
currentTime()
|
|
258
|
-
buildDate: (date: Date) => any;
|
|
259
|
-
buildDeleteFieldValue: () => any;
|
|
267
|
+
currentTime?: () => any;
|
|
260
268
|
delegateToCMSModel: (data: any) => any;
|
|
269
|
+
cmsToDelegateModel: (data: any) => any;
|
|
261
270
|
setDateToMidnight: (input?: any) => any;
|
|
271
|
+
initTextSearch?: (props: {
|
|
272
|
+
context: FireCMSContext;
|
|
273
|
+
path: string;
|
|
274
|
+
databaseId?: string;
|
|
275
|
+
collection: EntityCollection;
|
|
276
|
+
parentCollectionIds?: string[];
|
|
277
|
+
}) => Promise<boolean>;
|
|
262
278
|
}
|
|
@@ -12,7 +12,7 @@ export interface DialogsController {
|
|
|
12
12
|
* Open a dialog
|
|
13
13
|
* @param props
|
|
14
14
|
*/
|
|
15
|
-
open: (props: DialogControllerEntryProps) => {
|
|
15
|
+
open: <T extends object = object>(props: DialogControllerEntryProps<T>) => {
|
|
16
16
|
closeDialog: () => void;
|
|
17
17
|
};
|
|
18
18
|
}
|
|
@@ -20,7 +20,7 @@ export interface DialogsController {
|
|
|
20
20
|
* Props used to open a side dialog
|
|
21
21
|
* @group Hooks and utilities
|
|
22
22
|
*/
|
|
23
|
-
export interface DialogControllerEntryProps {
|
|
23
|
+
export interface DialogControllerEntryProps<T extends object = object> {
|
|
24
24
|
key: string;
|
|
25
25
|
/**
|
|
26
26
|
* The component type that will be rendered
|
|
@@ -28,5 +28,9 @@ export interface DialogControllerEntryProps {
|
|
|
28
28
|
Component: React.ComponentType<{
|
|
29
29
|
open: boolean;
|
|
30
30
|
closeDialog: () => void;
|
|
31
|
-
}>;
|
|
31
|
+
} & T>;
|
|
32
|
+
/**
|
|
33
|
+
* Props to pass to the dialog component
|
|
34
|
+
*/
|
|
35
|
+
props?: T;
|
|
32
36
|
}
|
package/dist/types/entities.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type EntityStatus = "new" | "existing" | "copy";
|
|
|
7
7
|
* Representation of an entity fetched from the datasource
|
|
8
8
|
* @group Models
|
|
9
9
|
*/
|
|
10
|
-
export interface Entity<M extends object> {
|
|
10
|
+
export interface Entity<M extends object = any> {
|
|
11
11
|
/**
|
|
12
12
|
* ID of the entity
|
|
13
13
|
*/
|
|
@@ -21,6 +21,7 @@ export interface Entity<M extends object> {
|
|
|
21
21
|
* Current values
|
|
22
22
|
*/
|
|
23
23
|
values: EntityValues<M>;
|
|
24
|
+
databaseId?: string;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* This type represents a record of key value pairs as described in an
|
|
@@ -31,7 +32,7 @@ export type EntityValues<M extends object> = M;
|
|
|
31
32
|
/**
|
|
32
33
|
* Class used to create a reference to an entity in a different path
|
|
33
34
|
*/
|
|
34
|
-
export declare class EntityReference
|
|
35
|
+
export declare class EntityReference {
|
|
35
36
|
/**
|
|
36
37
|
* ID of the entity
|
|
37
38
|
*/
|
|
@@ -56,3 +57,7 @@ export declare class GeoPoint {
|
|
|
56
57
|
readonly longitude: number;
|
|
57
58
|
constructor(latitude: number, longitude: number);
|
|
58
59
|
}
|
|
60
|
+
export declare class Vector {
|
|
61
|
+
readonly value: number[];
|
|
62
|
+
constructor(value: number[]);
|
|
63
|
+
}
|
|
@@ -4,10 +4,33 @@ 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
|
-
|
|
7
|
+
/**
|
|
8
|
+
* An entity action is a custom action that can be performed on an entity.
|
|
9
|
+
* They are displayed in the entity view and in the collection view.
|
|
10
|
+
*/
|
|
11
|
+
export type EntityAction<M extends object = any, USER extends User = User> = {
|
|
12
|
+
/**
|
|
13
|
+
* Title of the action
|
|
14
|
+
*/
|
|
8
15
|
name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Key of the action. You only need to provide this if you want to
|
|
18
|
+
* override the default actions.
|
|
19
|
+
* The default actions are:
|
|
20
|
+
* - edit
|
|
21
|
+
* - delete
|
|
22
|
+
* - copy
|
|
23
|
+
*/
|
|
24
|
+
key?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Icon of the action
|
|
27
|
+
*/
|
|
9
28
|
icon?: React.ReactElement;
|
|
10
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Callback when the action is clicked
|
|
31
|
+
* @param props
|
|
32
|
+
*/
|
|
33
|
+
onClick: (props: EntityActionClickProps<M, USER>) => Promise<void> | void;
|
|
11
34
|
/**
|
|
12
35
|
* Show this action collapsed in the menu of the collection view.
|
|
13
36
|
* Defaults to true
|
|
@@ -19,9 +42,9 @@ export type EntityAction<M extends object = any, UserType extends User = User> =
|
|
|
19
42
|
*/
|
|
20
43
|
includeInForm?: boolean;
|
|
21
44
|
};
|
|
22
|
-
export type EntityActionClickProps<M extends object,
|
|
45
|
+
export type EntityActionClickProps<M extends object, USER extends User = User> = {
|
|
23
46
|
entity: Entity<M>;
|
|
24
|
-
context: FireCMSContext<
|
|
47
|
+
context: FireCMSContext<USER>;
|
|
25
48
|
fullPath?: string;
|
|
26
49
|
collection?: EntityCollection<M>;
|
|
27
50
|
selectionController?: SelectionController;
|
|
@@ -32,4 +55,5 @@ export type EntityActionClickProps<M extends object, UserType extends User = Use
|
|
|
32
55
|
* If this actions is being called from a side dialog
|
|
33
56
|
*/
|
|
34
57
|
sideEntityController?: SideEntityController;
|
|
58
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
35
59
|
};
|
|
@@ -9,29 +9,29 @@ import { User } from "./user";
|
|
|
9
9
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
10
10
|
* @group Models
|
|
11
11
|
*/
|
|
12
|
-
export type EntityCallbacks<M extends Record<string, any> = any,
|
|
12
|
+
export type EntityCallbacks<M extends Record<string, any> = any, USER extends User = User> = {
|
|
13
13
|
/**
|
|
14
14
|
* Callback used after fetching data
|
|
15
15
|
* @param entityFetchProps
|
|
16
16
|
*/
|
|
17
|
-
onFetch?(entityFetchProps: EntityOnFetchProps<M,
|
|
17
|
+
onFetch?(entityFetchProps: EntityOnFetchProps<M, USER>): Promise<Entity<M>> | Entity<M>;
|
|
18
18
|
/**
|
|
19
19
|
* Callback used when save is successful
|
|
20
20
|
* @param entitySaveProps
|
|
21
21
|
*/
|
|
22
|
-
onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M,
|
|
22
|
+
onSaveSuccess?(entitySaveProps: EntityOnSaveProps<M, USER>): Promise<void> | void;
|
|
23
23
|
/**
|
|
24
24
|
* Callback used when saving fails
|
|
25
25
|
* @param entitySaveProps
|
|
26
26
|
*/
|
|
27
|
-
onSaveFailure?(entitySaveProps: EntityOnSaveFailureProps<M,
|
|
27
|
+
onSaveFailure?(entitySaveProps: EntityOnSaveFailureProps<M, USER>): Promise<void> | void;
|
|
28
28
|
/**
|
|
29
29
|
* Callback used before saving, you need to return the values that will get
|
|
30
30
|
* saved. If you throw an error in this method the process stops, and an
|
|
31
31
|
* error snackbar gets displayed.
|
|
32
32
|
* @param entitySaveProps
|
|
33
33
|
*/
|
|
34
|
-
onPreSave?(entitySaveProps: EntityOnPreSaveProps<M,
|
|
34
|
+
onPreSave?(entitySaveProps: EntityOnPreSaveProps<M, USER>): Promise<Partial<EntityValues<M>>> | Partial<EntityValues<M>>;
|
|
35
35
|
/**
|
|
36
36
|
* Callback used after the entity is deleted.
|
|
37
37
|
* If you throw an error in this method the process stops, and an
|
|
@@ -39,13 +39,13 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
39
39
|
*
|
|
40
40
|
* @param entityDeleteProps
|
|
41
41
|
*/
|
|
42
|
-
onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M,
|
|
42
|
+
onPreDelete?(entityDeleteProps: EntityOnDeleteProps<M, USER>): void;
|
|
43
43
|
/**
|
|
44
44
|
* Callback used after the entity is deleted.
|
|
45
45
|
*
|
|
46
46
|
* @param entityDeleteProps
|
|
47
47
|
*/
|
|
48
|
-
onDelete?(entityDeleteProps: EntityOnDeleteProps<M,
|
|
48
|
+
onDelete?(entityDeleteProps: EntityOnDeleteProps<M, USER>): void;
|
|
49
49
|
/**
|
|
50
50
|
* Callback fired when any value in the form changes. You can use it
|
|
51
51
|
* to define the ID of a `new` entity based on the current values.
|
|
@@ -59,11 +59,11 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
59
59
|
* Parameters passed to hooks when an entity is fetched
|
|
60
60
|
* @group Models
|
|
61
61
|
*/
|
|
62
|
-
export interface EntityOnFetchProps<M extends Record<string, any> = any,
|
|
62
|
+
export interface EntityOnFetchProps<M extends Record<string, any> = any, USER extends User = User> {
|
|
63
63
|
/**
|
|
64
64
|
* Collection of the entity
|
|
65
65
|
*/
|
|
66
|
-
collection: EntityCollection<M,
|
|
66
|
+
collection: EntityCollection<M, USER>;
|
|
67
67
|
/**
|
|
68
68
|
* Full path of the CMS where this collection is being fetched.
|
|
69
69
|
* Might contain unresolved aliases.
|
|
@@ -76,27 +76,27 @@ export interface EntityOnFetchProps<M extends Record<string, any> = any, UserTyp
|
|
|
76
76
|
/**
|
|
77
77
|
* Context of the app status
|
|
78
78
|
*/
|
|
79
|
-
context: FireCMSContext<
|
|
79
|
+
context: FireCMSContext<USER>;
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
82
|
* Parameters passed to hooks before an entity is saved
|
|
83
83
|
* @group Models
|
|
84
84
|
*/
|
|
85
|
-
export type EntityOnPreSaveProps<M extends Record<string, any> = any,
|
|
85
|
+
export type EntityOnPreSaveProps<M extends Record<string, any> = any, USER extends User = User> = Omit<EntityOnSaveProps<M, USER>, "entityId"> & {
|
|
86
86
|
entityId?: string;
|
|
87
87
|
};
|
|
88
88
|
/**
|
|
89
89
|
* Parameters passed to hooks before an entity is saved
|
|
90
90
|
* @group Models
|
|
91
91
|
*/
|
|
92
|
-
export type EntityOnSaveFailureProps<M extends Record<string, any> = any,
|
|
92
|
+
export type EntityOnSaveFailureProps<M extends Record<string, any> = any, USER extends User = User> = Omit<EntityOnSaveProps<M, USER>, "entityId"> & {
|
|
93
93
|
entityId?: string;
|
|
94
94
|
};
|
|
95
95
|
/**
|
|
96
96
|
* Parameters passed to hooks when an entity is saved
|
|
97
97
|
* @group Models
|
|
98
98
|
*/
|
|
99
|
-
export interface EntityOnSaveProps<M extends Record<string, any> = any,
|
|
99
|
+
export interface EntityOnSaveProps<M extends Record<string, any> = any, USER extends User = User> {
|
|
100
100
|
/**
|
|
101
101
|
* Resolved collection of the entity
|
|
102
102
|
*/
|
|
@@ -129,13 +129,13 @@ export interface EntityOnSaveProps<M extends Record<string, any> = any, UserType
|
|
|
129
129
|
/**
|
|
130
130
|
* Context of the app status
|
|
131
131
|
*/
|
|
132
|
-
context: FireCMSContext<
|
|
132
|
+
context: FireCMSContext<USER>;
|
|
133
133
|
}
|
|
134
134
|
/**
|
|
135
135
|
* Parameters passed to hooks when an entity is deleted
|
|
136
136
|
* @group Models
|
|
137
137
|
*/
|
|
138
|
-
export interface EntityOnDeleteProps<M extends Record<string, any> = any,
|
|
138
|
+
export interface EntityOnDeleteProps<M extends Record<string, any> = any, USER extends User = User> {
|
|
139
139
|
/**
|
|
140
140
|
* collection of the entity being deleted
|
|
141
141
|
*/
|
|
@@ -155,7 +155,7 @@ export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserTy
|
|
|
155
155
|
/**
|
|
156
156
|
* Context of the app status
|
|
157
157
|
*/
|
|
158
|
-
context: FireCMSContext<
|
|
158
|
+
context: FireCMSContext<USER>;
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
161
|
* Parameters passed to hooks when an entity is deleted
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataSourceDelegate } from "./datasource";
|
|
2
2
|
import { StorageSource } from "./storage";
|
|
3
3
|
export type EntityOverrides = {
|
|
4
|
-
|
|
4
|
+
dataSourceDelegate?: DataSourceDelegate;
|
|
5
5
|
storageSource?: StorageSource;
|
|
6
6
|
};
|
|
@@ -6,16 +6,16 @@ import { FireCMSContext } from "./firecms_context";
|
|
|
6
6
|
* exports
|
|
7
7
|
* @group Models
|
|
8
8
|
*/
|
|
9
|
-
export interface ExportConfig<
|
|
10
|
-
additionalFields: ExportMappingFunction<
|
|
9
|
+
export interface ExportConfig<USER extends User = User> {
|
|
10
|
+
additionalFields: ExportMappingFunction<USER>[];
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* @group Models
|
|
14
14
|
*/
|
|
15
|
-
export interface ExportMappingFunction<
|
|
15
|
+
export interface ExportMappingFunction<USER extends User = User> {
|
|
16
16
|
key: string;
|
|
17
17
|
builder: ({ entity, context }: {
|
|
18
18
|
entity: Entity<any>;
|
|
19
|
-
context: FireCMSContext<
|
|
19
|
+
context: FireCMSContext<USER>;
|
|
20
20
|
}) => Promise<string> | string;
|
|
21
21
|
}
|
package/dist/types/fields.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CMSType, PropertyOrBuilder } from "./properties";
|
|
1
|
+
import { CMSType, Property, PropertyOrBuilder } from "./properties";
|
|
3
2
|
import { ResolvedEntityCollection, ResolvedProperty } from "./resolved_entities";
|
|
3
|
+
import { FormexController } from "@firecms/formex";
|
|
4
|
+
import { Entity } from "./entities";
|
|
4
5
|
/**
|
|
5
6
|
* When building a custom field you need to create a React component that takes
|
|
6
7
|
* this interface as props.
|
|
@@ -17,9 +18,6 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
17
18
|
* Current value of this field
|
|
18
19
|
*/
|
|
19
20
|
value: T;
|
|
20
|
-
/**
|
|
21
|
-
* Initial value of this field
|
|
22
|
-
*/
|
|
23
21
|
/**
|
|
24
22
|
* Set value of field directly
|
|
25
23
|
*/
|
|
@@ -34,53 +32,50 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
34
32
|
/**
|
|
35
33
|
* Is the form currently submitting
|
|
36
34
|
*/
|
|
37
|
-
isSubmitting
|
|
35
|
+
isSubmitting?: boolean;
|
|
38
36
|
/**
|
|
39
37
|
* Should this field show the error indicator.
|
|
40
38
|
* Note that there might be an error (like an empty field that should be
|
|
41
39
|
* filled) but we don't want to show the error until the user has tried
|
|
42
40
|
* saving.
|
|
43
41
|
*/
|
|
44
|
-
showError
|
|
42
|
+
showError?: boolean;
|
|
45
43
|
/**
|
|
46
44
|
* Is there an error in this field. The error field has the same shape as
|
|
47
45
|
* the field, replacing values with a string containing the error.
|
|
48
46
|
* It takes the value `null` if there is no error
|
|
49
47
|
*/
|
|
50
|
-
error
|
|
48
|
+
error?: any | null;
|
|
51
49
|
/**
|
|
52
50
|
* Has this field been touched
|
|
53
51
|
*/
|
|
54
|
-
touched
|
|
52
|
+
touched?: boolean;
|
|
55
53
|
/**
|
|
56
54
|
* Property related to this field
|
|
57
55
|
*/
|
|
58
|
-
property: ResolvedProperty<T>;
|
|
56
|
+
property: Property<T> | ResolvedProperty<T>;
|
|
59
57
|
/**
|
|
60
58
|
* Should this field include a description
|
|
61
59
|
*/
|
|
62
|
-
includeDescription
|
|
60
|
+
includeDescription?: boolean;
|
|
63
61
|
/**
|
|
64
62
|
* Flag to indicate that the underlying value has been updated in the
|
|
65
63
|
* datasource
|
|
66
64
|
*/
|
|
67
|
-
underlyingValueHasChanged
|
|
65
|
+
underlyingValueHasChanged?: boolean;
|
|
68
66
|
/**
|
|
69
67
|
* Is this field part of an array
|
|
70
68
|
*/
|
|
71
|
-
partOfArray
|
|
72
|
-
/**
|
|
73
|
-
* Is this field part of a block (oneOf array)
|
|
74
|
-
*/
|
|
75
|
-
partOfBlock: boolean;
|
|
69
|
+
partOfArray?: boolean;
|
|
76
70
|
/**
|
|
77
|
-
*
|
|
71
|
+
* Display the child properties directly, without being wrapped in an
|
|
72
|
+
* extendable panel. Note that this will also hide the title of this property.
|
|
78
73
|
*/
|
|
79
|
-
|
|
74
|
+
minimalistView?: boolean;
|
|
80
75
|
/**
|
|
81
76
|
* Should this field autofocus on mount
|
|
82
77
|
*/
|
|
83
|
-
autoFocus
|
|
78
|
+
autoFocus?: boolean;
|
|
84
79
|
/**
|
|
85
80
|
* Additional properties set by the developer
|
|
86
81
|
*/
|
|
@@ -92,29 +87,29 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
92
87
|
/**
|
|
93
88
|
* Flag to indicate if this field should be disabled
|
|
94
89
|
*/
|
|
95
|
-
disabled
|
|
90
|
+
disabled?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Size of the field
|
|
93
|
+
*/
|
|
94
|
+
size?: "small" | "medium" | "large";
|
|
95
|
+
/**
|
|
96
|
+
* Some properties might change internal state (like expanding a panel).
|
|
97
|
+
* This function should be called when the internal state changes.
|
|
98
|
+
* This is used to preserve state in array containers.
|
|
99
|
+
*
|
|
100
|
+
* @param property
|
|
101
|
+
*/
|
|
102
|
+
onPropertyChange?: (property: Partial<Property<any>>) => void;
|
|
96
103
|
}
|
|
97
104
|
/**
|
|
98
105
|
* Context passed to custom fields
|
|
99
106
|
* @group Form custom fields
|
|
100
107
|
*/
|
|
101
108
|
export interface FormContext<M extends Record<string, any> = any> {
|
|
102
|
-
/**
|
|
103
|
-
* Collection of the entity being modified
|
|
104
|
-
*/
|
|
105
|
-
collection: ResolvedEntityCollection<M>;
|
|
106
109
|
/**
|
|
107
110
|
* Current values of the entity
|
|
108
111
|
*/
|
|
109
|
-
values:
|
|
110
|
-
/**
|
|
111
|
-
* Entity id, it can be null if it's a new entity
|
|
112
|
-
*/
|
|
113
|
-
entityId?: string;
|
|
114
|
-
/**
|
|
115
|
-
* Path this entity is located at
|
|
116
|
-
*/
|
|
117
|
-
path: string;
|
|
112
|
+
values: M;
|
|
118
113
|
/**
|
|
119
114
|
* Update the value of a field
|
|
120
115
|
* @param key
|
|
@@ -123,9 +118,32 @@ export interface FormContext<M extends Record<string, any> = any> {
|
|
|
123
118
|
*/
|
|
124
119
|
setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
|
|
125
120
|
/**
|
|
126
|
-
* Save the entity
|
|
121
|
+
* Save the entity.
|
|
122
|
+
*/
|
|
123
|
+
save: (values: M) => void;
|
|
124
|
+
/**
|
|
125
|
+
* Collection of the entity being modified
|
|
127
126
|
*/
|
|
128
|
-
|
|
127
|
+
collection?: ResolvedEntityCollection<M>;
|
|
128
|
+
/**
|
|
129
|
+
* Entity id, it can be null if it's a new entity
|
|
130
|
+
*/
|
|
131
|
+
entityId: string;
|
|
132
|
+
/**
|
|
133
|
+
* Path this entity is located at
|
|
134
|
+
*/
|
|
135
|
+
path?: string;
|
|
136
|
+
status: "new" | "existing" | "copy";
|
|
137
|
+
entity?: Entity<M>;
|
|
138
|
+
savingError?: Error;
|
|
139
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
140
|
+
/**
|
|
141
|
+
* This is the underlying formex controller that powers the form.
|
|
142
|
+
* If you are in a red only mode, the formex controller is there, but you can't
|
|
143
|
+
* operate with it
|
|
144
|
+
*/
|
|
145
|
+
formex: FormexController<M>;
|
|
146
|
+
disabled: boolean;
|
|
129
147
|
}
|
|
130
148
|
/**
|
|
131
149
|
* In case you need to render a field bound to a Property inside your
|
|
@@ -156,18 +174,15 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
156
174
|
* field is being edited
|
|
157
175
|
*/
|
|
158
176
|
underlyingValueHasChanged?: boolean;
|
|
159
|
-
/**
|
|
160
|
-
* Is this field being rendered in a table
|
|
161
|
-
*/
|
|
162
|
-
tableMode?: boolean;
|
|
163
177
|
/**
|
|
164
178
|
* Is this field part of an array
|
|
165
179
|
*/
|
|
166
180
|
partOfArray?: boolean;
|
|
167
181
|
/**
|
|
168
|
-
*
|
|
182
|
+
* Display the child properties directly, without being wrapped in an
|
|
183
|
+
* extendable panel. Note that this will also hide the title of this property.
|
|
169
184
|
*/
|
|
170
|
-
|
|
185
|
+
minimalistView?: boolean;
|
|
171
186
|
/**
|
|
172
187
|
* Should the field take focus when rendered. When opening the popup view
|
|
173
188
|
* in table mode, it makes sense to put the focus on the only field rendered.
|
|
@@ -177,4 +192,21 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
177
192
|
* Should this field be disabled
|
|
178
193
|
*/
|
|
179
194
|
disabled?: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Index of the field in the array.
|
|
197
|
+
* Only used when the field is part of an array.
|
|
198
|
+
*/
|
|
199
|
+
index?: number;
|
|
200
|
+
/**
|
|
201
|
+
* The size of the field
|
|
202
|
+
*/
|
|
203
|
+
size?: "small" | "medium" | "large";
|
|
204
|
+
/**
|
|
205
|
+
* Some properties might change internal state (like expanding a panel).
|
|
206
|
+
* This function should be called when the internal state changes.
|
|
207
|
+
* This is used to preserve state in array containers.
|
|
208
|
+
*
|
|
209
|
+
* @param property
|
|
210
|
+
*/
|
|
211
|
+
onPropertyChange?: (property: Partial<Property<any>>) => void;
|
|
180
212
|
}
|