@firecms/core 3.0.0-beta.1 → 3.0.0-beta.11
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 +6 -7
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +30 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +19 -8
- 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 -18
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -5
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +9 -15
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +3 -2
- 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 +2 -4
- 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 +8 -5
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +13 -4
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +26 -7
- package/dist/components/EntityView.d.ts +11 -0
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/FieldCaption.d.ts +5 -0
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/NavigationCard.d.ts +8 -0
- package/dist/components/HomePage/{NavigationCollectionCard.d.ts → NavigationCardBinding.d.ts} +3 -3
- package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
- package/dist/components/HomePage/index.d.ts +3 -1
- package/dist/components/{FieldConfigBadge.d.ts → PropertyConfigBadge.d.ts} +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/{ReferenceSelectionInner.d.ts → ReferenceTable/ReferenceSelectionTable.d.ts} +2 -2
- package/dist/components/ReferenceWidget.d.ts +6 -4
- package/dist/components/{EntityCollectionTable/SimpleEntityCollectionTable.d.ts → SelectableTable/SelectableTable.d.ts} +8 -28
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
- package/dist/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +16 -13
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
- package/dist/components/common/index.d.ts +6 -0
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/{EntityCollectionTable → common}/types.d.ts +11 -6
- package/dist/components/{EntityCollectionView → common}/useColumnsIds.d.ts +2 -1
- package/dist/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.d.ts +5 -2
- package/dist/components/common/useTableSearchHelper.d.ts +12 -0
- package/dist/components/index.d.ts +14 -8
- package/dist/contexts/AuthControllerContext.d.ts +1 -1
- package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +36 -0
- package/dist/core/FireCMS.d.ts +2 -2
- package/dist/core/NavigationRoutes.d.ts +3 -3
- package/dist/core/index.d.ts +3 -6
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/CustomIdField.d.ts +2 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/{components → form/components}/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -3
- package/dist/form/components/StorageUploadProgress.d.ts +1 -1
- package/dist/form/components/index.d.ts +2 -2
- 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 -4
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -2
- package/dist/form/index.d.ts +4 -5
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/form/validation.d.ts +1 -1
- 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/useDataSource.d.ts +2 -2
- package/dist/hooks/data/useEntityFetch.d.ts +3 -3
- package/dist/hooks/index.d.ts +5 -1
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/{core → hooks}/useBuildModeController.d.ts +1 -1
- package/dist/hooks/useBuildNavigationController.d.ts +23 -0
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useProjectLog.d.ts +14 -0
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useSnackbarController.d.ts +1 -0
- package/dist/hooks/useStorageSource.d.ts +2 -2
- package/dist/hooks/useValidateAuthenticator.d.ts +21 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +20246 -13863
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +22772 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -12
- package/dist/preview/PropertyPreview.d.ts +1 -1
- package/dist/preview/PropertyPreviewProps.d.ts +7 -5
- package/dist/preview/components/BooleanPreview.d.ts +5 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +4 -9
- 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/types/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +37 -3
- package/dist/types/collections.d.ts +68 -20
- package/dist/types/datasource.d.ts +55 -39
- package/dist/types/entities.d.ts +7 -1
- package/dist/types/entity_actions.d.ts +18 -4
- package/dist/types/entity_callbacks.d.ts +17 -17
- package/dist/types/entity_overrides.d.ts +6 -0
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +63 -42
- package/dist/types/firecms.d.ts +10 -25
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/navigation.d.ts +18 -16
- package/dist/types/permissions.d.ts +8 -4
- package/dist/types/plugins.d.ts +39 -39
- package/dist/types/properties.d.ts +36 -23
- package/dist/types/property_config.d.ts +2 -4
- package/dist/types/roles.d.ts +31 -0
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +6 -0
- package/dist/util/builders.d.ts +2 -2
- package/dist/util/collections.d.ts +9 -1
- package/dist/util/entities.d.ts +3 -3
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -98
- package/dist/util/icons.d.ts +13 -4
- package/dist/util/index.d.ts +3 -1
- package/dist/util/navigation_utils.d.ts +2 -2
- 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/references.d.ts +4 -2
- package/dist/util/resolutions.d.ts +31 -17
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/strings.d.ts +1 -1
- package/dist/util/useDebouncedCallback.d.ts +1 -0
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/dist/util/useTraceUpdate.d.ts +1 -0
- package/package.json +70 -47
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +243 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +122 -90
- 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 +13 -22
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +51 -59
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +258 -453
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +13 -14
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +60 -52
- package/src/components/EntityCollectionTable/column_utils.tsx +4 -4
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +40 -33
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +22 -20
- package/src/components/EntityCollectionTable/index.tsx +1 -9
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +44 -46
- 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 +191 -178
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +187 -175
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +5 -6
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +43 -0
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityPreview.tsx +218 -72
- package/src/components/EntityView.tsx +84 -0
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/FieldCaption.tsx +14 -0
- package/src/components/HomePage/DefaultHomePage.tsx +39 -28
- package/src/components/HomePage/FavouritesView.tsx +6 -11
- package/src/components/HomePage/NavigationCard.tsx +69 -0
- package/src/components/HomePage/NavigationCardBinding.tsx +111 -0
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/HomePage/SmallNavigationCard.tsx +44 -0
- package/src/components/HomePage/index.tsx +3 -1
- package/src/components/PropertyConfigBadge.tsx +23 -0
- package/src/components/PropertyIdCopyTooltip.tsx +48 -0
- package/src/components/{ReferenceSelectionInner.tsx → ReferenceTable/ReferenceSelectionTable.tsx} +38 -24
- package/src/components/ReferenceWidget.tsx +26 -16
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/{EntityCollectionTable/SimpleEntityCollectionTable.tsx → SelectableTable/SelectableTable.tsx} +46 -84
- package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.tsx +2 -3
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.tsx +40 -24
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.tsx +92 -24
- package/src/components/VirtualTable/VirtualTable.tsx +77 -46
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +19 -13
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +19 -15
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +4 -3
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +4 -3
- 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 +17 -9
- package/src/components/common/index.ts +6 -0
- package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
- package/src/components/{EntityCollectionTable → common}/types.tsx +9 -6
- package/src/components/{EntityCollectionView → common}/useColumnsIds.tsx +23 -2
- package/src/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.tsx +27 -16
- package/src/components/common/useTableSearchHelper.ts +88 -0
- package/src/components/index.tsx +15 -8
- package/src/contexts/AuthControllerContext.tsx +1 -1
- package/src/contexts/DialogsProvider.tsx +2 -2
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +177 -0
- package/src/core/DefaultDrawer.tsx +185 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +1125 -0
- package/src/core/EntitySidePanel.tsx +9 -8
- package/src/core/FireCMS.tsx +71 -63
- package/src/core/NavigationRoutes.tsx +25 -17
- package/src/core/SideDialogs.tsx +2 -1
- package/src/core/field_configs.tsx +22 -23
- package/src/core/index.tsx +3 -6
- package/src/form/PropertyFieldBinding.tsx +79 -45
- package/src/form/components/CustomIdField.tsx +53 -36
- package/src/form/components/ErrorFocus.tsx +3 -3
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/LabelWithIcon.tsx +41 -0
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +23 -11
- package/src/form/components/StorageUploadProgress.tsx +8 -8
- package/src/form/components/index.tsx +2 -2
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -19
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +52 -46
- package/src/form/field_bindings/BlockFieldBinding.tsx +67 -47
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +20 -17
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +76 -67
- package/src/form/field_bindings/MapFieldBinding.tsx +81 -60
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -22
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +12 -18
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +46 -34
- package/src/form/field_bindings/RepeatFieldBinding.tsx +55 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +24 -17
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +42 -43
- package/src/form/field_bindings/SwitchFieldBinding.tsx +30 -27
- package/src/form/field_bindings/TextFieldBinding.tsx +34 -30
- package/src/form/index.tsx +5 -9
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +4 -21
- package/src/hooks/data/delete.ts +7 -6
- package/src/hooks/data/save.ts +12 -8
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +15 -2
- package/src/hooks/data/useEntityFetch.tsx +6 -6
- package/src/hooks/index.tsx +7 -1
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/{core → hooks}/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/{core → hooks}/useBuildModeController.tsx +12 -6
- package/src/{internal → hooks}/useBuildNavigationController.tsx +245 -101
- package/src/hooks/useFireCMSContext.tsx +53 -5
- package/src/hooks/useLargeLayout.tsx +10 -7
- package/src/hooks/useProjectLog.tsx +63 -0
- package/src/hooks/useReferenceDialog.tsx +3 -3
- package/src/hooks/useResolvedNavigationFrom.tsx +6 -6
- package/src/hooks/useSnackbarController.tsx +1 -2
- package/src/hooks/useStorageSource.tsx +7 -2
- package/src/hooks/useValidateAuthenticator.tsx +115 -0
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +80 -85
- package/src/internal/useBuildSideDialogsController.tsx +1 -0
- package/src/internal/useBuildSideEntityController.tsx +103 -23
- package/src/internal/useUnsavedChangesDialog.tsx +5 -3
- package/src/preview/PropertyPreview.tsx +15 -22
- package/src/preview/PropertyPreviewProps.tsx +6 -10
- package/src/preview/components/BooleanPreview.tsx +19 -4
- 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 +73 -176
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +44 -11
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
- package/src/preview/property_previews/MapPropertyPreview.tsx +9 -9
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +8 -7
- package/src/preview/util.ts +10 -10
- package/src/types/analytics.ts +1 -0
- package/src/types/auth.tsx +48 -3
- package/src/types/collections.ts +77 -20
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +64 -47
- package/src/types/entities.ts +15 -1
- package/src/types/entity_actions.tsx +21 -4
- package/src/types/entity_callbacks.ts +20 -19
- package/src/types/entity_overrides.tsx +7 -0
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +69 -45
- package/src/types/firecms.tsx +11 -28
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +2 -1
- package/src/types/navigation.ts +20 -19
- package/src/types/permissions.ts +10 -5
- package/src/types/plugins.tsx +46 -48
- package/src/types/properties.ts +42 -24
- package/src/types/property_config.tsx +2 -4
- package/src/types/roles.ts +41 -0
- package/src/types/side_dialogs_controller.tsx +13 -0
- package/src/types/side_entity_controller.tsx +1 -0
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +9 -0
- package/src/util/builders.ts +6 -6
- package/src/util/collections.ts +22 -0
- package/src/util/entities.ts +9 -6
- 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 +26 -8
- package/src/util/index.ts +3 -1
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_utils.ts +6 -6
- package/src/util/objects.ts +45 -28
- package/src/util/permissions.ts +20 -16
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +11 -4
- package/src/util/references.ts +45 -5
- package/src/util/resolutions.ts +80 -47
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +4 -3
- package/src/util/{useDebounce.ts → useDebouncedCallback.ts} +1 -1
- package/src/util/useStorageUploadController.tsx +34 -8
- package/src/util/useTraceUpdate.tsx +2 -1
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -52
- package/dist/form/EntityForm.d.ts +0 -75
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/components/SubmitListener.d.ts +0 -1
- package/dist/form/components/SwitchControl.d.ts +0 -8
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/hooks/useVerifyLicense.d.ts +0 -0
- package/dist/internal/EntityView.d.ts +0 -22
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useBuildNavigationController.d.ts +0 -14
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/dist/util/useDebounce.d.ts +0 -1
- package/src/components/FieldConfigBadge.tsx +0 -17
- package/src/components/FireCMSAppBar.tsx +0 -157
- package/src/components/HomePage/NavigationCollectionCard.tsx +0 -146
- package/src/components/LabelWithIcon.tsx +0 -33
- package/src/core/Drawer.tsx +0 -162
- package/src/core/Scaffold.tsx +0 -278
- package/src/form/EntityForm.tsx +0 -657
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/components/SubmitListener.tsx +0 -32
- package/src/form/components/SwitchControl.tsx +0 -39
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -696
- package/src/hooks/useVerifyLicense.tsx +0 -1
- package/src/internal/EntityView.tsx +0 -578
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
- /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → common}/useDebouncedData.d.ts +0 -0
- /package/dist/{core → hooks}/useBuildLocalConfigurationPersistence.d.ts +0 -0
- /package/src/components/{EntityCollectionTable → common}/useDebouncedData.ts +0 -0
package/dist/types/entities.d.ts
CHANGED
|
@@ -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
|
*/
|
|
@@ -43,6 +44,7 @@ export declare class EntityReference<M extends Record<string, any> = any> {
|
|
|
43
44
|
readonly path: string;
|
|
44
45
|
constructor(id: string, path: string);
|
|
45
46
|
get pathWithId(): string;
|
|
47
|
+
isEntityReference(): boolean;
|
|
46
48
|
}
|
|
47
49
|
export declare class GeoPoint {
|
|
48
50
|
/**
|
|
@@ -55,3 +57,7 @@ export declare class GeoPoint {
|
|
|
55
57
|
readonly longitude: number;
|
|
56
58
|
constructor(latitude: number, longitude: number);
|
|
57
59
|
}
|
|
60
|
+
export declare class Vector {
|
|
61
|
+
readonly value: number[];
|
|
62
|
+
constructor(value: number[]);
|
|
63
|
+
}
|
|
@@ -4,10 +4,24 @@ 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
|
+
* Icon of the action
|
|
18
|
+
*/
|
|
9
19
|
icon?: React.ReactElement;
|
|
10
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Callback when the action is clicked
|
|
22
|
+
* @param props
|
|
23
|
+
*/
|
|
24
|
+
onClick: (props: EntityActionClickProps<M, USER>) => Promise<void> | void;
|
|
11
25
|
/**
|
|
12
26
|
* Show this action collapsed in the menu of the collection view.
|
|
13
27
|
* Defaults to true
|
|
@@ -19,9 +33,9 @@ export type EntityAction<M extends object = any, UserType extends User = User> =
|
|
|
19
33
|
*/
|
|
20
34
|
includeInForm?: boolean;
|
|
21
35
|
};
|
|
22
|
-
export type EntityActionClickProps<M extends object,
|
|
36
|
+
export type EntityActionClickProps<M extends object, USER extends User = User> = {
|
|
23
37
|
entity: Entity<M>;
|
|
24
|
-
context: FireCMSContext<
|
|
38
|
+
context: FireCMSContext<USER>;
|
|
25
39
|
fullPath?: string;
|
|
26
40
|
collection?: EntityCollection<M>;
|
|
27
41
|
selectionController?: SelectionController;
|
|
@@ -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.
|
|
@@ -53,17 +53,17 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
53
53
|
*
|
|
54
54
|
* @param idUpdateProps
|
|
55
55
|
*/
|
|
56
|
-
onIdUpdate?(idUpdateProps: EntityIdUpdateProps<M>): string
|
|
56
|
+
onIdUpdate?(idUpdateProps: EntityIdUpdateProps<M>): string | Promise<string>;
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
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
|
|
@@ -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,6 @@
|
|
|
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
4
|
/**
|
|
5
5
|
* When building a custom field you need to create a React component that takes
|
|
6
6
|
* this interface as props.
|
|
@@ -17,10 +17,6 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
17
17
|
* Current value of this field
|
|
18
18
|
*/
|
|
19
19
|
value: T;
|
|
20
|
-
/**
|
|
21
|
-
* Initial value of this field
|
|
22
|
-
*/
|
|
23
|
-
initialValue: T | undefined;
|
|
24
20
|
/**
|
|
25
21
|
* Set value of field directly
|
|
26
22
|
*/
|
|
@@ -35,53 +31,49 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
35
31
|
/**
|
|
36
32
|
* Is the form currently submitting
|
|
37
33
|
*/
|
|
38
|
-
isSubmitting
|
|
34
|
+
isSubmitting?: boolean;
|
|
39
35
|
/**
|
|
40
36
|
* Should this field show the error indicator.
|
|
41
37
|
* Note that there might be an error (like an empty field that should be
|
|
42
38
|
* filled) but we don't want to show the error until the user has tried
|
|
43
39
|
* saving.
|
|
44
40
|
*/
|
|
45
|
-
showError
|
|
41
|
+
showError?: boolean;
|
|
46
42
|
/**
|
|
47
43
|
* Is there an error in this field. The error field has the same shape as
|
|
48
44
|
* the field, replacing values with a string containing the error.
|
|
49
45
|
* It takes the value `null` if there is no error
|
|
50
46
|
*/
|
|
51
|
-
error
|
|
47
|
+
error?: any | null;
|
|
52
48
|
/**
|
|
53
49
|
* Has this field been touched
|
|
54
50
|
*/
|
|
55
|
-
touched
|
|
51
|
+
touched?: boolean;
|
|
56
52
|
/**
|
|
57
53
|
* Property related to this field
|
|
58
54
|
*/
|
|
59
|
-
property: ResolvedProperty<T>;
|
|
55
|
+
property: Property<T> | ResolvedProperty<T>;
|
|
60
56
|
/**
|
|
61
57
|
* Should this field include a description
|
|
62
58
|
*/
|
|
63
|
-
includeDescription
|
|
59
|
+
includeDescription?: boolean;
|
|
64
60
|
/**
|
|
65
61
|
* Flag to indicate that the underlying value has been updated in the
|
|
66
62
|
* datasource
|
|
67
63
|
*/
|
|
68
|
-
underlyingValueHasChanged
|
|
64
|
+
underlyingValueHasChanged?: boolean;
|
|
69
65
|
/**
|
|
70
66
|
* Is this field part of an array
|
|
71
67
|
*/
|
|
72
|
-
partOfArray
|
|
73
|
-
/**
|
|
74
|
-
* Is this field part of a block (oneOf array)
|
|
75
|
-
*/
|
|
76
|
-
partOfBlock: boolean;
|
|
68
|
+
partOfArray?: boolean;
|
|
77
69
|
/**
|
|
78
|
-
*
|
|
70
|
+
* Should this field render with the minimal amount of UI elements
|
|
79
71
|
*/
|
|
80
|
-
|
|
72
|
+
minimalistView?: boolean;
|
|
81
73
|
/**
|
|
82
74
|
* Should this field autofocus on mount
|
|
83
75
|
*/
|
|
84
|
-
autoFocus
|
|
76
|
+
autoFocus?: boolean;
|
|
85
77
|
/**
|
|
86
78
|
* Additional properties set by the developer
|
|
87
79
|
*/
|
|
@@ -93,29 +85,29 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
93
85
|
/**
|
|
94
86
|
* Flag to indicate if this field should be disabled
|
|
95
87
|
*/
|
|
96
|
-
disabled
|
|
88
|
+
disabled?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Size of the field
|
|
91
|
+
*/
|
|
92
|
+
size?: "small" | "medium" | "large";
|
|
93
|
+
/**
|
|
94
|
+
* Some properties might change internal state (like expanding a panel).
|
|
95
|
+
* This function should be called when the internal state changes.
|
|
96
|
+
* This is used to preserve state in array containers.
|
|
97
|
+
*
|
|
98
|
+
* @param property
|
|
99
|
+
*/
|
|
100
|
+
onPropertyChange?: (property: Partial<Property<any>>) => void;
|
|
97
101
|
}
|
|
98
102
|
/**
|
|
99
103
|
* Context passed to custom fields
|
|
100
104
|
* @group Form custom fields
|
|
101
105
|
*/
|
|
102
106
|
export interface FormContext<M extends Record<string, any> = any> {
|
|
103
|
-
/**
|
|
104
|
-
* Collection of the entity being modified
|
|
105
|
-
*/
|
|
106
|
-
collection: ResolvedEntityCollection<M>;
|
|
107
107
|
/**
|
|
108
108
|
* Current values of the entity
|
|
109
109
|
*/
|
|
110
|
-
values:
|
|
111
|
-
/**
|
|
112
|
-
* Entity id, it can be null if it's a new entity
|
|
113
|
-
*/
|
|
114
|
-
entityId?: string;
|
|
115
|
-
/**
|
|
116
|
-
* Path this entity is located at
|
|
117
|
-
*/
|
|
118
|
-
path: string;
|
|
110
|
+
values: M;
|
|
119
111
|
/**
|
|
120
112
|
* Update the value of a field
|
|
121
113
|
* @param key
|
|
@@ -124,9 +116,25 @@ export interface FormContext<M extends Record<string, any> = any> {
|
|
|
124
116
|
*/
|
|
125
117
|
setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
|
|
126
118
|
/**
|
|
127
|
-
* Save the entity
|
|
119
|
+
* Save the entity.
|
|
120
|
+
*/
|
|
121
|
+
save: (values: M) => void;
|
|
122
|
+
/**
|
|
123
|
+
* Collection of the entity being modified
|
|
124
|
+
*/
|
|
125
|
+
collection?: ResolvedEntityCollection<M>;
|
|
126
|
+
/**
|
|
127
|
+
* Entity id, it can be null if it's a new entity
|
|
128
|
+
*/
|
|
129
|
+
entityId: string;
|
|
130
|
+
/**
|
|
131
|
+
* Path this entity is located at
|
|
128
132
|
*/
|
|
129
|
-
|
|
133
|
+
path?: string;
|
|
134
|
+
/**
|
|
135
|
+
* This is the underlying formex controller that powers the form
|
|
136
|
+
*/
|
|
137
|
+
formex: FormexController<M>;
|
|
130
138
|
}
|
|
131
139
|
/**
|
|
132
140
|
* In case you need to render a field bound to a Property inside your
|
|
@@ -157,10 +165,6 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
157
165
|
* field is being edited
|
|
158
166
|
*/
|
|
159
167
|
underlyingValueHasChanged?: boolean;
|
|
160
|
-
/**
|
|
161
|
-
* Is this field being rendered in a table
|
|
162
|
-
*/
|
|
163
|
-
tableMode?: boolean;
|
|
164
168
|
/**
|
|
165
169
|
* Is this field part of an array
|
|
166
170
|
*/
|
|
@@ -168,7 +172,7 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
168
172
|
/**
|
|
169
173
|
* Is this field part of a block (oneOf array)
|
|
170
174
|
*/
|
|
171
|
-
|
|
175
|
+
minimalistView?: boolean;
|
|
172
176
|
/**
|
|
173
177
|
* Should the field take focus when rendered. When opening the popup view
|
|
174
178
|
* in table mode, it makes sense to put the focus on the only field rendered.
|
|
@@ -178,4 +182,21 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
178
182
|
* Should this field be disabled
|
|
179
183
|
*/
|
|
180
184
|
disabled?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Index of the field in the array.
|
|
187
|
+
* Only used when the field is part of an array.
|
|
188
|
+
*/
|
|
189
|
+
index?: number;
|
|
190
|
+
/**
|
|
191
|
+
* The size of the field
|
|
192
|
+
*/
|
|
193
|
+
size?: "small" | "medium" | "large";
|
|
194
|
+
/**
|
|
195
|
+
* Some properties might change internal state (like expanding a panel).
|
|
196
|
+
* This function should be called when the internal state changes.
|
|
197
|
+
* This is used to preserve state in array containers.
|
|
198
|
+
*
|
|
199
|
+
* @param property
|
|
200
|
+
*/
|
|
201
|
+
onPropertyChange?: (property: Partial<Property<any>>) => void;
|
|
181
202
|
}
|
package/dist/types/firecms.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { User } from "./user";
|
|
|
3
3
|
import { AuthController } from "./auth";
|
|
4
4
|
import { DataSourceDelegate } from "./datasource";
|
|
5
5
|
import { EntityCollection, EntityCustomView } from "./collections";
|
|
6
|
-
import { CMSView } from "./navigation";
|
|
6
|
+
import { CMSView, NavigationController } from "./navigation";
|
|
7
7
|
import { FireCMSContext } from "./firecms_context";
|
|
8
8
|
import { PropertyConfig } from "./property_config";
|
|
9
9
|
import { Locale } from "./locales";
|
|
@@ -44,7 +44,7 @@ export type CMSViewsBuilder = (params: {
|
|
|
44
44
|
/**
|
|
45
45
|
* @group Models
|
|
46
46
|
*/
|
|
47
|
-
export type FireCMSProps<
|
|
47
|
+
export type FireCMSProps<USER extends User, EC extends EntityCollection> = {
|
|
48
48
|
/**
|
|
49
49
|
* Use this function to return the components you want to render under
|
|
50
50
|
* FireCMS
|
|
@@ -63,23 +63,20 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
|
|
|
63
63
|
loading: boolean;
|
|
64
64
|
}) => React.ReactNode;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
* Each entry relates to a collection in the root database.
|
|
68
|
-
* Each of the navigation entries in this field
|
|
69
|
-
* generates an entry in the main menu.
|
|
66
|
+
* If you have a custom API key, you can use it here.
|
|
70
67
|
*/
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Custom additional views created by the developer, added to the main
|
|
74
|
-
* navigation
|
|
75
|
-
*/
|
|
76
|
-
views?: CMSView[] | CMSViewsBuilder;
|
|
68
|
+
apiKey?: string;
|
|
77
69
|
/**
|
|
78
70
|
* Record of custom form fields to be used in the CMS.
|
|
79
71
|
* You can use the key to reference the custom field in
|
|
80
72
|
* the `propertyConfig` prop of a property in a collection.
|
|
81
73
|
*/
|
|
82
74
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
75
|
+
/**
|
|
76
|
+
* This controller is in charge of the navigation of the CMS.
|
|
77
|
+
* It is in charge of resolving the collection and entity paths.
|
|
78
|
+
*/
|
|
79
|
+
navigationController: NavigationController;
|
|
83
80
|
/**
|
|
84
81
|
* List of additional custom views for entities.
|
|
85
82
|
* You can use the key to reference the custom view in
|
|
@@ -108,19 +105,7 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
|
|
|
108
105
|
/**
|
|
109
106
|
* Delegate for implementing your auth operations.
|
|
110
107
|
*/
|
|
111
|
-
authController: AuthController<
|
|
112
|
-
/**
|
|
113
|
-
* Path under the navigation routes of the CMS will be created. Defaults to `/`.
|
|
114
|
-
* Internally FireCMS uses `react-router` to create the routes, the base path is attached to the
|
|
115
|
-
* `BrowserRouter` component. If you are using FireCMS in a subpath of your website, you can use
|
|
116
|
-
* this prop to specify the base path.
|
|
117
|
-
*/
|
|
118
|
-
basePath?: string;
|
|
119
|
-
/**
|
|
120
|
-
* Path under the collection routes of the CMS will be created.
|
|
121
|
-
* Defaults to `/c`.
|
|
122
|
-
*/
|
|
123
|
-
baseCollectionPath?: string;
|
|
108
|
+
authController: AuthController<USER>;
|
|
124
109
|
/**
|
|
125
110
|
* Use this controller to access the configuration that is stored locally,
|
|
126
111
|
* and not defined in code
|
|
@@ -17,7 +17,7 @@ import { AnalyticsController } from "./analytics_controller";
|
|
|
17
17
|
* @group Hooks and utilities
|
|
18
18
|
* @see useFireCMSContext
|
|
19
19
|
*/
|
|
20
|
-
export type FireCMSContext<
|
|
20
|
+
export type FireCMSContext<USER extends User = User, AuthControllerType extends AuthController<USER> = AuthController<USER>> = {
|
|
21
21
|
/**
|
|
22
22
|
* Connector to your database, e.g. your Firestore database
|
|
23
23
|
*/
|
package/dist/types/index.d.ts
CHANGED
|
@@ -17,11 +17,12 @@ export * from "./side_entity_controller";
|
|
|
17
17
|
export * from "./side_dialogs_controller";
|
|
18
18
|
export * from "./firecms_context";
|
|
19
19
|
export * from "./entity_callbacks";
|
|
20
|
+
export * from "./entity_overrides";
|
|
20
21
|
export * from "./local_config_persistence";
|
|
21
22
|
export * from "./plugins";
|
|
22
23
|
export * from "./analytics";
|
|
23
24
|
export * from "./firecms";
|
|
24
|
-
export * from "./
|
|
25
|
+
export * from "./roles";
|
|
25
26
|
export * from "./export_import";
|
|
26
27
|
export * from "./modify_collections";
|
|
27
28
|
export * from "./analytics_controller";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { EntityCollection } from "./collections";
|
|
2
3
|
import { EntityReference } from "./entities";
|
|
3
4
|
/**
|
|
@@ -5,19 +6,24 @@ import { EntityReference } from "./entities";
|
|
|
5
6
|
* attributes.
|
|
6
7
|
* @group Models
|
|
7
8
|
*/
|
|
8
|
-
export type NavigationController = {
|
|
9
|
+
export type NavigationController<EC extends EntityCollection = EntityCollection<any>> = {
|
|
9
10
|
/**
|
|
10
11
|
* List of the mapped collections in the CMS.
|
|
11
12
|
* Each entry relates to a collection in the root database.
|
|
12
13
|
* Each of the navigation entries in this field
|
|
13
14
|
* generates an entry in the main menu.
|
|
14
15
|
*/
|
|
15
|
-
collections
|
|
16
|
+
collections?: EntityCollection[];
|
|
16
17
|
/**
|
|
17
18
|
* Custom additional views created by the developer, added to the main
|
|
18
19
|
* navigation
|
|
19
20
|
*/
|
|
20
|
-
views
|
|
21
|
+
views?: CMSView[];
|
|
22
|
+
/**
|
|
23
|
+
* Custom additional views created by the developer, added to the admin
|
|
24
|
+
* navigation
|
|
25
|
+
*/
|
|
26
|
+
adminViews?: CMSView[];
|
|
21
27
|
/**
|
|
22
28
|
* Configuration for the views that should be displayed at the top
|
|
23
29
|
* level of the navigation (e.g. in the home page or the navigation
|
|
@@ -41,15 +47,15 @@ export type NavigationController = {
|
|
|
41
47
|
* Get the collection configuration for a given path.
|
|
42
48
|
* The collection is resolved from the given path or alias.
|
|
43
49
|
*/
|
|
44
|
-
getCollection:
|
|
50
|
+
getCollection: (pathOrId: string, includeUserOverride?: boolean) => EC | undefined;
|
|
45
51
|
/**
|
|
46
|
-
* Get the collection configuration from its parent
|
|
52
|
+
* Get the collection configuration from its parent ids.
|
|
47
53
|
*/
|
|
48
|
-
getCollectionFromIds:
|
|
54
|
+
getCollectionFromIds: (ids: string[]) => EC | undefined;
|
|
49
55
|
/**
|
|
50
56
|
* Get the collection configuration from its parent path segments.
|
|
51
57
|
*/
|
|
52
|
-
getCollectionFromPaths:
|
|
58
|
+
getCollectionFromPaths: (pathSegments: string[]) => EC | undefined;
|
|
53
59
|
/**
|
|
54
60
|
* Default path under the navigation routes of the CMS will be created
|
|
55
61
|
*/
|
|
@@ -95,12 +101,6 @@ export type NavigationController = {
|
|
|
95
101
|
* @param pathWithAliases
|
|
96
102
|
*/
|
|
97
103
|
resolveAliasesFrom: (pathWithAliases: string) => string;
|
|
98
|
-
/**
|
|
99
|
-
* Location used as the base for routes.
|
|
100
|
-
* This is the location that will be used underneath, when the url changes while
|
|
101
|
-
* opening a side dialog
|
|
102
|
-
*/
|
|
103
|
-
baseLocation: string;
|
|
104
104
|
/**
|
|
105
105
|
* Call this method to recalculate the navigation
|
|
106
106
|
*/
|
|
@@ -144,6 +144,7 @@ export interface CMSView {
|
|
|
144
144
|
* You can use any of the icons in the Material specs:
|
|
145
145
|
* https://fonts.google.com/icons
|
|
146
146
|
* e.g. 'account_tree' or 'person'
|
|
147
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
147
148
|
*/
|
|
148
149
|
icon?: string;
|
|
149
150
|
/**
|
|
@@ -159,6 +160,7 @@ export interface CMSView {
|
|
|
159
160
|
/**
|
|
160
161
|
* Optional field used to group top level navigation entries under a
|
|
161
162
|
* navigation view.
|
|
163
|
+
* This prop is ignored for admin views.
|
|
162
164
|
*/
|
|
163
165
|
group?: string;
|
|
164
166
|
}
|
|
@@ -166,11 +168,11 @@ export interface TopNavigationEntry {
|
|
|
166
168
|
url: string;
|
|
167
169
|
name: string;
|
|
168
170
|
path: string;
|
|
169
|
-
type: "collection" | "view";
|
|
171
|
+
type: "collection" | "view" | "admin";
|
|
170
172
|
collection?: EntityCollection;
|
|
171
|
-
view
|
|
173
|
+
view?: CMSView;
|
|
172
174
|
description?: string;
|
|
173
|
-
group
|
|
175
|
+
group: string;
|
|
174
176
|
}
|
|
175
177
|
export type TopNavigationResult = {
|
|
176
178
|
navigationEntries: TopNavigationEntry[];
|
|
@@ -30,7 +30,7 @@ export interface Permissions {
|
|
|
30
30
|
* Props passed to a {@link PermissionsBuilder}
|
|
31
31
|
* @group Models
|
|
32
32
|
*/
|
|
33
|
-
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection,
|
|
33
|
+
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection, USER extends User = User, M extends object = InferCollectionType<EC>> {
|
|
34
34
|
/**
|
|
35
35
|
* Entity being edited, might be null in some cases, when the operation
|
|
36
36
|
* refers to the collection.
|
|
@@ -38,6 +38,10 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
38
38
|
* in a collection, the entity will be null.
|
|
39
39
|
*/
|
|
40
40
|
entity: Entity<M> | null;
|
|
41
|
+
/**
|
|
42
|
+
* Path of the collection e.g. 'products/12345/locales'
|
|
43
|
+
*/
|
|
44
|
+
path: string;
|
|
41
45
|
/**
|
|
42
46
|
* Path segments of the collection e.g. ['products', 'locales']
|
|
43
47
|
*/
|
|
@@ -45,7 +49,7 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
45
49
|
/**
|
|
46
50
|
* Logged in user
|
|
47
51
|
*/
|
|
48
|
-
user:
|
|
52
|
+
user: USER | null;
|
|
49
53
|
/**
|
|
50
54
|
* Collection these permissions apply to
|
|
51
55
|
*/
|
|
@@ -53,11 +57,11 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
53
57
|
/**
|
|
54
58
|
* Auth controller
|
|
55
59
|
*/
|
|
56
|
-
authController: AuthController<
|
|
60
|
+
authController: AuthController<USER>;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Builder used to assign permissions to entities,
|
|
60
64
|
* based on the logged user or collection.
|
|
61
65
|
* @group Models
|
|
62
66
|
*/
|
|
63
|
-
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection,
|
|
67
|
+
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, USER extends User = User, M extends object = InferCollectionType<EC>> = (({ pathSegments, user, collection, authController }: PermissionsBuilderProps<EC, USER, M>) => Permissions | undefined);
|