@firecms/core 3.0.0-canary.29 → 3.0.0-canary.292
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
package/dist/types/plugins.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from "react";
|
|
2
2
|
import { FireCMSContext } from "./firecms_context";
|
|
3
|
-
import { CollectionActionsProps, EntityCollection } from "./collections";
|
|
3
|
+
import { CollectionActionsProps, EntityCollection, EntityTableController } from "./collections";
|
|
4
4
|
import { User } from "./user";
|
|
5
5
|
import { FieldProps, FormContext } from "./fields";
|
|
6
6
|
import { CMSType, Property } from "./properties";
|
|
7
7
|
import { EntityStatus } from "./entities";
|
|
8
8
|
import { ResolvedProperty } from "./resolved_entities";
|
|
9
|
+
import { NavigationGroupMapping } from "./navigation";
|
|
10
|
+
import { InternalUserManagement } from "./internal_user_management";
|
|
9
11
|
/**
|
|
10
12
|
* Interface used to define plugins for FireCMS.
|
|
11
13
|
* NOTE: This is a work in progress and the API is not stable yet.
|
|
12
14
|
* @group Core
|
|
13
15
|
*/
|
|
14
|
-
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
|
|
16
|
+
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any, COL_ACTIONS_START__PROPS = any> = {
|
|
15
17
|
/**
|
|
16
18
|
* Key of the plugin. This is used to identify the plugin in the CMS.
|
|
17
19
|
*/
|
|
@@ -36,6 +38,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
36
38
|
}>>;
|
|
37
39
|
props?: PROPS;
|
|
38
40
|
};
|
|
41
|
+
userManagement?: InternalUserManagement;
|
|
39
42
|
homePage?: {
|
|
40
43
|
/**
|
|
41
44
|
* Additional actions to be rendered in the home page, close to the search bar.
|
|
@@ -70,6 +73,17 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
70
73
|
title: string;
|
|
71
74
|
children: React.ReactNode;
|
|
72
75
|
};
|
|
76
|
+
/**
|
|
77
|
+
* Allow reordering with drag and drop of the collections in the home page.
|
|
78
|
+
*/
|
|
79
|
+
allowDragAndDrop?: boolean;
|
|
80
|
+
navigationEntries?: NavigationGroupMapping[];
|
|
81
|
+
/**
|
|
82
|
+
* This method will be called when the entries are updated in the home page.
|
|
83
|
+
* group => navigationEntriesOrder (path)
|
|
84
|
+
* @param entries
|
|
85
|
+
*/
|
|
86
|
+
onNavigationEntriesUpdate?: (entries: NavigationGroupMapping[]) => void;
|
|
73
87
|
};
|
|
74
88
|
collectionView?: {
|
|
75
89
|
/**
|
|
@@ -78,6 +92,14 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
78
92
|
*/
|
|
79
93
|
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
80
94
|
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
95
|
+
CollectionActionsStart?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS>[];
|
|
96
|
+
collectionActionsStartProps?: COL_ACTIONS_START__PROPS;
|
|
97
|
+
blockSearch?: (props: {
|
|
98
|
+
context: FireCMSContext;
|
|
99
|
+
path: string;
|
|
100
|
+
collection: EC;
|
|
101
|
+
parentCollectionIds?: string[];
|
|
102
|
+
}) => boolean;
|
|
81
103
|
showTextSearchBar?: (props: {
|
|
82
104
|
context: FireCMSContext;
|
|
83
105
|
path: string;
|
|
@@ -101,6 +123,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
101
123
|
parentCollectionIds: string[];
|
|
102
124
|
onHover: boolean;
|
|
103
125
|
collection: EC;
|
|
126
|
+
tableController: EntityTableController;
|
|
104
127
|
}>;
|
|
105
128
|
/**
|
|
106
129
|
* If you add this callback to your plugin, an add button will be added to the collection table.
|
|
@@ -110,6 +133,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
110
133
|
fullPath: string;
|
|
111
134
|
parentCollectionIds: string[];
|
|
112
135
|
collection: EC;
|
|
136
|
+
tableController: EntityTableController;
|
|
113
137
|
}>;
|
|
114
138
|
};
|
|
115
139
|
form?: {
|
|
@@ -117,10 +141,29 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
117
141
|
Component: React.ComponentType<PropsWithChildren<FORM_PROPS & PluginFormActionProps<any, EC>>>;
|
|
118
142
|
props?: FORM_PROPS;
|
|
119
143
|
};
|
|
144
|
+
/**
|
|
145
|
+
* Add custom actions to the default ones ("Save", "Discard"...)
|
|
146
|
+
*/
|
|
120
147
|
Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
148
|
+
/**
|
|
149
|
+
* Add custom actions to the top of the form
|
|
150
|
+
*/
|
|
151
|
+
ActionsTop?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
121
152
|
fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
|
|
122
153
|
fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
|
|
123
154
|
};
|
|
155
|
+
collection?: {
|
|
156
|
+
/**
|
|
157
|
+
* Use this method to modify a single collection before it is rendered.
|
|
158
|
+
* @param collection
|
|
159
|
+
*/
|
|
160
|
+
modifyCollection?: (collection: EntityCollection) => EntityCollection;
|
|
161
|
+
/**
|
|
162
|
+
* Use this method to modify, add or remove collections.
|
|
163
|
+
* @param collections
|
|
164
|
+
*/
|
|
165
|
+
injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
|
|
166
|
+
};
|
|
124
167
|
};
|
|
125
168
|
/**
|
|
126
169
|
* Props passed to the {@link FireCMSPlugin.homePage.CollectionActions} method.
|
|
@@ -128,7 +171,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
128
171
|
*
|
|
129
172
|
* @group Models
|
|
130
173
|
*/
|
|
131
|
-
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any,
|
|
174
|
+
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
132
175
|
/**
|
|
133
176
|
* Collection path of this entity. This is the full path, like
|
|
134
177
|
* `users/1234/addresses`
|
|
@@ -141,17 +184,19 @@ export interface PluginHomePageActionsProps<EP extends object = object, M extend
|
|
|
141
184
|
/**
|
|
142
185
|
* Context of the app status
|
|
143
186
|
*/
|
|
144
|
-
context: FireCMSContext<
|
|
187
|
+
context: FireCMSContext<USER>;
|
|
145
188
|
extraProps?: EP;
|
|
146
189
|
}
|
|
147
|
-
export interface PluginFormActionProps<
|
|
190
|
+
export interface PluginFormActionProps<USER extends User = User, EC extends EntityCollection = EntityCollection> {
|
|
148
191
|
entityId?: string;
|
|
149
192
|
path: string;
|
|
193
|
+
parentCollectionIds: string[];
|
|
150
194
|
status: EntityStatus;
|
|
151
195
|
collection: EC;
|
|
196
|
+
disabled: boolean;
|
|
152
197
|
formContext?: FormContext<any>;
|
|
153
|
-
context: FireCMSContext<
|
|
154
|
-
|
|
198
|
+
context: FireCMSContext<USER>;
|
|
199
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
155
200
|
}
|
|
156
201
|
export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Record<string, any> = any, EC extends EntityCollection<M> = EntityCollection<M>> = {
|
|
157
202
|
fieldConfigId: string;
|
|
@@ -159,13 +204,13 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
|
|
|
159
204
|
property: Property<T> | ResolvedProperty<T>;
|
|
160
205
|
Field: React.ComponentType<FieldProps<T, any, M>>;
|
|
161
206
|
plugin: FireCMSPlugin;
|
|
162
|
-
path
|
|
163
|
-
collection
|
|
207
|
+
path?: string;
|
|
208
|
+
collection?: EC;
|
|
164
209
|
};
|
|
165
|
-
export interface PluginGenericProps<
|
|
166
|
-
context: FireCMSContext<
|
|
210
|
+
export interface PluginGenericProps<USER extends User = User> {
|
|
211
|
+
context: FireCMSContext<USER>;
|
|
167
212
|
}
|
|
168
|
-
export interface PluginHomePageAdditionalCardsProps<
|
|
213
|
+
export interface PluginHomePageAdditionalCardsProps<USER extends User = User> {
|
|
169
214
|
group?: string;
|
|
170
|
-
context: FireCMSContext<
|
|
215
|
+
context: FireCMSContext<USER>;
|
|
171
216
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FieldProps } from "./fields";
|
|
3
3
|
import { PropertyPreviewProps } from "../preview";
|
|
4
|
-
import { EntityReference, EntityValues, GeoPoint } from "./entities";
|
|
4
|
+
import { EntityReference, EntityValues, GeoPoint, Vector } from "./entities";
|
|
5
5
|
import { ResolvedArrayProperty, ResolvedStringProperty } from "./resolved_entities";
|
|
6
6
|
import { FilterValues } from "./collections";
|
|
7
7
|
import { ChipColorKey, ChipColorScheme } from "@firecms/ui";
|
|
8
|
+
import { AuthController } from "./auth";
|
|
8
9
|
/**
|
|
9
10
|
* @group Entity properties
|
|
10
11
|
*/
|
|
11
|
-
export type DataType<T extends CMSType = CMSType> = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends Date ? "date" : T extends GeoPoint ? "geopoint" : T extends EntityReference ? "reference" : T extends Array<
|
|
12
|
+
export type DataType<T extends CMSType = CMSType> = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends Date ? "date" : T extends GeoPoint ? "geopoint" : T extends Vector ? "vector" : T extends EntityReference ? "reference" : T extends Array<any> ? "array" : T extends Record<string, any> ? "map" : never;
|
|
12
13
|
/**
|
|
13
14
|
* @group Entity properties
|
|
14
15
|
*/
|
|
@@ -20,7 +21,7 @@ export type AnyProperty = StringProperty | NumberProperty | BooleanProperty | Da
|
|
|
20
21
|
/**
|
|
21
22
|
* @group Entity properties
|
|
22
23
|
*/
|
|
23
|
-
export type Property<T extends CMSType =
|
|
24
|
+
export type Property<T extends CMSType = any> = T extends string ? StringProperty : T extends number ? NumberProperty : T extends boolean ? BooleanProperty : T extends Date ? DateProperty : T extends GeoPoint ? GeopointProperty : T extends EntityReference ? ReferenceProperty : T extends Array<CMSType> ? ArrayProperty<T> : T extends Record<string, any> ? MapProperty<T> : AnyProperty;
|
|
24
25
|
/**
|
|
25
26
|
* Interface including all common properties of a CMS property
|
|
26
27
|
* @group Entity properties
|
|
@@ -97,12 +98,21 @@ export interface BaseProperty<T extends CMSType, CustomProps = any> {
|
|
|
97
98
|
/**
|
|
98
99
|
* This value will be set by default for new entities.
|
|
99
100
|
*/
|
|
100
|
-
defaultValue?: T;
|
|
101
|
+
defaultValue?: T | null;
|
|
101
102
|
/**
|
|
102
103
|
* Should this property be editable. If set to true, the user will be able to modify the property and
|
|
103
104
|
* save the new config. The saved config will then become the source of truth.
|
|
105
|
+
* Defaults to `true.
|
|
106
|
+
* This props is only useful when you are using the collection editor to modify collection
|
|
107
|
+
* configurations from the CMS itself. You can also use the `editable` prop in the
|
|
108
|
+
* `EntityCollection` interface to disable the edition of all properties in a collection.
|
|
104
109
|
*/
|
|
105
110
|
editable?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* A number between 0 and 100 that indicates the width of the field in the form view.
|
|
113
|
+
* It defaults to 100, but you can set it to 50 to have two fields in the same row.
|
|
114
|
+
*/
|
|
115
|
+
widthPercentage?: number;
|
|
106
116
|
}
|
|
107
117
|
/**
|
|
108
118
|
* @group Entity properties
|
|
@@ -200,6 +210,10 @@ export type PropertyBuilderProps<M extends Record<string, any> = any> = {
|
|
|
200
210
|
* Entity ID
|
|
201
211
|
*/
|
|
202
212
|
entityId?: string;
|
|
213
|
+
/**
|
|
214
|
+
* Controller to manage authentication
|
|
215
|
+
*/
|
|
216
|
+
authController: AuthController;
|
|
203
217
|
};
|
|
204
218
|
/**
|
|
205
219
|
* You can use this type to define a property dynamically, based
|
|
@@ -207,15 +221,15 @@ export type PropertyBuilderProps<M extends Record<string, any> = any> = {
|
|
|
207
221
|
* current value of the property, as well as the path and entity ID.
|
|
208
222
|
* @group Entity properties
|
|
209
223
|
*/
|
|
210
|
-
export type PropertyBuilder<T extends CMSType = any, M extends Record<string, any> = any> = ({ values, previousValues, propertyValue, path, entityId }: PropertyBuilderProps<M>) => Property<T> | null;
|
|
224
|
+
export type PropertyBuilder<T extends CMSType = any, M extends Record<string, any> = any> = ({ values, previousValues, propertyValue, index, path, entityId, authController }: PropertyBuilderProps<M>) => Property<T> | null;
|
|
211
225
|
/**
|
|
212
226
|
* @group Entity properties
|
|
213
227
|
*/
|
|
214
|
-
export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> =
|
|
228
|
+
export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> = any> = Property<T> | PropertyBuilder<T, M>;
|
|
215
229
|
/**
|
|
216
230
|
* @group Entity properties
|
|
217
231
|
*/
|
|
218
|
-
export type PropertiesOrBuilders<M extends Record<string, any> =
|
|
232
|
+
export type PropertiesOrBuilders<M extends Record<string, any> = any> = {
|
|
219
233
|
[k in keyof M]: PropertyOrBuilder<M[k], M>;
|
|
220
234
|
};
|
|
221
235
|
/**
|
|
@@ -278,9 +292,18 @@ export interface StringProperty extends BaseProperty<string> {
|
|
|
278
292
|
enumValues?: EnumValues;
|
|
279
293
|
/**
|
|
280
294
|
* You can specify a `Storage` configuration. It is used to
|
|
281
|
-
* indicate that this string refers to a path in
|
|
295
|
+
* indicate that this string refers to a path in your storage provider.
|
|
282
296
|
*/
|
|
283
297
|
storage?: StorageConfig;
|
|
298
|
+
/**
|
|
299
|
+
* This property is used to indicate that the string is a user ID, and
|
|
300
|
+
* it will be rendered as a user picker.
|
|
301
|
+
* Note that the user ID needs to be the one used in your authentication
|
|
302
|
+
* provider, e.g. Firebase Auth.
|
|
303
|
+
* You can also use a property builder to specify the user path dynamically
|
|
304
|
+
* based on other values of the entity.
|
|
305
|
+
*/
|
|
306
|
+
userSelect?: boolean;
|
|
284
307
|
/**
|
|
285
308
|
* If the value of this property is a URL, you can set this flag to true
|
|
286
309
|
* to add a link, or one of the supported media types to render a preview
|
|
@@ -302,11 +325,18 @@ export interface StringProperty extends BaseProperty<string> {
|
|
|
302
325
|
* Add an icon to clear the value and set it to `null`. Defaults to `false`
|
|
303
326
|
*/
|
|
304
327
|
clearable?: boolean;
|
|
328
|
+
/**
|
|
329
|
+
* You can use this property (a string) to behave as a reference to another
|
|
330
|
+
* collection. The stored value is the ID of the entity in the
|
|
331
|
+
* collection, and the `path` prop is used to
|
|
332
|
+
* define the collection this reference points to.
|
|
333
|
+
*/
|
|
334
|
+
reference?: ReferenceProperty;
|
|
305
335
|
}
|
|
306
336
|
/**
|
|
307
337
|
* @group Entity properties
|
|
308
338
|
*/
|
|
309
|
-
export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType =
|
|
339
|
+
export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = any> extends BaseProperty<T> {
|
|
310
340
|
dataType: "array";
|
|
311
341
|
/**
|
|
312
342
|
* The property of this array.
|
|
@@ -361,6 +391,21 @@ export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSTyp
|
|
|
361
391
|
* Should the field be initially expanded. Defaults to `true`
|
|
362
392
|
*/
|
|
363
393
|
expanded?: boolean;
|
|
394
|
+
/**
|
|
395
|
+
* Display the child properties directly, without being wrapped in an
|
|
396
|
+
* extendable panel.
|
|
397
|
+
*/
|
|
398
|
+
minimalistView?: boolean;
|
|
399
|
+
/**
|
|
400
|
+
* Can the elements in this array be reordered. Defaults to `true`.
|
|
401
|
+
* This prop has no effect if `disabled` is set to true.
|
|
402
|
+
*/
|
|
403
|
+
sortable?: boolean;
|
|
404
|
+
/**
|
|
405
|
+
* Can the elements in this array be added. Defaults to `true`
|
|
406
|
+
* This prop has no effect if `disabled` is set to true.
|
|
407
|
+
*/
|
|
408
|
+
canAddElements?: boolean;
|
|
364
409
|
}
|
|
365
410
|
/**
|
|
366
411
|
* @group Entity properties
|
|
@@ -400,6 +445,11 @@ export interface MapProperty<T extends Record<string, CMSType> = Record<string,
|
|
|
400
445
|
* view
|
|
401
446
|
*/
|
|
402
447
|
spreadChildren?: boolean;
|
|
448
|
+
/**
|
|
449
|
+
* Display the child properties directly, without being wrapped in an
|
|
450
|
+
* extendable panel. Note that this will also hide the title of this property.
|
|
451
|
+
*/
|
|
452
|
+
minimalistView?: boolean;
|
|
403
453
|
/**
|
|
404
454
|
* Should the field be initially expanded. Defaults to `true`
|
|
405
455
|
*/
|
|
@@ -460,7 +510,7 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
|
|
|
460
510
|
* You can leave this prop undefined if the path is not yet know, e.g.
|
|
461
511
|
* you are using a property builder and the path depends on a different
|
|
462
512
|
* property.
|
|
463
|
-
* Note that you can also use a collection
|
|
513
|
+
* Note that you can also use a collection id.
|
|
464
514
|
*/
|
|
465
515
|
path?: string;
|
|
466
516
|
/**
|
|
@@ -474,6 +524,14 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
|
|
|
474
524
|
* specified values are considered.
|
|
475
525
|
*/
|
|
476
526
|
previewProperties?: string[];
|
|
527
|
+
/**
|
|
528
|
+
* Should the reference include the ID of the entity. Defaults to `true`
|
|
529
|
+
*/
|
|
530
|
+
includeId?: boolean;
|
|
531
|
+
/**
|
|
532
|
+
* Should the reference include a link to the entity (open the entity details). Defaults to `true`
|
|
533
|
+
*/
|
|
534
|
+
includeEntityLink?: boolean;
|
|
477
535
|
}
|
|
478
536
|
/**
|
|
479
537
|
* Rules to validate any property. Some properties have specific rules
|
|
@@ -563,8 +621,15 @@ export type StorageConfig = {
|
|
|
563
621
|
/**
|
|
564
622
|
* Use client side image compression and resizing
|
|
565
623
|
* Will only be applied to these MIME types: image/jpeg, image/png and image/webp
|
|
624
|
+
* @deprecated Use `imageResize` instead
|
|
625
|
+
*/
|
|
626
|
+
imageCompression?: ImageResize;
|
|
627
|
+
/**
|
|
628
|
+
* Advanced image resizing and cropping configuration.
|
|
629
|
+
* Applied before upload to optimize storage and bandwidth.
|
|
630
|
+
* Only applies to image MIME types: image/jpeg, image/png, image/webp
|
|
566
631
|
*/
|
|
567
|
-
|
|
632
|
+
imageResize?: ImageResize;
|
|
568
633
|
/**
|
|
569
634
|
* Specific metadata set in your uploaded file.
|
|
570
635
|
* For the default Firebase implementation, the values passed here are of type
|
|
@@ -575,13 +640,13 @@ export type StorageConfig = {
|
|
|
575
640
|
* You can use this prop to customize the uploaded filename.
|
|
576
641
|
* You can use a function as a callback or a string where you
|
|
577
642
|
* specify some placeholders that get replaced with the corresponding values.
|
|
578
|
-
* - {file} - Full file name
|
|
579
|
-
* - {file.name} - Name of the file without extension
|
|
580
|
-
* - {file.ext} - Extension of the file
|
|
581
|
-
* - {rand} - Random value used to avoid name collisions
|
|
582
|
-
* - {entityId} - ID of the entity
|
|
583
|
-
* - {propertyKey} - ID of this property
|
|
584
|
-
* - {path} - Path of this entity
|
|
643
|
+
* - `{file}` - Full file name
|
|
644
|
+
* - `{file.name}` - Name of the file without extension
|
|
645
|
+
* - `{file.ext}` - Extension of the file
|
|
646
|
+
* - `{rand}` - Random value used to avoid name collisions
|
|
647
|
+
* - `{entityId}` - ID of the entity
|
|
648
|
+
* - `{propertyKey}` - ID of this property
|
|
649
|
+
* - `{path}` - Path of this entity
|
|
585
650
|
*
|
|
586
651
|
* @param context
|
|
587
652
|
*/
|
|
@@ -591,13 +656,13 @@ export type StorageConfig = {
|
|
|
591
656
|
*
|
|
592
657
|
* You can use a function as a callback or a string where you
|
|
593
658
|
* specify some placeholders that get replaced with the corresponding values.
|
|
594
|
-
* - {file} - Full file name
|
|
595
|
-
* - {file.name} - Name of the file without extension
|
|
596
|
-
* - {file.ext} - Extension of the file
|
|
597
|
-
* - {rand} - Random value used to avoid name collisions
|
|
598
|
-
* - {entityId} - ID of the entity
|
|
599
|
-
* - {propertyKey} - ID of this property
|
|
600
|
-
* - {path} - Path of this entity
|
|
659
|
+
* - `{file}` - Full file name
|
|
660
|
+
* - `{file.name}` - Name of the file without extension
|
|
661
|
+
* - `{file.ext}` - Extension of the file
|
|
662
|
+
* - `{rand}` - Random value used to avoid name collisions
|
|
663
|
+
* - `{entityId}` - ID of the entity
|
|
664
|
+
* - `{propertyKey}` - ID of this property
|
|
665
|
+
* - `{path}` - Path of this entity
|
|
601
666
|
*/
|
|
602
667
|
storagePath: string | ((context: UploadedFileContext) => string);
|
|
603
668
|
/**
|
|
@@ -615,11 +680,22 @@ export type StorageConfig = {
|
|
|
615
680
|
* Define maximal file size in bytes
|
|
616
681
|
*/
|
|
617
682
|
maxSize?: number;
|
|
683
|
+
/**
|
|
684
|
+
* Use this callback to process the file before uploading it to the storage.
|
|
685
|
+
* If nothing is returned, the file is uploaded as it is.
|
|
686
|
+
* @param file
|
|
687
|
+
*/
|
|
688
|
+
processFile?: (file: File) => Promise<File> | undefined;
|
|
618
689
|
/**
|
|
619
690
|
* Postprocess the saved value (storage path or URL)
|
|
620
691
|
* after it has been resolved.
|
|
621
692
|
*/
|
|
622
693
|
postProcess?: (pathOrUrl: string) => Promise<string>;
|
|
694
|
+
/**
|
|
695
|
+
* You can use this prop in order to provide a custom preview URL.
|
|
696
|
+
* Useful when the file's path is different from the original field value
|
|
697
|
+
*/
|
|
698
|
+
previewUrl?: (fileName: string) => string;
|
|
623
699
|
};
|
|
624
700
|
/**
|
|
625
701
|
* @group Entity properties
|
|
@@ -644,7 +720,7 @@ export interface UploadedFileContext {
|
|
|
644
720
|
/**
|
|
645
721
|
* Entity path. E.g. `products/PID/locales`
|
|
646
722
|
*/
|
|
647
|
-
path
|
|
723
|
+
path?: string;
|
|
648
724
|
/**
|
|
649
725
|
* Values of the current entity
|
|
650
726
|
*/
|
|
@@ -665,17 +741,32 @@ export type PreviewType = "image" | "video" | "audio" | "file";
|
|
|
665
741
|
* @group Entity properties
|
|
666
742
|
*/
|
|
667
743
|
export type FileType = "image/*" | "video/*" | "audio/*" | "application/*" | "text/*" | "font/*" | string;
|
|
668
|
-
export interface
|
|
744
|
+
export interface ImageResize {
|
|
745
|
+
/**
|
|
746
|
+
* Maximum width in pixels. Image will be scaled down proportionally if wider.
|
|
747
|
+
*/
|
|
748
|
+
maxWidth?: number;
|
|
669
749
|
/**
|
|
670
|
-
*
|
|
750
|
+
* Maximum height in pixels. Image will be scaled down proportionally if taller.
|
|
671
751
|
*/
|
|
672
752
|
maxHeight?: number;
|
|
673
753
|
/**
|
|
674
|
-
*
|
|
754
|
+
* Resize mode determines how the image fits within maxWidth/maxHeight bounds.
|
|
755
|
+
* - `contain`: Scale down to fit within bounds, preserving aspect ratio (default)
|
|
756
|
+
* - `cover`: Scale to fill bounds, preserving aspect ratio (may crop)
|
|
675
757
|
*/
|
|
676
|
-
|
|
758
|
+
mode?: 'contain' | 'cover';
|
|
759
|
+
/**
|
|
760
|
+
* Output format for the resized image.
|
|
761
|
+
* - `original`: Keep the original format (default)
|
|
762
|
+
* - `jpeg`: Convert to JPEG
|
|
763
|
+
* - `png`: Convert to PNG
|
|
764
|
+
* - `webp`: Convert to WebP
|
|
765
|
+
*/
|
|
766
|
+
format?: 'original' | 'jpeg' | 'png' | 'webp';
|
|
677
767
|
/**
|
|
678
|
-
*
|
|
768
|
+
* Quality for lossy formats (JPEG, WebP). Number between 0 and 100.
|
|
769
|
+
* Higher is better quality but larger file size. Defaults to 80.
|
|
679
770
|
*/
|
|
680
771
|
quality?: number;
|
|
681
772
|
}
|
|
@@ -19,8 +19,6 @@ export type PropertyConfig<T extends CMSType = any> = {
|
|
|
19
19
|
* Default config for the property.
|
|
20
20
|
* This property or builder will be used as the base values for the resulting property.
|
|
21
21
|
* You can also use a builder function to generate the base property.
|
|
22
|
-
* You can use a builder function to generate the property based on the values or the path.
|
|
23
|
-
* You can also define a custom Field as a React component to be used for this property.
|
|
24
22
|
*/
|
|
25
23
|
property: PropertyOrBuilder<T>;
|
|
26
24
|
/**
|
|
@@ -39,4 +37,4 @@ export type PropertyConfig<T extends CMSType = any> = {
|
|
|
39
37
|
*/
|
|
40
38
|
description?: string;
|
|
41
39
|
};
|
|
42
|
-
export type PropertyConfigId = "text_field" | "multiline" | "markdown" | "url" | "email" | "select" | "multi_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "group" | "key_value" | "reference" | "multi_references" | "switch" | "date_time" | "repeat" | "custom_array" | "block";
|
|
40
|
+
export type PropertyConfigId = "text_field" | "multiline" | "markdown" | "url" | "email" | "user_select" | "select" | "multi_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "group" | "key_value" | "reference" | "reference_as_string" | "multi_references" | "switch" | "date_time" | "repeat" | "custom_array" | "block";
|
package/dist/types/roles.d.ts
CHANGED
|
@@ -23,6 +23,9 @@ export type Role = {
|
|
|
23
23
|
* @see stripCollectionPath
|
|
24
24
|
*/
|
|
25
25
|
collectionPermissions?: Record<string, Permissions>;
|
|
26
|
+
/**
|
|
27
|
+
* Permissions related to editing the collections
|
|
28
|
+
*/
|
|
26
29
|
config?: {
|
|
27
30
|
createCollections?: boolean;
|
|
28
31
|
editCollections?: boolean | "own";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
/**
|
|
2
3
|
* Controller to open the side dialog
|
|
3
4
|
* @group Hooks and utilities
|
|
@@ -11,6 +12,11 @@ export interface SideDialogsController {
|
|
|
11
12
|
* List of side panels currently open
|
|
12
13
|
*/
|
|
13
14
|
sidePanels: SideDialogPanelProps[];
|
|
15
|
+
/**
|
|
16
|
+
* Override the current side panels
|
|
17
|
+
* @param panels
|
|
18
|
+
*/
|
|
19
|
+
setSidePanels: (panels: SideDialogPanelProps[]) => void;
|
|
14
20
|
/**
|
|
15
21
|
* Open one or multiple side panels
|
|
16
22
|
* @param props
|
|
@@ -54,4 +60,8 @@ export interface SideDialogPanelProps {
|
|
|
54
60
|
* Callback when the panel is closed
|
|
55
61
|
*/
|
|
56
62
|
onClose?: () => void;
|
|
63
|
+
/**
|
|
64
|
+
* Use this prop to store additional data in the panel
|
|
65
|
+
*/
|
|
66
|
+
additional?: any;
|
|
57
67
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EntityCollection } from "./collections";
|
|
2
2
|
import { ResolvedEntityCollection } from "./resolved_entities";
|
|
3
3
|
import { Entity } from "./entities";
|
|
4
|
+
import { EntityFormProps } from "../form";
|
|
4
5
|
/**
|
|
5
6
|
* Props used to open a side dialog
|
|
6
7
|
* @group Hooks and utilities
|
|
@@ -10,6 +11,10 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
|
|
|
10
11
|
* Absolute path of the entity
|
|
11
12
|
*/
|
|
12
13
|
path: string;
|
|
14
|
+
/**
|
|
15
|
+
* Full CMS path of the entity, including the collection and sub-collections.
|
|
16
|
+
*/
|
|
17
|
+
fullIdPath?: string;
|
|
13
18
|
/**
|
|
14
19
|
* ID of the entity, if not set, it means we are creating a new entity
|
|
15
20
|
*/
|
|
@@ -22,7 +27,7 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
|
|
|
22
27
|
* Open the entity with a selected sub-collection view. If the panel for this
|
|
23
28
|
* entity was already open, it is replaced.
|
|
24
29
|
*/
|
|
25
|
-
|
|
30
|
+
selectedTab?: string;
|
|
26
31
|
/**
|
|
27
32
|
* Use this prop to override the width of the form view.
|
|
28
33
|
* e.g. "600px"
|
|
@@ -55,6 +60,14 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
|
|
|
55
60
|
* Should this panel close when saving
|
|
56
61
|
*/
|
|
57
62
|
closeOnSave?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Override some form properties
|
|
65
|
+
*/
|
|
66
|
+
formProps?: Partial<EntityFormProps<M>>;
|
|
67
|
+
/**
|
|
68
|
+
* Allow the user to open the entity fullscreen
|
|
69
|
+
*/
|
|
70
|
+
allowFullScreen?: boolean;
|
|
58
71
|
}
|
|
59
72
|
/**
|
|
60
73
|
* Controller to open the side dialog displaying entity forms
|
package/dist/types/storage.d.ts
CHANGED
|
@@ -87,4 +87,79 @@ export interface StorageSource {
|
|
|
87
87
|
* @param bucket
|
|
88
88
|
*/
|
|
89
89
|
getFile: (path: string, bucket?: string) => Promise<File | null>;
|
|
90
|
+
/**
|
|
91
|
+
* Delete a file.
|
|
92
|
+
* @param path
|
|
93
|
+
* @param bucket
|
|
94
|
+
*/
|
|
95
|
+
deleteFile: (path: string, bucket?: string) => Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* List the contents of a path.
|
|
98
|
+
* @param path
|
|
99
|
+
* @param options
|
|
100
|
+
*/
|
|
101
|
+
list: (path: string, options?: {
|
|
102
|
+
bucket?: string;
|
|
103
|
+
maxResults?: number;
|
|
104
|
+
pageToken?: string;
|
|
105
|
+
}) => Promise<StorageListResult>;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Result returned by list().
|
|
109
|
+
* @public
|
|
110
|
+
*/
|
|
111
|
+
export declare interface StorageListResult {
|
|
112
|
+
/**
|
|
113
|
+
* References to prefixes (sub-folders). You can call list() on them to
|
|
114
|
+
* get its contents.
|
|
115
|
+
*
|
|
116
|
+
* Folders are implicit based on '/' in the object paths.
|
|
117
|
+
* For example, if a bucket has two objects '/a/b/1' and '/a/b/2', list('/a')
|
|
118
|
+
* will return '/a/b' as a prefix.
|
|
119
|
+
*/
|
|
120
|
+
prefixes: StorageReference[];
|
|
121
|
+
/**
|
|
122
|
+
* Objects in this directory.
|
|
123
|
+
* You can call getMetadata() and getDownloadUrl() on them.
|
|
124
|
+
*/
|
|
125
|
+
items: StorageReference[];
|
|
126
|
+
/**
|
|
127
|
+
* If set, there might be more results for this list. Use this token to resume the list.
|
|
128
|
+
*/
|
|
129
|
+
nextPageToken?: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Represents a reference to a Google Cloud Storage object. Developers can
|
|
133
|
+
* upload, download, and delete objects, as well as get/set object metadata.
|
|
134
|
+
* @public
|
|
135
|
+
*/
|
|
136
|
+
export declare interface StorageReference {
|
|
137
|
+
/**
|
|
138
|
+
* Returns a gs:// URL for this object in the form
|
|
139
|
+
* `gs://<bucket>/<path>/<to>/<object>`
|
|
140
|
+
* @returns The gs:// URL.
|
|
141
|
+
*/
|
|
142
|
+
toString(): string;
|
|
143
|
+
/**
|
|
144
|
+
* A reference to the root of this object's bucket.
|
|
145
|
+
*/
|
|
146
|
+
root: StorageReference;
|
|
147
|
+
/**
|
|
148
|
+
* The name of the bucket containing this reference's object.
|
|
149
|
+
*/
|
|
150
|
+
bucket: string;
|
|
151
|
+
/**
|
|
152
|
+
* The full path of this object.
|
|
153
|
+
*/
|
|
154
|
+
fullPath: string;
|
|
155
|
+
/**
|
|
156
|
+
* The short name of this object, which is the last component of the full path.
|
|
157
|
+
* For example, if fullPath is 'full/path/image.png', name is 'image.png'.
|
|
158
|
+
*/
|
|
159
|
+
name: string;
|
|
160
|
+
/**
|
|
161
|
+
* A reference pointing to the parent location of this reference, or null if
|
|
162
|
+
* this reference is the root.
|
|
163
|
+
*/
|
|
164
|
+
parent: StorageReference | null;
|
|
90
165
|
}
|