@firecms/core 3.0.0-canary.2 → 3.0.0-canary.200
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 +4 -4
- 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 +23 -6
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -13
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +3 -3
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
- 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 +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 +17 -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/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +6 -4
- package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +29 -13
- 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 +8 -5
- package/dist/contexts/AuthControllerContext.d.ts +1 -1
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- 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 +44 -0
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +2 -2
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +2 -3
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/index.d.ts +4 -6
- package/dist/form/EntityForm.d.ts +45 -69
- package/dist/form/EntityFormActions.d.ts +17 -0
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/form/components/FormEntry.d.ts +6 -0
- package/dist/form/components/FormLayout.d.ts +5 -0
- package/dist/{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 +4 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -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 +17 -18
- 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 +4 -3
- package/dist/hooks/index.d.ts +4 -1
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/{core → hooks}/useBuildModeController.d.ts +1 -1
- package/dist/hooks/useBuildNavigationController.d.ts +11 -6
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useModeController.d.ts +1 -2
- package/dist/hooks/useProjectLog.d.ts +12 -2
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- 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 +22131 -14039
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +24420 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -12
- package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
- 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/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 +37 -3
- package/dist/types/collections.d.ts +86 -24
- package/dist/types/datasource.d.ts +53 -37
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +8 -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 +6 -0
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +71 -42
- package/dist/types/firecms.d.ts +6 -2
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/navigation.d.ts +45 -26
- package/dist/types/permissions.d.ts +8 -4
- package/dist/types/plugins.d.ts +40 -31
- package/dist/types/properties.d.ts +54 -26
- 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/side_entity_controller.d.ts +6 -1
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +6 -0
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/collections.d.ts +9 -1
- 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 +13 -4
- package/dist/util/index.d.ts +2 -0
- package/dist/util/navigation_from_path.d.ts +6 -1
- package/dist/util/navigation_utils.d.ts +14 -3
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +3 -3
- package/dist/util/references.d.ts +4 -2
- package/dist/util/resolutions.d.ts +31 -17
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/dist/util/useTraceUpdate.d.ts +1 -0
- package/package.json +64 -51
- 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 +126 -40
- 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 +14 -23
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +56 -39
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +283 -280
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +29 -8
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +58 -50
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- 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 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +31 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +81 -80
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +228 -155
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +9 -8
- 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 -71
- 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/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +22 -17
- package/src/components/ReferenceWidget.tsx +26 -16
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +27 -12
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +46 -30
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
- package/src/components/UnsavedChangesDialog.tsx +42 -0
- package/src/components/VirtualTable/VirtualTable.tsx +96 -48
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +34 -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 +3 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +40 -43
- 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 +8 -5
- package/src/contexts/AuthControllerContext.tsx +1 -1
- 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 +207 -0
- package/src/core/DefaultDrawer.tsx +185 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +455 -0
- package/src/core/EntityEditViewFormActions.tsx +199 -0
- package/src/core/EntitySidePanel.tsx +87 -18
- package/src/core/FireCMS.tsx +67 -44
- package/src/core/FireCMSRouter.tsx +17 -0
- package/src/core/NavigationRoutes.tsx +36 -38
- package/src/core/SideDialogs.tsx +22 -12
- package/src/core/field_configs.tsx +11 -12
- package/src/core/index.tsx +6 -7
- package/src/form/EntityForm.tsx +565 -519
- package/src/form/EntityFormActions.tsx +169 -0
- package/src/form/PropertyFieldBinding.tsx +85 -44
- package/src/form/components/CustomIdField.tsx +6 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +44 -0
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +23 -11
- package/src/form/components/StorageUploadProgress.tsx +9 -9
- package/src/form/components/index.tsx +4 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +32 -21
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +54 -45
- package/src/form/field_bindings/BlockFieldBinding.tsx +57 -36
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +21 -17
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +76 -67
- package/src/form/field_bindings/MapFieldBinding.tsx +82 -65
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +153 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -22
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +12 -17
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +47 -34
- package/src/form/field_bindings/RepeatFieldBinding.tsx +57 -36
- package/src/form/field_bindings/SelectFieldBinding.tsx +24 -17
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +47 -46
- package/src/form/field_bindings/SwitchFieldBinding.tsx +31 -27
- package/src/form/field_bindings/TextFieldBinding.tsx +35 -30
- package/src/form/index.tsx +17 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +15 -26
- package/src/hooks/data/delete.ts +7 -6
- package/src/hooks/data/save.ts +13 -9
- package/src/hooks/data/useCollectionFetch.tsx +4 -4
- package/src/hooks/data/useDataSource.tsx +15 -2
- package/src/hooks/data/useEntityFetch.tsx +11 -7
- package/src/hooks/index.tsx +6 -1
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/{core → hooks}/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/{core → hooks}/useBuildModeController.tsx +23 -30
- package/src/hooks/useBuildNavigationController.tsx +278 -117
- package/src/hooks/useFireCMSContext.tsx +5 -5
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useModeController.tsx +1 -2
- package/src/hooks/useProjectLog.tsx +41 -9
- package/src/hooks/useReferenceDialog.tsx +2 -2
- package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
- 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 +72 -77
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +177 -70
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +19 -26
- package/src/preview/PropertyPreviewProps.tsx +5 -9
- 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 +60 -28
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
- package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +8 -7
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +236 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/analytics.ts +1 -0
- package/src/types/auth.tsx +48 -3
- package/src/types/collections.ts +102 -27
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +62 -44
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +16 -2
- package/src/types/entity_actions.tsx +33 -4
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +7 -0
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +81 -46
- package/src/types/firecms.tsx +6 -2
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +2 -1
- package/src/types/navigation.ts +52 -31
- package/src/types/permissions.ts +10 -5
- package/src/types/plugins.tsx +47 -39
- package/src/types/properties.ts +63 -27
- package/src/types/property_config.tsx +2 -4
- package/src/types/roles.ts +41 -0
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +7 -1
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +9 -0
- package/src/util/builders.ts +10 -8
- package/src/util/collections.ts +22 -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 +26 -8
- package/src/util/index.ts +2 -0
- package/src/util/join_collections.ts +3 -0
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +13 -6
- package/src/util/navigation_utils.ts +59 -7
- package/src/util/objects.ts +45 -28
- package/src/util/parent_references_from_path.ts +3 -3
- 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 +79 -46
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +71 -27
- package/src/util/useTraceUpdate.tsx +2 -1
- 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/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/EntityView.d.ts +0 -22
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/FireCMSAppBar.tsx +0 -157
- package/src/components/HomePage/NavigationCollectionCard.tsx +0 -146
- package/src/components/LabelWithIcon.tsx +0 -33
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
- package/src/core/Drawer.tsx +0 -164
- package/src/core/Scaffold.tsx +0 -281
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -696
- 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/{core → hooks}/useBuildLocalConfigurationPersistence.d.ts +0 -0
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataSource, DataSourceDelegate,
|
|
1
|
+
import { DataSource, DataSourceDelegate, NavigationController, PropertyConfig } from "../types";
|
|
2
2
|
/**
|
|
3
3
|
* Use this hook to build a {@link DataSource} based on Firestore
|
|
4
4
|
* @param firebaseApp
|
|
@@ -9,14 +9,3 @@ export declare function useBuildDataSource({ delegate, propertyConfigs, navigati
|
|
|
9
9
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
10
10
|
navigationController: NavigationController;
|
|
11
11
|
}): DataSource;
|
|
12
|
-
/**
|
|
13
|
-
* Recursive function that converts Firestore data types into CMS or plain
|
|
14
|
-
* JS types.
|
|
15
|
-
* FireCMS uses Javascript dates internally instead of Firestore timestamps.
|
|
16
|
-
* This makes it easier to interact with the rest of the libraries and
|
|
17
|
-
* bindings.
|
|
18
|
-
* Also, Firestore references are replaced with {@link EntityReference}
|
|
19
|
-
* @param data
|
|
20
|
-
* @group Firestore
|
|
21
|
-
*/
|
|
22
|
-
export declare function cmsToDelegateModel(data: any, buildReference: (reference: EntityReference) => any, buildGeoPoint: (geoPoint: GeoPoint) => any, buildDate: (date: Date) => any, buildDelete: () => any): any;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook to handle navigation blocking when there are unsaved changes.
|
|
3
|
+
*
|
|
4
|
+
* @param when - Indicates whether to block navigation.
|
|
5
|
+
* @param onSuccess - Callback invoked when navigation is confirmed.
|
|
6
|
+
* @returns An object containing the state of navigation blocking and handlers.
|
|
7
|
+
*/
|
|
2
8
|
export declare function useNavigationUnsavedChangesDialog(when: boolean, onSuccess: () => void): {
|
|
3
9
|
navigationWasBlocked: boolean;
|
|
4
10
|
handleCancel: () => void;
|
|
5
11
|
handleOk: () => void;
|
|
6
12
|
};
|
|
7
|
-
export interface UnsavedChangesDialogProps {
|
|
8
|
-
open: boolean;
|
|
9
|
-
body?: React.ReactNode;
|
|
10
|
-
title?: string;
|
|
11
|
-
handleOk: () => void;
|
|
12
|
-
handleCancel: () => void;
|
|
13
|
-
}
|
|
14
|
-
export declare function UnsavedChangesDialog({ open, handleOk, handleCancel, body, title }: UnsavedChangesDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,4 +4,4 @@ import { PropertyPreviewProps } from "./PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare const PropertyPreview: React.MemoExoticComponent<(<T extends CMSType>(props: PropertyPreviewProps<T
|
|
7
|
+
export declare const PropertyPreview: React.MemoExoticComponent<(<T extends CMSType>(props: PropertyPreviewProps<T>) => any)>;
|
|
@@ -2,11 +2,11 @@ import { CMSType, Property, ResolvedProperty } from "../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* @group Preview components
|
|
4
4
|
*/
|
|
5
|
-
export type PreviewSize = "
|
|
5
|
+
export type PreviewSize = "small" | "medium" | "large";
|
|
6
6
|
/**
|
|
7
7
|
* @group Preview components
|
|
8
8
|
*/
|
|
9
|
-
export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
9
|
+
export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any> {
|
|
10
10
|
/**
|
|
11
11
|
* Name of the property
|
|
12
12
|
*/
|
|
@@ -19,9 +19,6 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
|
19
19
|
* Property this display is related to
|
|
20
20
|
*/
|
|
21
21
|
property: Property<T> | ResolvedProperty<T>;
|
|
22
|
-
/**
|
|
23
|
-
* Click handler
|
|
24
|
-
*/
|
|
25
22
|
/**
|
|
26
23
|
* Desired size of the preview, depending on the context.
|
|
27
24
|
*/
|
|
@@ -40,4 +37,9 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
|
40
37
|
* Additional properties set by the developer
|
|
41
38
|
*/
|
|
42
39
|
customProps?: CustomProps;
|
|
40
|
+
/**
|
|
41
|
+
* If the preview should be interactive or not.
|
|
42
|
+
* This applies only to videos.
|
|
43
|
+
*/
|
|
44
|
+
interactive?: boolean;
|
|
43
45
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { PreviewSize } from "../PropertyPreviewProps";
|
|
3
|
+
import { Property } from "../../types";
|
|
2
4
|
/**
|
|
3
5
|
* @group Preview components
|
|
4
6
|
*/
|
|
5
|
-
export declare function BooleanPreview({ value }: {
|
|
7
|
+
export declare function BooleanPreview({ value, size, property }: {
|
|
6
8
|
value: boolean;
|
|
9
|
+
size: PreviewSize;
|
|
10
|
+
property: Property;
|
|
7
11
|
}): React.ReactElement;
|
|
@@ -7,16 +7,11 @@ export type ReferencePreviewProps = {
|
|
|
7
7
|
size: PreviewSize;
|
|
8
8
|
previewProperties?: string[];
|
|
9
9
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
hover?: boolean;
|
|
11
|
+
includeEntityLink?: boolean;
|
|
12
|
+
includeId?: boolean;
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
15
|
* @group Preview components
|
|
15
16
|
*/
|
|
16
|
-
export declare const ReferencePreview:
|
|
17
|
-
export declare function ReferencePreviewContainer({ children, onHover, size, onClick }: {
|
|
18
|
-
children: React.ReactNode;
|
|
19
|
-
onHover?: boolean;
|
|
20
|
-
size: PreviewSize;
|
|
21
|
-
onClick?: (e: React.SyntheticEvent) => void;
|
|
22
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare const ReferencePreview: (props: ReferencePreviewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,10 +4,11 @@ type StorageThumbnailProps = {
|
|
|
4
4
|
storagePathOrDownloadUrl: string;
|
|
5
5
|
storeUrl: boolean;
|
|
6
6
|
size: PreviewSize;
|
|
7
|
+
interactive?: boolean;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
9
10
|
* @group Preview components
|
|
10
11
|
*/
|
|
11
12
|
export declare const StorageThumbnail: React.FunctionComponent<StorageThumbnailProps>;
|
|
12
|
-
export declare function StorageThumbnailInternal({ storeUrl, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
14
|
export {};
|
|
@@ -4,9 +4,10 @@ import { PreviewSize } from "../PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function UrlComponentPreview({ url, previewType, size, hint }: {
|
|
7
|
+
export declare function UrlComponentPreview({ url, previewType, size, hint, interactive }: {
|
|
8
8
|
url: string;
|
|
9
9
|
previewType?: PreviewType;
|
|
10
10
|
size: PreviewSize;
|
|
11
11
|
hint?: string;
|
|
12
|
+
interactive?: boolean;
|
|
12
13
|
}): React.ReactElement;
|
package/dist/preview/util.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CollectionSize } from "../types";
|
|
2
2
|
import { PreviewSize } from "./PropertyPreviewProps";
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
3
|
+
export declare const SMALL_THUMBNAIL = 40;
|
|
4
|
+
export declare const MEDIUM_THUMBNAIL = 100;
|
|
5
|
+
export declare const LARGE_THUMBNAIL = 200;
|
|
6
6
|
export declare function getThumbnailMeasure(size: PreviewSize): number;
|
|
7
7
|
export declare function getPreviewSizeFrom(size: CollectionSize): PreviewSize;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function FireCMSRoute(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_favorite_navigate_to_view" | "collection_inline_editing" | "unmapped_event";
|
|
1
|
+
export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_navigate_to_admin_view" | "home_favorite_navigate_to_view" | "collection_inline_editing" | "unmapped_event";
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -1,26 +1,34 @@
|
|
|
1
1
|
import { User } from "./user";
|
|
2
|
+
import { Role } from "./roles";
|
|
3
|
+
import { DataSourceDelegate } from "./datasource";
|
|
4
|
+
import { StorageSource } from "./storage";
|
|
2
5
|
/**
|
|
3
6
|
* Controller for retrieving the logged user or performing auth related operations.
|
|
4
7
|
* Note that if you are implementing your AuthController, you probably will want
|
|
5
8
|
* to do it as the result of a hook.
|
|
6
9
|
* @group Hooks and utilities
|
|
7
10
|
*/
|
|
8
|
-
export type AuthController<
|
|
11
|
+
export type AuthController<USER extends User = any, ExtraData = any> = {
|
|
9
12
|
/**
|
|
10
13
|
* The user currently logged in
|
|
11
14
|
* The values can be: the user object, null if they skipped login
|
|
12
15
|
*/
|
|
13
|
-
user:
|
|
16
|
+
user: USER | null;
|
|
14
17
|
/**
|
|
15
18
|
* Initial loading flag. It is used not to display the login screen
|
|
16
19
|
* when the app first loads, and it has not been checked whether the user
|
|
17
20
|
* is logged in or not.
|
|
18
21
|
*/
|
|
19
22
|
initialLoading?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Loading flag. It is used to display a loading screen when the user is
|
|
25
|
+
* logging in or out.
|
|
26
|
+
*/
|
|
27
|
+
authLoading: boolean;
|
|
20
28
|
/**
|
|
21
29
|
* Sign out
|
|
22
30
|
*/
|
|
23
|
-
signOut: () => void
|
|
31
|
+
signOut: () => Promise<void>;
|
|
24
32
|
/**
|
|
25
33
|
* Error initializing the authentication
|
|
26
34
|
*/
|
|
@@ -37,4 +45,30 @@ export type AuthController<UserType extends User = User> = {
|
|
|
37
45
|
* Has the user skipped the login process
|
|
38
46
|
*/
|
|
39
47
|
loginSkipped: boolean;
|
|
48
|
+
extra: ExtraData;
|
|
49
|
+
setExtra: (extra: ExtraData) => void;
|
|
50
|
+
setUser?: (user: USER | null) => void;
|
|
51
|
+
setUserRoles?: (roles: Role[]) => void;
|
|
40
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Implement this function to allow access to specific users.
|
|
55
|
+
* @group Hooks and utilities
|
|
56
|
+
*/
|
|
57
|
+
export type Authenticator<USER extends User = User> = (props: {
|
|
58
|
+
/**
|
|
59
|
+
* Logged-in user or null
|
|
60
|
+
*/
|
|
61
|
+
user: USER | null;
|
|
62
|
+
/**
|
|
63
|
+
* AuthController
|
|
64
|
+
*/
|
|
65
|
+
authController: AuthController<USER>;
|
|
66
|
+
/**
|
|
67
|
+
* Connector to your database, e.g. your Firestore database
|
|
68
|
+
*/
|
|
69
|
+
dataSourceDelegate: DataSourceDelegate;
|
|
70
|
+
/**
|
|
71
|
+
* Used storage implementation
|
|
72
|
+
*/
|
|
73
|
+
storageSource: StorageSource;
|
|
74
|
+
}) => boolean | Promise<boolean>;
|
|
@@ -8,6 +8,7 @@ import { EnumValues, PropertiesOrBuilders } from "./properties";
|
|
|
8
8
|
import { FormContext } from "./fields";
|
|
9
9
|
import { EntityAction } from "./entity_actions";
|
|
10
10
|
import { ExportConfig } from "./export_import";
|
|
11
|
+
import { EntityOverrides } from "./entity_overrides";
|
|
11
12
|
/**
|
|
12
13
|
* This interface represents a view that includes a collection of entities.
|
|
13
14
|
* It can be in the root level of the configuration, defining the main
|
|
@@ -15,7 +16,7 @@ import { ExportConfig } from "./export_import";
|
|
|
15
16
|
*
|
|
16
17
|
* @group Models
|
|
17
18
|
*/
|
|
18
|
-
export interface EntityCollection<M extends Record<string, any> = any,
|
|
19
|
+
export interface EntityCollection<M extends Record<string, any> = any, USER extends User = any> {
|
|
19
20
|
/**
|
|
20
21
|
* You can set an alias that will be used internally instead of the `path`.
|
|
21
22
|
* The `alias` value will be used to determine the URL of the collection,
|
|
@@ -43,6 +44,11 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
43
44
|
* This path also determines the URL in FireCMS, unless an alias is specified
|
|
44
45
|
*/
|
|
45
46
|
path: string;
|
|
47
|
+
/**
|
|
48
|
+
* Optional database id of this collection. If not specified, the default
|
|
49
|
+
* database id will be used.
|
|
50
|
+
*/
|
|
51
|
+
databaseId?: string;
|
|
46
52
|
/**
|
|
47
53
|
* If this collection is a top level navigation entry, you can set this
|
|
48
54
|
* property to `true` to indicate that this collection is a collection group.
|
|
@@ -52,7 +58,8 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
52
58
|
* Icon key to use in this collection.
|
|
53
59
|
* You can use any of the icons in the Material specs:
|
|
54
60
|
* https://fonts.google.com/icons
|
|
55
|
-
* e.g. 'account_tree' or 'person'
|
|
61
|
+
* e.g. 'account_tree' or 'person'.
|
|
62
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
56
63
|
*/
|
|
57
64
|
icon?: string;
|
|
58
65
|
/**
|
|
@@ -66,11 +73,20 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
66
73
|
*/
|
|
67
74
|
properties: PropertiesOrBuilders<M>;
|
|
68
75
|
/**
|
|
69
|
-
*
|
|
70
|
-
* Defaults to `true`.
|
|
71
|
-
* Keep in mind that you can also set this prop to individual properties.
|
|
76
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
72
77
|
*/
|
|
73
|
-
|
|
78
|
+
previewProperties?: string[];
|
|
79
|
+
/**
|
|
80
|
+
* Title property of the entity. This is the property that will be used
|
|
81
|
+
* as the title in entity related views and references.
|
|
82
|
+
* If not specified, the first property simple text property will be used.
|
|
83
|
+
*/
|
|
84
|
+
titleProperty?: keyof M;
|
|
85
|
+
/**
|
|
86
|
+
* When editing an entity, you can choose to open the entity in a side dialog
|
|
87
|
+
* or in a full screen dialog. Defaults to `full_screen`.
|
|
88
|
+
*/
|
|
89
|
+
openEntityMode?: "side_panel" | "full_screen";
|
|
74
90
|
/**
|
|
75
91
|
* Order in which the properties are displayed.
|
|
76
92
|
* If you are specifying your collection as code, the order is the same as the
|
|
@@ -87,8 +103,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
87
103
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
88
104
|
* - If you are using a collection group, you will also have an
|
|
89
105
|
* additional `collectionGroupParent` column.
|
|
106
|
+
* You can use this prop to hide some properties from the table view.
|
|
107
|
+
* Note that if you set this prop, other ways to hide fields, like
|
|
108
|
+
* `hidden` in the property definition,will be ignored.
|
|
109
|
+
* `propertiesOrder` has precedence over `hidden`.
|
|
90
110
|
*/
|
|
91
|
-
propertiesOrder?: Extract<keyof M, string>[];
|
|
111
|
+
propertiesOrder?: (Extract<keyof M, string> | string | `subcollection:${string}` | "collectionGroupParent")[];
|
|
92
112
|
/**
|
|
93
113
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
94
114
|
* collection are loaded.
|
|
@@ -105,7 +125,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
105
125
|
* Permissions the logged-in user can perform on this collection.
|
|
106
126
|
* If not specified everything defaults to `true`.
|
|
107
127
|
*/
|
|
108
|
-
permissions?: Permissions | PermissionsBuilder<EntityCollection,
|
|
128
|
+
permissions?: Permissions | PermissionsBuilder<EntityCollection, USER, M>;
|
|
109
129
|
/**
|
|
110
130
|
* Are the entities in this collection selectable. Defaults to `true`
|
|
111
131
|
*/
|
|
@@ -121,7 +141,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
121
141
|
* is being created, updated or deleted.
|
|
122
142
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
123
143
|
*/
|
|
124
|
-
callbacks?: EntityCallbacks<M>;
|
|
144
|
+
callbacks?: EntityCallbacks<M, USER>;
|
|
125
145
|
/**
|
|
126
146
|
* Builder for rendering additional components such as buttons in the
|
|
127
147
|
* collection toolbar
|
|
@@ -150,7 +170,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
150
170
|
* }
|
|
151
171
|
* ```
|
|
152
172
|
*/
|
|
153
|
-
entityActions?: EntityAction<M,
|
|
173
|
+
entityActions?: EntityAction<M, USER>[];
|
|
154
174
|
/**
|
|
155
175
|
* Pass your own selection controller if you want to control selected
|
|
156
176
|
* entities externally.
|
|
@@ -195,7 +215,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
195
215
|
* You can add additional fields to the collection view by implementing
|
|
196
216
|
* an additional field delegate.
|
|
197
217
|
*/
|
|
198
|
-
additionalFields?: AdditionalFieldDelegate<M,
|
|
218
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
199
219
|
/**
|
|
200
220
|
* Default size of the rendered collection
|
|
201
221
|
*/
|
|
@@ -240,7 +260,27 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
240
260
|
/**
|
|
241
261
|
*
|
|
242
262
|
*/
|
|
243
|
-
exportable?: boolean | ExportConfig<
|
|
263
|
+
exportable?: boolean | ExportConfig<USER>;
|
|
264
|
+
/**
|
|
265
|
+
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
266
|
+
* are writing custom code
|
|
267
|
+
*/
|
|
268
|
+
ownerId?: string;
|
|
269
|
+
/**
|
|
270
|
+
* Overrides for the entity view, like the data source or the storage source.
|
|
271
|
+
*/
|
|
272
|
+
overrides?: EntityOverrides;
|
|
273
|
+
/**
|
|
274
|
+
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
275
|
+
*/
|
|
276
|
+
sideDialogWidth?: number | string;
|
|
277
|
+
/**
|
|
278
|
+
* Can this collection configuration be edited by the end user.
|
|
279
|
+
* Defaults to `true`.
|
|
280
|
+
* Keep in mind that you can also set this prop to individual properties.
|
|
281
|
+
* This prop has only effect if you are using the collection editor.
|
|
282
|
+
*/
|
|
283
|
+
editable?: boolean;
|
|
244
284
|
}
|
|
245
285
|
/**
|
|
246
286
|
* Parameter passed to the `Actions` prop in the collection configuration.
|
|
@@ -249,7 +289,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
249
289
|
*
|
|
250
290
|
* @group Models
|
|
251
291
|
*/
|
|
252
|
-
export interface CollectionActionsProps<M extends Record<string, any> = any,
|
|
292
|
+
export interface CollectionActionsProps<M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
253
293
|
/**
|
|
254
294
|
* Full collection path of this entity. This is the full path, like
|
|
255
295
|
* `users/1234/addresses`
|
|
@@ -280,7 +320,7 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
280
320
|
/**
|
|
281
321
|
* Context of the app status
|
|
282
322
|
*/
|
|
283
|
-
context: FireCMSContext<
|
|
323
|
+
context: FireCMSContext<USER>;
|
|
284
324
|
/**
|
|
285
325
|
* Count of the entities in this collection
|
|
286
326
|
*/
|
|
@@ -289,18 +329,17 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
289
329
|
/**
|
|
290
330
|
* Use this controller to retrieve the selected entities or modify them in
|
|
291
331
|
* an {@link EntityCollection}
|
|
292
|
-
* If you want to pass a `SelectionController` to
|
|
293
332
|
* @group Models
|
|
294
333
|
*/
|
|
295
334
|
export type SelectionController<M extends Record<string, any> = any> = {
|
|
296
335
|
selectedEntities: Entity<M>[];
|
|
297
336
|
setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
|
|
298
337
|
isEntitySelected: (entity: Entity<M>) => boolean;
|
|
299
|
-
toggleEntitySelection: (entity: Entity<M
|
|
338
|
+
toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
|
|
300
339
|
};
|
|
301
340
|
/**
|
|
302
341
|
* Filter conditions in a `Query.where()` clause are specified using the
|
|
303
|
-
* strings
|
|
342
|
+
* strings `<`, `<=`, `==`, `>=`, `>`, `array-contains`, `in`, and `array-contains-any`.
|
|
304
343
|
* @group Models
|
|
305
344
|
*/
|
|
306
345
|
export type WhereFilterOp = "<" | "<=" | "==" | "!=" | ">=" | ">" | "array-contains" | "in" | "not-in" | "array-contains-any";
|
|
@@ -324,16 +363,16 @@ export type FilterCombination<Key extends string> = Partial<Record<Key, "asc" |
|
|
|
324
363
|
* @group Models
|
|
325
364
|
*/
|
|
326
365
|
export type CollectionSize = "xs" | "s" | "m" | "l" | "xl";
|
|
327
|
-
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any,
|
|
366
|
+
export type AdditionalFieldDelegateProps<M extends Record<string, any> = any, USER extends User = User> = {
|
|
328
367
|
entity: Entity<M>;
|
|
329
|
-
context: FireCMSContext<
|
|
368
|
+
context: FireCMSContext<USER>;
|
|
330
369
|
};
|
|
331
370
|
/**
|
|
332
371
|
* Use this interface for adding additional fields to entity collection views.
|
|
333
372
|
* If you need to do some async loading you can use {@link AsyncPreviewComponent}
|
|
334
373
|
* @group Models
|
|
335
374
|
*/
|
|
336
|
-
export interface AdditionalFieldDelegate<M extends Record<string, any> = any,
|
|
375
|
+
export interface AdditionalFieldDelegate<M extends Record<string, any> = any, USER extends User = User> {
|
|
337
376
|
/**
|
|
338
377
|
* ID of this column. You can use this id in the `properties` field of the
|
|
339
378
|
* collection in any order you want
|
|
@@ -350,7 +389,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
350
389
|
/**
|
|
351
390
|
* Builder for the content of the cell for this column
|
|
352
391
|
*/
|
|
353
|
-
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M,
|
|
392
|
+
Builder?: React.ComponentType<AdditionalFieldDelegateProps<M, USER>>;
|
|
354
393
|
/**
|
|
355
394
|
* If this column needs to update dynamically based on other properties,
|
|
356
395
|
* you can define an array of keys as strings with the
|
|
@@ -369,7 +408,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
369
408
|
*/
|
|
370
409
|
value?: (props: {
|
|
371
410
|
entity: Entity<M>;
|
|
372
|
-
context: FireCMSContext
|
|
411
|
+
context: FireCMSContext<any>;
|
|
373
412
|
}) => string | number | Promise<string | number> | undefined;
|
|
374
413
|
}
|
|
375
414
|
/**
|
|
@@ -378,8 +417,24 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
378
417
|
* @group Models
|
|
379
418
|
*/
|
|
380
419
|
export type EntityCustomView<M extends Record<string, any> = any> = {
|
|
420
|
+
/**
|
|
421
|
+
* Key of this custom view.
|
|
422
|
+
*/
|
|
381
423
|
key: string;
|
|
424
|
+
/**
|
|
425
|
+
* Name of this custom view.
|
|
426
|
+
*/
|
|
382
427
|
name: string;
|
|
428
|
+
/**
|
|
429
|
+
* If set to true, the actions of the entity (save, discard,delete) will be
|
|
430
|
+
* included in the view. By default the actions are located in the right or bottom,
|
|
431
|
+
* based on the screen size. You can force the actions to be located at the bottom
|
|
432
|
+
* by setting this prop to "bottom".
|
|
433
|
+
*/
|
|
434
|
+
includeActions?: boolean | "bottom";
|
|
435
|
+
/**
|
|
436
|
+
* Builder for rendering the custom view
|
|
437
|
+
*/
|
|
383
438
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
384
439
|
};
|
|
385
440
|
/**
|
|
@@ -432,12 +487,18 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
432
487
|
filterValues?: FilterValues<Extract<keyof M, string>>;
|
|
433
488
|
setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
|
|
434
489
|
sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
|
|
435
|
-
setSortBy?: (sortBy
|
|
490
|
+
setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
|
|
436
491
|
searchString?: string;
|
|
437
492
|
setSearchString?: (searchString?: string) => void;
|
|
438
493
|
clearFilter?: () => void;
|
|
439
494
|
itemCount?: number;
|
|
440
495
|
setItemCount?: (itemCount: number) => void;
|
|
496
|
+
initialScroll?: number;
|
|
497
|
+
onScroll?: (props: {
|
|
498
|
+
scrollDirection: "forward" | "backward";
|
|
499
|
+
scrollOffset: number;
|
|
500
|
+
scrollUpdateWasRequested: boolean;
|
|
501
|
+
}) => void;
|
|
441
502
|
paginationEnabled?: boolean;
|
|
442
503
|
pageSize?: number;
|
|
443
504
|
checkFilterCombination?: (filterValues: FilterValues<any>, sortBy?: [string, "asc" | "desc"]) => boolean;
|
|
@@ -450,5 +511,6 @@ export type SelectedCellProps<M extends Record<string, any>> = {
|
|
|
450
511
|
cellRect: DOMRect;
|
|
451
512
|
width: number;
|
|
452
513
|
height: number;
|
|
453
|
-
|
|
514
|
+
entityPath: string;
|
|
515
|
+
entityId: string;
|
|
454
516
|
};
|