@firecms/core 3.0.0-canary.21 → 3.0.0-canary.211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +34 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +23 -6
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -13
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
- package/dist/components/EntityCollectionTable/index.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +16 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +5 -4
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +3 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +28 -12
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
- package/dist/components/common/index.d.ts +2 -1
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +4 -6
- package/dist/components/common/useColumnsIds.d.ts +3 -1
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +4 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/core/DefaultAppBar.d.ts +29 -0
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +35 -11
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +3 -3
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +2 -3
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/index.d.ts +4 -4
- package/dist/form/EntityForm.d.ts +37 -69
- package/dist/form/EntityFormActions.d.ts +17 -0
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/form/components/FormEntry.d.ts +6 -0
- package/dist/form/components/FormLayout.d.ts +5 -0
- package/dist/form/components/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -4
- package/dist/form/components/index.d.ts +3 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -5
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/index.d.ts +16 -18
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +4 -5
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +4 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +7 -5
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useModeController.d.ts +1 -2
- package/dist/hooks/useProjectLog.d.ts +8 -2
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +21921 -14330
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +24271 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -16
- package/dist/internal/useBuildSideEntityController.d.ts +2 -2
- package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
- package/dist/preview/PropertyPreviewProps.d.ts +6 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +3 -2
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/util.d.ts +3 -3
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/FireCMSRoute.d.ts +1 -0
- package/dist/routes/HomePageRoute.d.ts +3 -0
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +77 -22
- package/dist/types/datasource.d.ts +52 -36
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +7 -2
- package/dist/types/entity_actions.d.ts +28 -4
- package/dist/types/entity_callbacks.d.ts +16 -16
- package/dist/types/entity_overrides.d.ts +2 -2
- package/dist/types/export_import.d.ts +4 -4
- package/dist/types/fields.d.ts +71 -42
- package/dist/types/firecms.d.ts +6 -2
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +32 -14
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +23 -12
- package/dist/types/properties.d.ts +52 -24
- package/dist/types/property_config.d.ts +0 -2
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/side_entity_controller.d.ts +6 -1
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +1 -0
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/entities.d.ts +3 -3
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +23 -0
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -98
- package/dist/util/icons.d.ts +6 -3
- package/dist/util/index.d.ts +2 -0
- package/dist/util/navigation_from_path.d.ts +6 -1
- package/dist/util/navigation_utils.d.ts +14 -3
- package/dist/util/objects.d.ts +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +3 -3
- package/dist/util/resolutions.d.ts +36 -17
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/package.json +62 -48
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +253 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +127 -41
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
- package/src/components/DeleteEntityDialog.tsx +10 -19
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +54 -37
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +31 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +81 -80
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +207 -113
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +4 -2
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityJsonPreview.tsx +66 -0
- package/src/components/EntityPreview.tsx +62 -52
- package/src/components/EntityView.tsx +10 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/HomePage/DefaultHomePage.tsx +26 -19
- package/src/components/HomePage/FavouritesView.tsx +6 -11
- package/src/components/HomePage/NavigationCard.tsx +3 -3
- package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +19 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +27 -12
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
- package/src/components/UnsavedChangesDialog.tsx +42 -0
- package/src/components/VirtualTable/VirtualTable.tsx +96 -48
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +33 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +3 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +33 -40
- package/src/components/common/index.ts +2 -1
- package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
- package/src/components/common/types.tsx +4 -6
- package/src/components/common/useColumnsIds.tsx +24 -3
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +4 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- package/src/contexts/ModeController.tsx +1 -3
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +219 -0
- package/src/core/DefaultDrawer.tsx +185 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +345 -480
- package/src/core/EntityEditViewFormActions.tsx +199 -0
- package/src/core/EntitySidePanel.tsx +86 -17
- package/src/core/FireCMS.tsx +56 -49
- package/src/core/FireCMSRouter.tsx +17 -0
- package/src/core/NavigationRoutes.tsx +28 -38
- package/src/core/SideDialogs.tsx +22 -12
- package/src/core/field_configs.tsx +11 -12
- package/src/core/index.tsx +6 -5
- package/src/form/EntityForm.tsx +585 -539
- package/src/form/EntityFormActions.tsx +169 -0
- package/src/form/PropertyFieldBinding.tsx +85 -44
- package/src/form/components/CustomIdField.tsx +6 -2
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +30 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +22 -12
- package/src/form/components/StorageUploadProgress.tsx +4 -5
- package/src/form/components/index.tsx +3 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +31 -19
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -35
- package/src/form/field_bindings/BlockFieldBinding.tsx +56 -34
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
- package/src/form/field_bindings/MapFieldBinding.tsx +71 -54
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +153 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +42 -50
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/index.tsx +16 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +13 -23
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +13 -9
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +22 -29
- package/src/hooks/useBuildNavigationController.tsx +159 -54
- package/src/hooks/useFireCMSContext.tsx +5 -5
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useModeController.tsx +1 -2
- package/src/hooks/useProjectLog.tsx +32 -10
- package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
- package/src/hooks/useValidateAuthenticator.tsx +17 -37
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +72 -82
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +194 -73
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +17 -24
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +25 -36
- package/src/preview/components/ReferencePreview.tsx +22 -33
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +60 -28
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
- package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +235 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +94 -27
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +61 -43
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +12 -2
- package/src/types/entity_actions.tsx +32 -7
- package/src/types/entity_callbacks.ts +18 -18
- package/src/types/entity_overrides.tsx +2 -2
- package/src/types/export_import.ts +4 -4
- package/src/types/fields.tsx +81 -46
- package/src/types/firecms.tsx +7 -2
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +38 -18
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +25 -14
- package/src/types/properties.ts +60 -25
- package/src/types/property_config.tsx +0 -2
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +6 -1
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +2 -0
- package/src/util/builders.ts +10 -8
- package/src/util/entities.ts +9 -6
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +204 -0
- package/src/util/enums.ts +1 -1
- package/src/util/icon_list.ts +16 -10
- package/src/util/icon_synonyms.ts +3 -100
- package/src/util/icons.tsx +17 -7
- package/src/util/index.ts +2 -0
- package/src/util/join_collections.ts +3 -0
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +13 -6
- package/src/util/navigation_utils.ts +59 -7
- package/src/util/objects.ts +48 -28
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +11 -4
- package/src/util/references.ts +11 -2
- package/src/util/resolutions.ts +100 -46
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +71 -27
- package/dist/components/FireCMSAppBar.d.ts +0 -26
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -55
- package/dist/core/SideEntityView.d.ts +0 -7
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/FireCMSAppBar.tsx +0 -165
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
- package/src/core/Drawer.tsx +0 -191
- package/src/core/Scaffold.tsx +0 -281
- package/src/core/SideEntityView.tsx +0 -38
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -1,36 +1,31 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
2
|
import equal from "react-fast-compare";
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { AuthController, Authenticator, DataSourceDelegate, StorageSource, User } from "../index";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* This hook is used internally for validating an authenticator.
|
|
8
8
|
*
|
|
9
9
|
* @param authController
|
|
10
10
|
* @param authentication
|
|
11
|
-
* @param getAppCheckToken
|
|
12
|
-
* @param appCheckForceRefresh
|
|
13
11
|
* @param storageSource
|
|
14
12
|
* @param dataSourceDelegate
|
|
15
13
|
*/
|
|
16
|
-
export function useValidateAuthenticator<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
dataSourceDelegate: DataSourceDelegate;
|
|
32
|
-
storageSource: StorageSource;
|
|
33
|
-
}): {
|
|
14
|
+
export function useValidateAuthenticator<USER extends User = any>
|
|
15
|
+
({
|
|
16
|
+
disabled,
|
|
17
|
+
authController,
|
|
18
|
+
authenticator,
|
|
19
|
+
storageSource,
|
|
20
|
+
dataSourceDelegate
|
|
21
|
+
}:
|
|
22
|
+
{
|
|
23
|
+
disabled?: boolean,
|
|
24
|
+
authController: AuthController<USER>,
|
|
25
|
+
authenticator?: boolean | Authenticator<USER>,
|
|
26
|
+
dataSourceDelegate: DataSourceDelegate;
|
|
27
|
+
storageSource: StorageSource;
|
|
28
|
+
}): {
|
|
34
29
|
canAccessMainView: boolean,
|
|
35
30
|
authLoading: boolean,
|
|
36
31
|
notAllowedError: any,
|
|
@@ -76,21 +71,6 @@ export function useValidateAuthenticator<UserType extends User = User, Controlle
|
|
|
76
71
|
}
|
|
77
72
|
|
|
78
73
|
const delegateUser = authController.user;
|
|
79
|
-
console.debug("Checking authentication for user", delegateUser);
|
|
80
|
-
|
|
81
|
-
if (getAppCheckToken) {
|
|
82
|
-
try {
|
|
83
|
-
if (!await getAppCheckToken(appCheckForceRefresh)) {
|
|
84
|
-
setNotAllowedError("App Check failed.");
|
|
85
|
-
authController.signOut();
|
|
86
|
-
} else {
|
|
87
|
-
console.debug("App Check success.");
|
|
88
|
-
}
|
|
89
|
-
} catch (e: any) {
|
|
90
|
-
setNotAllowedError(e.message);
|
|
91
|
-
authController.signOut();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
74
|
|
|
95
75
|
if (authenticator instanceof Function && delegateUser && !equal(checkedUserRef.current?.uid, delegateUser.uid)) {
|
|
96
76
|
setAuthLoading(true);
|
|
@@ -120,7 +100,7 @@ export function useValidateAuthenticator<UserType extends User = User, Controlle
|
|
|
120
100
|
setAuthVerified(true);
|
|
121
101
|
}
|
|
122
102
|
|
|
123
|
-
}, [disabled, authController, authenticator,
|
|
103
|
+
}, [disabled, authController, authenticator, dataSourceDelegate, storageSource]);
|
|
124
104
|
|
|
125
105
|
useEffect(() => {
|
|
126
106
|
checkAuthentication();
|
package/src/index.ts
CHANGED
|
@@ -5,12 +5,11 @@ import {
|
|
|
5
5
|
DeleteEntityProps,
|
|
6
6
|
Entity,
|
|
7
7
|
EntityCollection,
|
|
8
|
-
EntityReference,
|
|
9
8
|
EntityValues,
|
|
10
9
|
FetchCollectionProps,
|
|
11
10
|
FetchEntityProps,
|
|
12
11
|
FilterValues,
|
|
13
|
-
|
|
12
|
+
FireCMSContext,
|
|
14
13
|
ListenCollectionProps,
|
|
15
14
|
ListenEntityProps,
|
|
16
15
|
NavigationController,
|
|
@@ -53,23 +52,25 @@ export function useBuildDataSource({
|
|
|
53
52
|
*/
|
|
54
53
|
fetchCollection: useCallback(<M extends Record<string, any>>({
|
|
55
54
|
path,
|
|
56
|
-
collection
|
|
55
|
+
collection,
|
|
57
56
|
filter,
|
|
58
57
|
limit,
|
|
59
58
|
startAfter,
|
|
60
59
|
searchString,
|
|
61
60
|
orderBy,
|
|
62
|
-
order
|
|
61
|
+
order,
|
|
63
62
|
}: FetchCollectionProps<M>
|
|
64
63
|
): Promise<Entity<M>[]> => {
|
|
65
|
-
|
|
64
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
65
|
+
return usedDelegate.fetchCollection<M>({
|
|
66
66
|
path,
|
|
67
67
|
filter,
|
|
68
68
|
limit,
|
|
69
69
|
startAfter,
|
|
70
70
|
searchString,
|
|
71
71
|
orderBy,
|
|
72
|
-
order
|
|
72
|
+
order,
|
|
73
|
+
collection
|
|
73
74
|
});
|
|
74
75
|
}, [delegate]),
|
|
75
76
|
|
|
@@ -90,7 +91,6 @@ export function useBuildDataSource({
|
|
|
90
91
|
* @group Firestore
|
|
91
92
|
*/
|
|
92
93
|
listenCollection: delegate.listenCollection
|
|
93
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
94
94
|
? useCallback(<M extends Record<string, any>>(
|
|
95
95
|
{
|
|
96
96
|
path,
|
|
@@ -107,11 +107,12 @@ export function useBuildDataSource({
|
|
|
107
107
|
): () => void => {
|
|
108
108
|
|
|
109
109
|
const collection = collectionProp ?? navigationController.getCollection(path);
|
|
110
|
-
const
|
|
111
|
-
|
|
110
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
111
|
+
|
|
112
|
+
if (!usedDelegate.listenCollection)
|
|
112
113
|
throw Error("useBuildDataSource delegate not initialised");
|
|
113
114
|
|
|
114
|
-
return
|
|
115
|
+
return usedDelegate.listenCollection<M>({
|
|
115
116
|
path,
|
|
116
117
|
filter,
|
|
117
118
|
limit,
|
|
@@ -121,8 +122,7 @@ export function useBuildDataSource({
|
|
|
121
122
|
order,
|
|
122
123
|
onUpdate,
|
|
123
124
|
onError,
|
|
124
|
-
|
|
125
|
-
collection
|
|
125
|
+
collection,
|
|
126
126
|
});
|
|
127
127
|
}, [delegate, navigationController.getCollection])
|
|
128
128
|
: undefined,
|
|
@@ -136,12 +136,17 @@ export function useBuildDataSource({
|
|
|
136
136
|
*/
|
|
137
137
|
fetchEntity: useCallback(<M extends Record<string, any>>({
|
|
138
138
|
path,
|
|
139
|
-
entityId
|
|
139
|
+
entityId,
|
|
140
|
+
collection
|
|
140
141
|
}: FetchEntityProps<M>
|
|
141
|
-
): Promise<Entity<M> | undefined> =>
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
): Promise<Entity<M> | undefined> => {
|
|
143
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
144
|
+
return usedDelegate.fetchEntity({
|
|
145
|
+
path,
|
|
146
|
+
entityId,
|
|
147
|
+
collection
|
|
148
|
+
});
|
|
149
|
+
}, [delegate.fetchEntity]),
|
|
145
150
|
|
|
146
151
|
/**
|
|
147
152
|
*
|
|
@@ -154,7 +159,6 @@ export function useBuildDataSource({
|
|
|
154
159
|
* @group Firestore
|
|
155
160
|
*/
|
|
156
161
|
listenEntity: delegate.listenEntity
|
|
157
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
158
162
|
? useCallback(<M extends Record<string, any>>(
|
|
159
163
|
{
|
|
160
164
|
path,
|
|
@@ -163,14 +167,17 @@ export function useBuildDataSource({
|
|
|
163
167
|
onUpdate,
|
|
164
168
|
onError
|
|
165
169
|
}: ListenEntityProps<M>): () => void => {
|
|
166
|
-
|
|
170
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
171
|
+
|
|
172
|
+
if (!usedDelegate.listenEntity)
|
|
167
173
|
throw Error("useBuildDataSource delegate not initialised");
|
|
168
174
|
|
|
169
|
-
return
|
|
175
|
+
return usedDelegate.listenEntity<M>({
|
|
170
176
|
path,
|
|
171
177
|
entityId,
|
|
172
178
|
onUpdate,
|
|
173
|
-
onError
|
|
179
|
+
onError,
|
|
180
|
+
collection
|
|
174
181
|
})
|
|
175
182
|
}, [delegate.listenEntity]) : undefined,
|
|
176
183
|
|
|
@@ -195,46 +202,45 @@ export function useBuildDataSource({
|
|
|
195
202
|
}: SaveEntityProps<M>): Promise<Entity<M>> => {
|
|
196
203
|
|
|
197
204
|
const collection = collectionProp ?? navigationController.getCollection(path);
|
|
205
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
198
206
|
|
|
199
207
|
const resolvedCollection = collection
|
|
200
208
|
? resolveCollection<M>({
|
|
201
209
|
collection,
|
|
202
210
|
path,
|
|
203
211
|
entityId,
|
|
204
|
-
|
|
212
|
+
propertyConfigs: propertyConfigs
|
|
205
213
|
})
|
|
206
214
|
: undefined;
|
|
207
215
|
|
|
208
216
|
const properties: ResolvedProperties<M> | undefined = resolvedCollection?.properties;
|
|
209
217
|
|
|
210
|
-
const firestoreValues = cmsToDelegateModel(
|
|
218
|
+
const firestoreValues = usedDelegate.cmsToDelegateModel(
|
|
211
219
|
values,
|
|
212
|
-
delegate.buildReference,
|
|
213
|
-
delegate.buildGeoPoint,
|
|
214
|
-
delegate.buildDate,
|
|
215
|
-
delegate.buildDeleteFieldValue
|
|
216
220
|
);
|
|
217
|
-
|
|
221
|
+
|
|
222
|
+
const updatedValues: EntityValues<M> = properties
|
|
218
223
|
? updateDateAutoValues(
|
|
219
224
|
{
|
|
220
225
|
inputValues: firestoreValues,
|
|
221
226
|
properties,
|
|
222
227
|
status,
|
|
223
|
-
timestampNowValue:
|
|
224
|
-
setDateToMidnight:
|
|
228
|
+
timestampNowValue: usedDelegate.currentTime?.() ?? new Date(),
|
|
229
|
+
setDateToMidnight: usedDelegate.setDateToMidnight
|
|
225
230
|
})
|
|
226
231
|
: firestoreValues;
|
|
227
232
|
|
|
228
|
-
return
|
|
233
|
+
return usedDelegate.saveEntity({
|
|
229
234
|
path,
|
|
235
|
+
collection,
|
|
230
236
|
entityId,
|
|
231
|
-
values:
|
|
237
|
+
values: updatedValues,
|
|
232
238
|
status
|
|
233
239
|
}).then((res) => {
|
|
234
240
|
return {
|
|
235
241
|
id: res.id,
|
|
236
242
|
path: res.path,
|
|
237
|
-
values:
|
|
243
|
+
values: usedDelegate.delegateToCMSModel(updatedValues)
|
|
238
244
|
} as Entity<M>;
|
|
239
245
|
});
|
|
240
246
|
}, [delegate.saveEntity, navigationController.getCollection]),
|
|
@@ -247,10 +253,15 @@ export function useBuildDataSource({
|
|
|
247
253
|
*/
|
|
248
254
|
deleteEntity: useCallback(<M extends Record<string, any>>(
|
|
249
255
|
{
|
|
250
|
-
entity
|
|
256
|
+
entity,
|
|
257
|
+
collection
|
|
251
258
|
}: DeleteEntityProps<M>
|
|
252
259
|
): Promise<void> => {
|
|
253
|
-
|
|
260
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
261
|
+
return usedDelegate.deleteEntity({
|
|
262
|
+
entity,
|
|
263
|
+
collection
|
|
264
|
+
});
|
|
254
265
|
}, [delegate.deleteEntity]),
|
|
255
266
|
|
|
256
267
|
/**
|
|
@@ -267,13 +278,16 @@ export function useBuildDataSource({
|
|
|
267
278
|
path: string,
|
|
268
279
|
name: string,
|
|
269
280
|
value: any,
|
|
270
|
-
entityId?: string
|
|
281
|
+
entityId?: string,
|
|
282
|
+
collection?: EntityCollection
|
|
271
283
|
): Promise<boolean> => {
|
|
272
|
-
|
|
284
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
285
|
+
return usedDelegate.checkUniqueField(path, name, value, entityId, collection);
|
|
273
286
|
}, [delegate.checkUniqueField]),
|
|
274
287
|
|
|
275
|
-
generateEntityId: useCallback((path: string): string => {
|
|
276
|
-
|
|
288
|
+
generateEntityId: useCallback((path: string, collection: EntityCollection): string => {
|
|
289
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
290
|
+
return usedDelegate.generateEntityId(path, collection);
|
|
277
291
|
}, [delegate.generateEntityId]),
|
|
278
292
|
|
|
279
293
|
countEntities: delegate.countEntities ? async ({
|
|
@@ -289,21 +303,24 @@ export function useBuildDataSource({
|
|
|
289
303
|
orderBy?: string,
|
|
290
304
|
order?: "desc" | "asc",
|
|
291
305
|
}): Promise<number> => {
|
|
292
|
-
|
|
306
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
307
|
+
return usedDelegate.countEntities!({
|
|
293
308
|
path,
|
|
294
309
|
filter,
|
|
295
310
|
orderBy,
|
|
296
311
|
order,
|
|
297
|
-
|
|
312
|
+
collection
|
|
298
313
|
});
|
|
299
314
|
} : undefined,
|
|
300
315
|
|
|
301
316
|
isFilterCombinationValid: useCallback(({
|
|
302
317
|
path,
|
|
318
|
+
databaseId,
|
|
303
319
|
filterValues,
|
|
304
320
|
sortBy
|
|
305
321
|
}: {
|
|
306
322
|
path: string,
|
|
323
|
+
databaseId?: string,
|
|
307
324
|
filterValues: FilterValues<any>,
|
|
308
325
|
sortBy?: [string, "asc" | "desc"]
|
|
309
326
|
}): boolean => {
|
|
@@ -312,52 +329,25 @@ export function useBuildDataSource({
|
|
|
312
329
|
return delegate.isFilterCombinationValid(
|
|
313
330
|
{
|
|
314
331
|
path,
|
|
332
|
+
databaseId,
|
|
315
333
|
filterValues,
|
|
316
334
|
sortBy
|
|
317
335
|
}
|
|
318
336
|
)
|
|
319
|
-
}, [delegate.isFilterCombinationValid])
|
|
337
|
+
}, [delegate.isFilterCombinationValid]),
|
|
320
338
|
|
|
321
|
-
|
|
339
|
+
initTextSearch: useCallback(async (props: {
|
|
340
|
+
context: FireCMSContext,
|
|
341
|
+
path: string,
|
|
342
|
+
collection: EntityCollection,
|
|
343
|
+
parentCollectionIds?: string[]
|
|
344
|
+
}): Promise<boolean> => {
|
|
345
|
+
const usedDelegate = props.collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
346
|
+
if (!usedDelegate.initTextSearch)
|
|
347
|
+
return false;
|
|
348
|
+
return usedDelegate.initTextSearch(props)
|
|
349
|
+
}, [delegate.initTextSearch]),
|
|
322
350
|
|
|
323
|
-
}
|
|
351
|
+
};
|
|
324
352
|
|
|
325
|
-
/**
|
|
326
|
-
* Recursive function that converts Firestore data types into CMS or plain
|
|
327
|
-
* JS types.
|
|
328
|
-
* FireCMS uses Javascript dates internally instead of Firestore timestamps.
|
|
329
|
-
* This makes it easier to interact with the rest of the libraries and
|
|
330
|
-
* bindings.
|
|
331
|
-
* Also, Firestore references are replaced with {@link EntityReference}
|
|
332
|
-
* @param data
|
|
333
|
-
* @param buildReference
|
|
334
|
-
* @param buildGeoPoint
|
|
335
|
-
* @param buildDate
|
|
336
|
-
* @param buildDelete
|
|
337
|
-
* @group Firestore
|
|
338
|
-
*/
|
|
339
|
-
export function cmsToDelegateModel(data: any,
|
|
340
|
-
buildReference: (reference: EntityReference) => any,
|
|
341
|
-
buildGeoPoint: (geoPoint: GeoPoint) => any,
|
|
342
|
-
buildDate: (date: Date) => any,
|
|
343
|
-
buildDelete: () => any
|
|
344
|
-
): any {
|
|
345
|
-
if (data === undefined) {
|
|
346
|
-
return buildDelete();
|
|
347
|
-
} else if (data === null) {
|
|
348
|
-
return null;
|
|
349
|
-
} else if (Array.isArray(data)) {
|
|
350
|
-
return data.map(v => cmsToDelegateModel(v, buildReference, buildGeoPoint, buildDate, buildDelete));
|
|
351
|
-
} else if (data.isEntityReference && data.isEntityReference()) {
|
|
352
|
-
return buildReference(data);
|
|
353
|
-
} else if (data instanceof GeoPoint) {
|
|
354
|
-
return buildGeoPoint(data);
|
|
355
|
-
} else if (data instanceof Date) {
|
|
356
|
-
return buildDate(data);
|
|
357
|
-
} else if (data && typeof data === "object") {
|
|
358
|
-
return Object.entries(data)
|
|
359
|
-
.map(([key, v]) => ({ [key]: cmsToDelegateModel(v, buildReference, buildGeoPoint, buildDate, buildDelete) }))
|
|
360
|
-
.reduce((a, b) => ({ ...a, ...b }), {});
|
|
361
|
-
}
|
|
362
|
-
return data;
|
|
363
353
|
}
|
|
@@ -25,8 +25,9 @@ export function useBuildSideDialogsController(): SideDialogsController {
|
|
|
25
25
|
const newPanels = panelKeys
|
|
26
26
|
.map(key => routesStore.current[key])
|
|
27
27
|
.filter(p => Boolean(p)) as SideDialogPanelProps[];
|
|
28
|
-
if (!equal(sidePanelsRef.current.map(p => p.key), newPanels.map(p => p.key)))
|
|
28
|
+
if (!equal(sidePanelsRef.current.map(p => p.key), newPanels.map(p => p.key))) {
|
|
29
29
|
updateSidePanels(newPanels);
|
|
30
|
+
}
|
|
30
31
|
}, [location]);
|
|
31
32
|
|
|
32
33
|
const close = useCallback(() => {
|
|
@@ -39,7 +40,7 @@ export function useBuildSideDialogsController(): SideDialogsController {
|
|
|
39
40
|
updateSidePanels(updatedPanels);
|
|
40
41
|
|
|
41
42
|
if (routesCount.current > 0) {
|
|
42
|
-
if (lastSidePanel.urlPath)
|
|
43
|
+
if (lastSidePanel.urlPath) // if it has a url path, we need to navigate back, don't remove this code
|
|
43
44
|
navigate(-1);
|
|
44
45
|
routesCount.current--;
|
|
45
46
|
} else if (lastSidePanel.parentUrlPath) {
|
|
@@ -118,6 +119,7 @@ export function useBuildSideDialogsController(): SideDialogsController {
|
|
|
118
119
|
|
|
119
120
|
return {
|
|
120
121
|
sidePanels,
|
|
122
|
+
setSidePanels: updateSidePanels,
|
|
121
123
|
close,
|
|
122
124
|
open,
|
|
123
125
|
replace
|