@firecms/core 3.0.0-canary.29 → 3.0.0-canary.290
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +34 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +31 -12
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +14 -13
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
- package/dist/components/EntityCollectionTable/index.d.ts +1 -1
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +20 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +10 -7
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
- package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
- package/dist/components/HomePage/NavigationCard.d.ts +3 -1
- package/dist/components/HomePage/NavigationCardBinding.d.ts +4 -3
- package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
- package/dist/components/PropertyCollectionView.d.ts +23 -0
- package/dist/components/PropertyConfigBadge.d.ts +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/ReferenceWidget.d.ts +3 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +14 -4
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/UnsavedChangesDialog.d.ts +8 -0
- package/dist/components/UserDisplay.d.ts +7 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -12
- package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
- package/dist/components/common/index.d.ts +2 -1
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +4 -6
- package/dist/components/common/useColumnsIds.d.ts +3 -1
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +5 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/contexts/InternalUserManagementContext.d.ts +3 -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 +49 -11
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +2 -3
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +2 -3
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/field_configs.d.ts +1 -1
- package/dist/core/index.d.ts +4 -4
- package/dist/form/EntityForm.d.ts +40 -64
- package/dist/form/EntityFormActions.d.ts +21 -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/LocalChangesMenu.d.ts +11 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -4
- package/dist/form/components/index.d.ts +3 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -13
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
- package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +18 -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 +3 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +57 -13
- package/dist/hooks/useCollapsedGroups.d.ts +9 -0
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
- 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 +24546 -13965
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +27256 -588
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +3 -17
- package/dist/internal/useBuildSideEntityController.d.ts +3 -3
- package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
- package/dist/preview/PropertyPreviewProps.d.ts +6 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +4 -3
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/components/UserPreview.d.ts +8 -0
- package/dist/preview/index.d.ts +1 -0
- package/dist/preview/util.d.ts +3 -3
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/FireCMSRoute.d.ts +1 -0
- package/dist/routes/HomePageRoute.d.ts +3 -0
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +123 -25
- package/dist/types/customization_controller.d.ts +8 -0
- package/dist/types/datasource.d.ts +52 -36
- package/dist/types/dialogs_controller.d.ts +7 -3
- package/dist/types/entities.d.ts +12 -3
- package/dist/types/entity_actions.d.ts +72 -8
- 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 +79 -39
- package/dist/types/firecms.d.ts +31 -3
- package/dist/types/firecms_context.d.ts +17 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal_user_management.d.ts +20 -0
- package/dist/types/navigation.d.ts +62 -19
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +58 -13
- package/dist/types/properties.d.ts +122 -31
- package/dist/types/property_config.d.ts +1 -3
- package/dist/types/roles.d.ts +3 -0
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/side_entity_controller.d.ts +14 -1
- package/dist/types/storage.d.ts +75 -0
- package/dist/types/user.d.ts +2 -1
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/callbacks.d.ts +2 -0
- package/dist/util/collections.d.ts +1 -0
- package/dist/util/createFormexStub.d.ts +2 -0
- package/dist/util/entities.d.ts +3 -3
- package/dist/util/entity_actions.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +28 -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 +7 -4
- package/dist/util/index.d.ts +3 -0
- package/dist/util/make_properties_editable.d.ts +1 -2
- package/dist/util/navigation_from_path.d.ts +10 -1
- package/dist/util/navigation_utils.d.ts +15 -3
- package/dist/util/objects.d.ts +3 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +4 -4
- package/dist/util/references.d.ts +2 -2
- package/dist/util/resolutions.d.ts +42 -17
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/useStorageUploadController.d.ts +4 -3
- package/package.json +70 -53
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +253 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +447 -229
- package/src/components/CircularProgressCenter.tsx +2 -2
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
- package/src/components/DeleteEntityDialog.tsx +13 -20
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +87 -62
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +84 -42
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
- package/src/components/EntityCollectionTable/index.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +34 -39
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +241 -119
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
- 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 +83 -62
- package/src/components/EntityView.tsx +34 -42
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/FireCMSLogo.tsx +7 -51
- package/src/components/HomePage/DefaultHomePage.tsx +516 -158
- package/src/components/HomePage/FavouritesView.tsx +9 -14
- package/src/components/HomePage/HomePageDnD.tsx +702 -0
- package/src/components/HomePage/NavigationCard.tsx +48 -39
- package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
- package/src/components/HomePage/NavigationGroup.tsx +144 -30
- package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyCollectionView.tsx +329 -0
- package/src/components/PropertyConfigBadge.tsx +10 -4
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +23 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +157 -157
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +27 -9
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -24
- package/src/components/UnsavedChangesDialog.tsx +46 -0
- package/src/components/UserDisplay.tsx +55 -0
- package/src/components/VirtualTable/VirtualTable.tsx +105 -51
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +28 -14
- package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
- package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +99 -0
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +64 -44
- 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 +16 -2
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +6 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- package/src/contexts/InternalUserManagementContext.tsx +4 -0
- 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 +447 -469
- package/src/core/EntityEditViewFormActions.tsx +344 -0
- package/src/core/EntitySidePanel.tsx +96 -23
- package/src/core/FireCMS.tsx +85 -60
- 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 +41 -14
- package/src/core/index.tsx +6 -5
- package/src/form/EntityForm.tsx +740 -523
- package/src/form/EntityFormActions.tsx +226 -0
- package/src/form/PropertyFieldBinding.tsx +88 -41
- package/src/form/components/CustomIdField.tsx +9 -3
- package/src/form/components/ErrorFocus.tsx +22 -29
- 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/LocalChangesMenu.tsx +144 -0
- package/src/form/components/StorageItemPreview.tsx +23 -13
- package/src/form/components/StorageUploadProgress.tsx +5 -6
- package/src/form/components/index.tsx +3 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +50 -36
- package/src/form/field_bindings/BlockFieldBinding.tsx +56 -33
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +61 -52
- package/src/form/field_bindings/MapFieldBinding.tsx +73 -55
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
- package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
- package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +257 -199
- package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
- package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +94 -0
- package/src/form/index.tsx +21 -37
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +13 -23
- package/src/hooks/data/delete.ts +6 -5
- package/src/hooks/data/save.ts +26 -33
- package/src/hooks/data/useCollectionFetch.tsx +3 -3
- package/src/hooks/data/useDataSource.tsx +11 -3
- package/src/hooks/data/useEntityFetch.tsx +10 -6
- package/src/hooks/index.tsx +4 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +22 -29
- package/src/hooks/useBuildNavigationController.tsx +515 -121
- package/src/hooks/useCollapsedGroups.ts +64 -0
- package/src/hooks/useFireCMSContext.tsx +9 -35
- package/src/hooks/useInternalUserManagementController.tsx +16 -0
- package/src/hooks/useLargeLayout.tsx +0 -35
- package/src/hooks/useModeController.tsx +1 -2
- package/src/hooks/useProjectLog.tsx +32 -10
- package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
- package/src/hooks/useValidateAuthenticator.tsx +17 -37
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +79 -85
- package/src/internal/useBuildSideDialogsController.tsx +4 -2
- package/src/internal/useBuildSideEntityController.tsx +204 -77
- package/src/internal/useUnsavedChangesDialog.tsx +127 -91
- package/src/preview/PropertyPreview.tsx +42 -25
- package/src/preview/PropertyPreviewProps.tsx +7 -1
- package/src/preview/components/BooleanPreview.tsx +2 -2
- package/src/preview/components/EmptyValue.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +26 -37
- package/src/preview/components/ReferencePreview.tsx +30 -38
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +60 -28
- package/src/preview/components/UserPreview.tsx +27 -0
- package/src/preview/index.ts +1 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -6
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +7 -5
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -4
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -4
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -6
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +8 -7
- package/src/preview/property_previews/MapPropertyPreview.tsx +14 -13
- package/src/preview/property_previews/NumberPropertyPreview.tsx +2 -2
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/preview/util.ts +10 -10
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/FireCMSRoute.tsx +246 -0
- package/src/routes/HomePageRoute.tsx +17 -0
- package/src/types/analytics.ts +3 -0
- package/src/types/auth.tsx +9 -13
- package/src/types/collections.ts +146 -30
- package/src/types/customization_controller.tsx +9 -1
- package/src/types/datasource.ts +61 -43
- package/src/types/dialogs_controller.tsx +7 -3
- package/src/types/entities.ts +19 -3
- package/src/types/entity_actions.tsx +86 -10
- 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 +91 -42
- package/src/types/firecms.tsx +34 -4
- package/src/types/firecms_context.tsx +18 -1
- package/src/types/index.ts +1 -1
- package/src/types/internal_user_management.ts +24 -0
- package/src/types/navigation.ts +77 -24
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +69 -15
- package/src/types/properties.ts +141 -33
- package/src/types/property_config.tsx +2 -2
- package/src/types/roles.ts +3 -0
- package/src/types/side_dialogs_controller.tsx +15 -0
- package/src/types/side_entity_controller.tsx +16 -1
- package/src/types/storage.ts +83 -1
- package/src/types/user.ts +3 -1
- package/src/util/builders.ts +10 -8
- package/src/util/callbacks.ts +119 -0
- package/src/util/collections.ts +8 -0
- package/src/util/createFormexStub.tsx +66 -0
- package/src/util/entities.ts +11 -8
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +223 -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 +36 -11
- package/src/util/index.ts +3 -0
- package/src/util/join_collections.ts +11 -4
- package/src/util/make_properties_editable.ts +5 -19
- package/src/util/navigation_from_path.ts +33 -12
- package/src/util/navigation_utils.ts +141 -25
- package/src/util/objects.ts +128 -33
- package/src/util/parent_references_from_path.ts +3 -3
- package/src/util/permissions.ts +9 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +17 -6
- package/src/util/references.ts +19 -8
- package/src/util/resolutions.ts +122 -48
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +2 -2
- package/src/util/useStorageUploadController.tsx +162 -62
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
- package/dist/components/FireCMSAppBar.d.ts +0 -26
- package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -55
- package/dist/core/SideEntityView.d.ts +0 -7
- package/dist/form/components/FormikArrayContainer.d.ts +0 -18
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
- package/src/components/FireCMSAppBar.tsx +0 -165
- package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
- package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
- package/src/core/Drawer.tsx +0 -191
- package/src/core/Scaffold.tsx +0 -281
- package/src/core/SideEntityView.tsx +0 -38
- package/src/form/components/FormikArrayContainer.tsx +0 -44
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
- /package/src/util/{common.tsx → common.ts} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
import {
|
|
3
|
+
AuthController,
|
|
3
4
|
DataSource,
|
|
4
5
|
DataSourceDelegate,
|
|
5
6
|
DeleteEntityProps,
|
|
6
7
|
Entity,
|
|
7
8
|
EntityCollection,
|
|
8
|
-
EntityReference,
|
|
9
9
|
EntityValues,
|
|
10
10
|
FetchCollectionProps,
|
|
11
11
|
FetchEntityProps,
|
|
12
12
|
FilterValues,
|
|
13
|
-
|
|
13
|
+
FireCMSContext,
|
|
14
14
|
ListenCollectionProps,
|
|
15
15
|
ListenEntityProps,
|
|
16
16
|
NavigationController,
|
|
@@ -28,11 +28,13 @@ import { resolveCollection, updateDateAutoValues } from "../util";
|
|
|
28
28
|
export function useBuildDataSource({
|
|
29
29
|
delegate,
|
|
30
30
|
propertyConfigs,
|
|
31
|
-
navigationController
|
|
31
|
+
navigationController,
|
|
32
|
+
authController
|
|
32
33
|
}: {
|
|
33
34
|
delegate: DataSourceDelegate,
|
|
34
35
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
35
36
|
navigationController: NavigationController;
|
|
37
|
+
authController: AuthController;
|
|
36
38
|
}): DataSource {
|
|
37
39
|
|
|
38
40
|
return {
|
|
@@ -53,23 +55,25 @@ export function useBuildDataSource({
|
|
|
53
55
|
*/
|
|
54
56
|
fetchCollection: useCallback(<M extends Record<string, any>>({
|
|
55
57
|
path,
|
|
56
|
-
collection
|
|
58
|
+
collection,
|
|
57
59
|
filter,
|
|
58
60
|
limit,
|
|
59
61
|
startAfter,
|
|
60
62
|
searchString,
|
|
61
63
|
orderBy,
|
|
62
|
-
order
|
|
64
|
+
order,
|
|
63
65
|
}: FetchCollectionProps<M>
|
|
64
66
|
): Promise<Entity<M>[]> => {
|
|
65
|
-
|
|
67
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
68
|
+
return usedDelegate.fetchCollection<M>({
|
|
66
69
|
path,
|
|
67
70
|
filter,
|
|
68
71
|
limit,
|
|
69
72
|
startAfter,
|
|
70
73
|
searchString,
|
|
71
74
|
orderBy,
|
|
72
|
-
order
|
|
75
|
+
order,
|
|
76
|
+
collection
|
|
73
77
|
});
|
|
74
78
|
}, [delegate]),
|
|
75
79
|
|
|
@@ -90,7 +94,6 @@ export function useBuildDataSource({
|
|
|
90
94
|
* @group Firestore
|
|
91
95
|
*/
|
|
92
96
|
listenCollection: delegate.listenCollection
|
|
93
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
94
97
|
? useCallback(<M extends Record<string, any>>(
|
|
95
98
|
{
|
|
96
99
|
path,
|
|
@@ -107,11 +110,12 @@ export function useBuildDataSource({
|
|
|
107
110
|
): () => void => {
|
|
108
111
|
|
|
109
112
|
const collection = collectionProp ?? navigationController.getCollection(path);
|
|
110
|
-
const
|
|
111
|
-
|
|
113
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
114
|
+
|
|
115
|
+
if (!usedDelegate.listenCollection)
|
|
112
116
|
throw Error("useBuildDataSource delegate not initialised");
|
|
113
117
|
|
|
114
|
-
return
|
|
118
|
+
return usedDelegate.listenCollection<M>({
|
|
115
119
|
path,
|
|
116
120
|
filter,
|
|
117
121
|
limit,
|
|
@@ -121,8 +125,7 @@ export function useBuildDataSource({
|
|
|
121
125
|
order,
|
|
122
126
|
onUpdate,
|
|
123
127
|
onError,
|
|
124
|
-
|
|
125
|
-
collection
|
|
128
|
+
collection,
|
|
126
129
|
});
|
|
127
130
|
}, [delegate, navigationController.getCollection])
|
|
128
131
|
: undefined,
|
|
@@ -136,12 +139,17 @@ export function useBuildDataSource({
|
|
|
136
139
|
*/
|
|
137
140
|
fetchEntity: useCallback(<M extends Record<string, any>>({
|
|
138
141
|
path,
|
|
139
|
-
entityId
|
|
142
|
+
entityId,
|
|
143
|
+
collection
|
|
140
144
|
}: FetchEntityProps<M>
|
|
141
|
-
): Promise<Entity<M> | undefined> =>
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
+
): Promise<Entity<M> | undefined> => {
|
|
146
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
147
|
+
return usedDelegate.fetchEntity({
|
|
148
|
+
path,
|
|
149
|
+
entityId,
|
|
150
|
+
collection
|
|
151
|
+
});
|
|
152
|
+
}, [delegate.fetchEntity]),
|
|
145
153
|
|
|
146
154
|
/**
|
|
147
155
|
*
|
|
@@ -154,7 +162,6 @@ export function useBuildDataSource({
|
|
|
154
162
|
* @group Firestore
|
|
155
163
|
*/
|
|
156
164
|
listenEntity: delegate.listenEntity
|
|
157
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
158
165
|
? useCallback(<M extends Record<string, any>>(
|
|
159
166
|
{
|
|
160
167
|
path,
|
|
@@ -163,14 +170,17 @@ export function useBuildDataSource({
|
|
|
163
170
|
onUpdate,
|
|
164
171
|
onError
|
|
165
172
|
}: ListenEntityProps<M>): () => void => {
|
|
166
|
-
|
|
173
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
174
|
+
|
|
175
|
+
if (!usedDelegate.listenEntity)
|
|
167
176
|
throw Error("useBuildDataSource delegate not initialised");
|
|
168
177
|
|
|
169
|
-
return
|
|
178
|
+
return usedDelegate.listenEntity<M>({
|
|
170
179
|
path,
|
|
171
180
|
entityId,
|
|
172
181
|
onUpdate,
|
|
173
|
-
onError
|
|
182
|
+
onError,
|
|
183
|
+
collection
|
|
174
184
|
})
|
|
175
185
|
}, [delegate.listenEntity]) : undefined,
|
|
176
186
|
|
|
@@ -195,46 +205,46 @@ export function useBuildDataSource({
|
|
|
195
205
|
}: SaveEntityProps<M>): Promise<Entity<M>> => {
|
|
196
206
|
|
|
197
207
|
const collection = collectionProp ?? navigationController.getCollection(path);
|
|
208
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
198
209
|
|
|
199
210
|
const resolvedCollection = collection
|
|
200
211
|
? resolveCollection<M>({
|
|
201
212
|
collection,
|
|
202
213
|
path,
|
|
203
214
|
entityId,
|
|
204
|
-
|
|
215
|
+
propertyConfigs: propertyConfigs,
|
|
216
|
+
authController
|
|
205
217
|
})
|
|
206
218
|
: undefined;
|
|
207
219
|
|
|
208
220
|
const properties: ResolvedProperties<M> | undefined = resolvedCollection?.properties;
|
|
209
221
|
|
|
210
|
-
const
|
|
222
|
+
const delegateValues = usedDelegate.cmsToDelegateModel(
|
|
211
223
|
values,
|
|
212
|
-
delegate.buildReference,
|
|
213
|
-
delegate.buildGeoPoint,
|
|
214
|
-
delegate.buildDate,
|
|
215
|
-
delegate.buildDeleteFieldValue
|
|
216
224
|
);
|
|
217
|
-
|
|
225
|
+
|
|
226
|
+
const updatedValues: EntityValues<M> = properties
|
|
218
227
|
? updateDateAutoValues(
|
|
219
228
|
{
|
|
220
|
-
inputValues:
|
|
229
|
+
inputValues: delegateValues,
|
|
221
230
|
properties,
|
|
222
231
|
status,
|
|
223
|
-
timestampNowValue:
|
|
224
|
-
setDateToMidnight:
|
|
232
|
+
timestampNowValue: usedDelegate.currentTime?.() ?? new Date(),
|
|
233
|
+
setDateToMidnight: usedDelegate.setDateToMidnight
|
|
225
234
|
})
|
|
226
|
-
:
|
|
235
|
+
: delegateValues;
|
|
227
236
|
|
|
228
|
-
return
|
|
237
|
+
return usedDelegate.saveEntity({
|
|
229
238
|
path,
|
|
239
|
+
collection,
|
|
230
240
|
entityId,
|
|
231
|
-
values:
|
|
241
|
+
values: updatedValues,
|
|
232
242
|
status
|
|
233
243
|
}).then((res) => {
|
|
234
244
|
return {
|
|
235
245
|
id: res.id,
|
|
236
246
|
path: res.path,
|
|
237
|
-
values:
|
|
247
|
+
values: usedDelegate.delegateToCMSModel(updatedValues)
|
|
238
248
|
} as Entity<M>;
|
|
239
249
|
});
|
|
240
250
|
}, [delegate.saveEntity, navigationController.getCollection]),
|
|
@@ -247,10 +257,15 @@ export function useBuildDataSource({
|
|
|
247
257
|
*/
|
|
248
258
|
deleteEntity: useCallback(<M extends Record<string, any>>(
|
|
249
259
|
{
|
|
250
|
-
entity
|
|
260
|
+
entity,
|
|
261
|
+
collection
|
|
251
262
|
}: DeleteEntityProps<M>
|
|
252
263
|
): Promise<void> => {
|
|
253
|
-
|
|
264
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
265
|
+
return usedDelegate.deleteEntity({
|
|
266
|
+
entity,
|
|
267
|
+
collection
|
|
268
|
+
});
|
|
254
269
|
}, [delegate.deleteEntity]),
|
|
255
270
|
|
|
256
271
|
/**
|
|
@@ -267,13 +282,16 @@ export function useBuildDataSource({
|
|
|
267
282
|
path: string,
|
|
268
283
|
name: string,
|
|
269
284
|
value: any,
|
|
270
|
-
entityId?: string
|
|
285
|
+
entityId?: string,
|
|
286
|
+
collection?: EntityCollection
|
|
271
287
|
): Promise<boolean> => {
|
|
272
|
-
|
|
288
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
289
|
+
return usedDelegate.checkUniqueField(path, name, value, entityId, collection);
|
|
273
290
|
}, [delegate.checkUniqueField]),
|
|
274
291
|
|
|
275
|
-
generateEntityId: useCallback((path: string): string => {
|
|
276
|
-
|
|
292
|
+
generateEntityId: useCallback((path: string, collection: EntityCollection): string => {
|
|
293
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
294
|
+
return usedDelegate.generateEntityId(path, collection);
|
|
277
295
|
}, [delegate.generateEntityId]),
|
|
278
296
|
|
|
279
297
|
countEntities: delegate.countEntities ? async ({
|
|
@@ -289,21 +307,24 @@ export function useBuildDataSource({
|
|
|
289
307
|
orderBy?: string,
|
|
290
308
|
order?: "desc" | "asc",
|
|
291
309
|
}): Promise<number> => {
|
|
292
|
-
|
|
310
|
+
const usedDelegate = collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
311
|
+
return usedDelegate.countEntities!({
|
|
293
312
|
path,
|
|
294
313
|
filter,
|
|
295
314
|
orderBy,
|
|
296
315
|
order,
|
|
297
|
-
|
|
316
|
+
collection
|
|
298
317
|
});
|
|
299
318
|
} : undefined,
|
|
300
319
|
|
|
301
320
|
isFilterCombinationValid: useCallback(({
|
|
302
321
|
path,
|
|
322
|
+
databaseId,
|
|
303
323
|
filterValues,
|
|
304
324
|
sortBy
|
|
305
325
|
}: {
|
|
306
326
|
path: string,
|
|
327
|
+
databaseId?: string,
|
|
307
328
|
filterValues: FilterValues<any>,
|
|
308
329
|
sortBy?: [string, "asc" | "desc"]
|
|
309
330
|
}): boolean => {
|
|
@@ -312,52 +333,25 @@ export function useBuildDataSource({
|
|
|
312
333
|
return delegate.isFilterCombinationValid(
|
|
313
334
|
{
|
|
314
335
|
path,
|
|
336
|
+
databaseId,
|
|
315
337
|
filterValues,
|
|
316
338
|
sortBy
|
|
317
339
|
}
|
|
318
340
|
)
|
|
319
|
-
}, [delegate.isFilterCombinationValid])
|
|
341
|
+
}, [delegate.isFilterCombinationValid]),
|
|
320
342
|
|
|
321
|
-
|
|
343
|
+
initTextSearch: useCallback(async (props: {
|
|
344
|
+
context: FireCMSContext,
|
|
345
|
+
path: string,
|
|
346
|
+
collection: EntityCollection,
|
|
347
|
+
parentCollectionIds?: string[]
|
|
348
|
+
}): Promise<boolean> => {
|
|
349
|
+
const usedDelegate = props.collection?.overrides?.dataSourceDelegate ?? delegate;
|
|
350
|
+
if (!usedDelegate.initTextSearch)
|
|
351
|
+
return false;
|
|
352
|
+
return usedDelegate.initTextSearch(props)
|
|
353
|
+
}, [delegate.initTextSearch]),
|
|
322
354
|
|
|
323
|
-
}
|
|
355
|
+
};
|
|
324
356
|
|
|
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
357
|
}
|
|
@@ -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
|