@firecms/core 3.0.0-canary.26 → 3.0.0-canary.261
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 +8 -5
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
- package/dist/components/HomePage/HomePageDnD.d.ts +76 -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 +7 -1
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -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/VirtualTable/VirtualTableProps.d.ts +24 -12
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
- package/dist/components/common/index.d.ts +2 -1
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +4 -6
- package/dist/components/common/useColumnsIds.d.ts +3 -1
- package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +5 -2
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/core/DefaultAppBar.d.ts +29 -0
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +43 -11
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/FireCMS.d.ts +3 -3
- package/dist/core/FireCMSRouter.d.ts +4 -0
- package/dist/core/NavigationRoutes.d.ts +2 -3
- package/dist/core/SideDialogs.d.ts +4 -2
- package/dist/core/field_configs.d.ts +1 -1
- package/dist/core/index.d.ts +4 -4
- package/dist/form/EntityForm.d.ts +37 -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/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/index.d.ts +17 -18
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/hooks/data/delete.d.ts +4 -4
- package/dist/hooks/data/save.d.ts +4 -5
- package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
- package/dist/hooks/data/useEntityFetch.d.ts +4 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useAuthController.d.ts +1 -1
- package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
- package/dist/hooks/useBuildNavigationController.d.ts +57 -13
- package/dist/hooks/useFireCMSContext.d.ts +1 -1
- package/dist/hooks/useModeController.d.ts +1 -2
- package/dist/hooks/useProjectLog.d.ts +8 -2
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +23088 -13940
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +25823 -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 +3 -2
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/preview/util.d.ts +3 -3
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/FireCMSRoute.d.ts +1 -0
- package/dist/routes/HomePageRoute.d.ts +3 -0
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +8 -10
- package/dist/types/collections.d.ts +110 -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 +7 -2
- 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 +74 -42
- package/dist/types/firecms.d.ts +16 -3
- package/dist/types/firecms_context.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/navigation.d.ts +62 -19
- package/dist/types/permissions.d.ts +4 -4
- package/dist/types/plugins.d.ts +56 -13
- package/dist/types/properties.d.ts +80 -24
- 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 +1 -0
- package/dist/util/builders.d.ts +3 -3
- package/dist/util/callbacks.d.ts +2 -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 +23 -0
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -98
- package/dist/util/icons.d.ts +7 -4
- package/dist/util/index.d.ts +3 -0
- 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 +2 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +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 +3 -3
- package/package.json +64 -48
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +253 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +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 +65 -40
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +72 -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 +235 -118
- 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 +80 -59
- package/src/components/EntityView.tsx +13 -10
- package/src/components/ErrorView.tsx +4 -4
- package/src/components/FireCMSLogo.tsx +7 -51
- package/src/components/HomePage/DefaultHomePage.tsx +499 -157
- package/src/components/HomePage/FavouritesView.tsx +9 -14
- package/src/components/HomePage/HomePageDnD.tsx +599 -0
- package/src/components/HomePage/NavigationCard.tsx +48 -39
- package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
- package/src/components/HomePage/NavigationGroup.tsx +63 -29
- package/src/components/HomePage/RenameGroupDialog.tsx +117 -0
- package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
- package/src/components/NotFoundPage.tsx +2 -2
- package/src/components/PropertyConfigBadge.tsx +9 -3
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +21 -13
- package/src/components/ReferenceWidget.tsx +21 -11
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/SelectableTable/SelectableTable.tsx +157 -145
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
- package/src/components/UnsavedChangesDialog.tsx +46 -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/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 +24 -3
- package/src/components/common/useDataSourceTableController.tsx +420 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +53 -12
- package/src/components/index.tsx +6 -2
- package/src/contexts/BreacrumbsContext.tsx +38 -0
- package/src/contexts/DialogsProvider.tsx +5 -4
- package/src/contexts/ModeController.tsx +1 -3
- package/src/contexts/SnackbarProvider.tsx +2 -0
- package/src/core/DefaultAppBar.tsx +219 -0
- package/src/core/DefaultDrawer.tsx +185 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +435 -470
- package/src/core/EntityEditViewFormActions.tsx +329 -0
- package/src/core/EntitySidePanel.tsx +88 -21
- package/src/core/FireCMS.tsx +74 -58
- 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 +26 -13
- package/src/core/index.tsx +6 -5
- package/src/form/EntityForm.tsx +620 -534
- package/src/form/EntityFormActions.tsx +211 -0
- package/src/form/PropertyFieldBinding.tsx +88 -45
- package/src/form/components/CustomIdField.tsx +9 -3
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +30 -19
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +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 -34
- 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/index.tsx +17 -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 +1 -0
- package/src/hooks/useAuthController.tsx +1 -1
- package/src/hooks/useBreadcrumbsController.tsx +31 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/hooks/useBuildModeController.tsx +22 -29
- package/src/hooks/useBuildNavigationController.tsx +440 -119
- package/src/hooks/useFireCMSContext.tsx +3 -33
- 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 +34 -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 +23 -34
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +60 -28
- 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 +7 -6
- package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
- 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 +132 -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 +12 -2
- 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 +85 -46
- package/src/types/firecms.tsx +18 -4
- package/src/types/firecms_context.tsx +1 -1
- package/src/types/index.ts +0 -1
- package/src/types/navigation.ts +77 -24
- package/src/types/permissions.ts +5 -5
- package/src/types/plugins.tsx +66 -15
- package/src/types/properties.ts +95 -26
- package/src/types/property_config.tsx +1 -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 +2 -0
- package/src/util/builders.ts +10 -8
- package/src/util/callbacks.ts +119 -0
- package/src/util/createFormexStub.tsx +62 -0
- package/src/util/entities.ts +9 -6
- package/src/util/entity_actions.ts +28 -0
- package/src/util/entity_cache.ts +204 -0
- package/src/util/enums.ts +1 -1
- package/src/util/icon_list.ts +16 -10
- package/src/util/icon_synonyms.ts +3 -100
- package/src/util/icons.tsx +36 -11
- package/src/util/index.ts +3 -0
- package/src/util/join_collections.ts +9 -2
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_from_path.ts +33 -12
- package/src/util/navigation_utils.ts +141 -25
- package/src/util/objects.ts +90 -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 +91 -28
- 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/src/types/plugins.tsx
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from "react";
|
|
2
2
|
|
|
3
3
|
import { FireCMSContext } from "./firecms_context";
|
|
4
|
-
import { CollectionActionsProps, EntityCollection } from "./collections";
|
|
4
|
+
import { CollectionActionsProps, EntityCollection, EntityTableController } from "./collections";
|
|
5
5
|
import { User } from "./user";
|
|
6
6
|
import { FieldProps, FormContext } from "./fields";
|
|
7
7
|
import { CMSType, Property } from "./properties";
|
|
8
8
|
import { EntityStatus } from "./entities";
|
|
9
9
|
import { ResolvedProperty } from "./resolved_entities";
|
|
10
|
-
import {
|
|
10
|
+
import { NavigationGroupMapping } from "./navigation";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Interface used to define plugins for FireCMS.
|
|
14
14
|
* NOTE: This is a work in progress and the API is not stable yet.
|
|
15
15
|
* @group Core
|
|
16
16
|
*/
|
|
17
|
-
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
|
|
17
|
+
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any, COL_ACTIONS_START__PROPS = any> = {
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Key of the plugin. This is used to identify the plugin in the CMS.
|
|
@@ -85,6 +85,20 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
85
85
|
children: React.ReactNode;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Allow reordering with drag and drop of the collections in the home page.
|
|
90
|
+
*/
|
|
91
|
+
allowDragAndDrop?: boolean;
|
|
92
|
+
|
|
93
|
+
navigationEntries?: NavigationGroupMapping[];
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* This method will be called when the entries are updated in the home page.
|
|
97
|
+
* group => navigationEntriesOrder (path)
|
|
98
|
+
* @param entries
|
|
99
|
+
*/
|
|
100
|
+
onNavigationEntriesUpdate?: (entries: NavigationGroupMapping[]) => void;
|
|
101
|
+
|
|
88
102
|
}
|
|
89
103
|
|
|
90
104
|
collectionView?: {
|
|
@@ -94,9 +108,18 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
94
108
|
* toolbar.
|
|
95
109
|
*/
|
|
96
110
|
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
97
|
-
|
|
98
111
|
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
99
112
|
|
|
113
|
+
CollectionActionsStart?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS>[];
|
|
114
|
+
collectionActionsStartProps?: COL_ACTIONS_START__PROPS;
|
|
115
|
+
|
|
116
|
+
blockSearch?: (props: {
|
|
117
|
+
context: FireCMSContext,
|
|
118
|
+
path: string,
|
|
119
|
+
collection: EC,
|
|
120
|
+
parentCollectionIds?: string[]
|
|
121
|
+
}) => boolean;
|
|
122
|
+
|
|
100
123
|
showTextSearchBar?: (props: {
|
|
101
124
|
context: FireCMSContext,
|
|
102
125
|
path: string,
|
|
@@ -122,6 +145,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
122
145
|
parentCollectionIds: string[],
|
|
123
146
|
onHover: boolean,
|
|
124
147
|
collection: EC;
|
|
148
|
+
tableController: EntityTableController;
|
|
125
149
|
}>;
|
|
126
150
|
|
|
127
151
|
/**
|
|
@@ -132,6 +156,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
132
156
|
fullPath: string,
|
|
133
157
|
parentCollectionIds: string[],
|
|
134
158
|
collection: EC;
|
|
159
|
+
tableController: EntityTableController;
|
|
135
160
|
}>;
|
|
136
161
|
}
|
|
137
162
|
|
|
@@ -141,13 +166,37 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
141
166
|
props?: FORM_PROPS;
|
|
142
167
|
}
|
|
143
168
|
|
|
169
|
+
/**
|
|
170
|
+
* Add custom actions to the default ones ("Save", "Discard"...)
|
|
171
|
+
*/
|
|
144
172
|
Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
145
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Add custom actions to the top of the form
|
|
176
|
+
*/
|
|
177
|
+
ActionsTop?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
178
|
+
|
|
146
179
|
fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
|
|
147
180
|
|
|
148
181
|
fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
|
|
149
182
|
}
|
|
150
183
|
|
|
184
|
+
collection?: {
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Use this method to modify a single collection before it is rendered.
|
|
188
|
+
* @param collection
|
|
189
|
+
*/
|
|
190
|
+
modifyCollection?: (collection: EntityCollection) => EntityCollection;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Use this method to modify, add or remove collections.
|
|
194
|
+
* @param collections
|
|
195
|
+
*/
|
|
196
|
+
injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
|
|
151
200
|
}
|
|
152
201
|
|
|
153
202
|
/**
|
|
@@ -156,7 +205,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
156
205
|
*
|
|
157
206
|
* @group Models
|
|
158
207
|
*/
|
|
159
|
-
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any,
|
|
208
|
+
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
160
209
|
/**
|
|
161
210
|
* Collection path of this entity. This is the full path, like
|
|
162
211
|
* `users/1234/addresses`
|
|
@@ -171,20 +220,22 @@ export interface PluginHomePageActionsProps<EP extends object = object, M extend
|
|
|
171
220
|
/**
|
|
172
221
|
* Context of the app status
|
|
173
222
|
*/
|
|
174
|
-
context: FireCMSContext<
|
|
223
|
+
context: FireCMSContext<USER>;
|
|
175
224
|
|
|
176
225
|
extraProps?: EP;
|
|
177
226
|
|
|
178
227
|
}
|
|
179
228
|
|
|
180
|
-
export interface PluginFormActionProps<
|
|
229
|
+
export interface PluginFormActionProps<USER extends User = User, EC extends EntityCollection = EntityCollection> {
|
|
181
230
|
entityId?: string;
|
|
182
231
|
path: string;
|
|
232
|
+
parentCollectionIds: string[];
|
|
183
233
|
status: EntityStatus;
|
|
184
234
|
collection: EC;
|
|
235
|
+
disabled: boolean;
|
|
185
236
|
formContext?: FormContext<any>;
|
|
186
|
-
context: FireCMSContext<
|
|
187
|
-
|
|
237
|
+
context: FireCMSContext<USER>;
|
|
238
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
188
239
|
}
|
|
189
240
|
|
|
190
241
|
export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Record<string, any> = any, EC extends EntityCollection<M> = EntityCollection<M>> = {
|
|
@@ -193,15 +244,15 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
|
|
|
193
244
|
property: Property<T> | ResolvedProperty<T>;
|
|
194
245
|
Field: React.ComponentType<FieldProps<T, any, M>>;
|
|
195
246
|
plugin: FireCMSPlugin;
|
|
196
|
-
path
|
|
197
|
-
collection
|
|
247
|
+
path?: string;
|
|
248
|
+
collection?: EC;
|
|
198
249
|
};
|
|
199
250
|
|
|
200
|
-
export interface PluginGenericProps<
|
|
201
|
-
context: FireCMSContext<
|
|
251
|
+
export interface PluginGenericProps<USER extends User = User> {
|
|
252
|
+
context: FireCMSContext<USER>;
|
|
202
253
|
}
|
|
203
254
|
|
|
204
|
-
export interface PluginHomePageAdditionalCardsProps<
|
|
255
|
+
export interface PluginHomePageAdditionalCardsProps<USER extends User = User> {
|
|
205
256
|
group?: string;
|
|
206
|
-
context: FireCMSContext<
|
|
257
|
+
context: FireCMSContext<USER>;
|
|
207
258
|
}
|
package/src/types/properties.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
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
|
/**
|
|
10
11
|
* @group Entity properties
|
|
@@ -15,9 +16,10 @@ export type DataType<T extends CMSType = CMSType> =
|
|
|
15
16
|
T extends boolean ? "boolean" :
|
|
16
17
|
T extends Date ? "date" :
|
|
17
18
|
T extends GeoPoint ? "geopoint" :
|
|
18
|
-
T extends
|
|
19
|
-
T extends
|
|
20
|
-
T extends
|
|
19
|
+
T extends Vector ? "vector" :
|
|
20
|
+
T extends EntityReference ? "reference" :
|
|
21
|
+
T extends Array<any> ? "array" :
|
|
22
|
+
T extends Record<string, any> ? "map" : never;
|
|
21
23
|
|
|
22
24
|
/**
|
|
23
25
|
* @group Entity properties
|
|
@@ -48,7 +50,7 @@ export type AnyProperty =
|
|
|
48
50
|
/**
|
|
49
51
|
* @group Entity properties
|
|
50
52
|
*/
|
|
51
|
-
export type Property<T extends CMSType =
|
|
53
|
+
export type Property<T extends CMSType = any> =
|
|
52
54
|
T extends string ? StringProperty :
|
|
53
55
|
T extends number ? NumberProperty :
|
|
54
56
|
T extends boolean ? BooleanProperty :
|
|
@@ -148,13 +150,19 @@ export interface BaseProperty<T extends CMSType, CustomProps = any> {
|
|
|
148
150
|
/**
|
|
149
151
|
* This value will be set by default for new entities.
|
|
150
152
|
*/
|
|
151
|
-
defaultValue?: T;
|
|
153
|
+
defaultValue?: T | null;
|
|
152
154
|
|
|
153
155
|
/**
|
|
154
156
|
* Should this property be editable. If set to true, the user will be able to modify the property and
|
|
155
157
|
* save the new config. The saved config will then become the source of truth.
|
|
156
158
|
*/
|
|
157
159
|
editable?: boolean;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* A number between 0 and 100 that indicates the width of the field in the form view.
|
|
163
|
+
* It defaults to 100, but you can set it to 50 to have two fields in the same row.
|
|
164
|
+
*/
|
|
165
|
+
widthPercentage?: number;
|
|
158
166
|
}
|
|
159
167
|
|
|
160
168
|
/**
|
|
@@ -263,6 +271,11 @@ export type PropertyBuilderProps<M extends Record<string, any> = any> =
|
|
|
263
271
|
* Entity ID
|
|
264
272
|
*/
|
|
265
273
|
entityId?: string;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Controller to manage authentication
|
|
277
|
+
*/
|
|
278
|
+
authController: AuthController;
|
|
266
279
|
};
|
|
267
280
|
|
|
268
281
|
/**
|
|
@@ -276,21 +289,23 @@ export type PropertyBuilder<T extends CMSType = any, M extends Record<string, an
|
|
|
276
289
|
values,
|
|
277
290
|
previousValues,
|
|
278
291
|
propertyValue,
|
|
292
|
+
index,
|
|
279
293
|
path,
|
|
280
|
-
entityId
|
|
294
|
+
entityId,
|
|
295
|
+
authController
|
|
281
296
|
}: PropertyBuilderProps<M>) => Property<T> | null;
|
|
282
297
|
|
|
283
298
|
/**
|
|
284
299
|
* @group Entity properties
|
|
285
300
|
*/
|
|
286
|
-
export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> =
|
|
301
|
+
export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> = any> =
|
|
287
302
|
Property<T>
|
|
288
303
|
| PropertyBuilder<T, M>;
|
|
289
304
|
|
|
290
305
|
/**
|
|
291
306
|
* @group Entity properties
|
|
292
307
|
*/
|
|
293
|
-
export type PropertiesOrBuilders<M extends Record<string, any> =
|
|
308
|
+
export type PropertiesOrBuilders<M extends Record<string, any> = any> =
|
|
294
309
|
{
|
|
295
310
|
[k in keyof M]: PropertyOrBuilder<M[k], M>;
|
|
296
311
|
};
|
|
@@ -369,7 +384,7 @@ export interface StringProperty extends BaseProperty<string> {
|
|
|
369
384
|
|
|
370
385
|
/**
|
|
371
386
|
* You can specify a `Storage` configuration. It is used to
|
|
372
|
-
* indicate that this string refers to a path in
|
|
387
|
+
* indicate that this string refers to a path in your storage provider.
|
|
373
388
|
*/
|
|
374
389
|
storage?: StorageConfig;
|
|
375
390
|
|
|
@@ -398,12 +413,20 @@ export interface StringProperty extends BaseProperty<string> {
|
|
|
398
413
|
* Add an icon to clear the value and set it to `null`. Defaults to `false`
|
|
399
414
|
*/
|
|
400
415
|
clearable?: boolean;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* You can use this property (a string) to behave as a reference to another
|
|
419
|
+
* collection. The stored value is the ID of the entity in the
|
|
420
|
+
* collection, and the `path` prop is used to
|
|
421
|
+
* define the collection this reference points to.
|
|
422
|
+
*/
|
|
423
|
+
reference?: ReferenceProperty;
|
|
401
424
|
}
|
|
402
425
|
|
|
403
426
|
/**
|
|
404
427
|
* @group Entity properties
|
|
405
428
|
*/
|
|
406
|
-
export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType =
|
|
429
|
+
export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = any> extends BaseProperty<T> {
|
|
407
430
|
|
|
408
431
|
dataType: "array";
|
|
409
432
|
|
|
@@ -467,6 +490,24 @@ export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSTyp
|
|
|
467
490
|
*/
|
|
468
491
|
expanded?: boolean;
|
|
469
492
|
|
|
493
|
+
/**
|
|
494
|
+
* Display the child properties directly, without being wrapped in an
|
|
495
|
+
* extendable panel.
|
|
496
|
+
*/
|
|
497
|
+
minimalistView?: boolean;
|
|
498
|
+
|
|
499
|
+
/**
|
|
500
|
+
* Can the elements in this array be reordered. Defaults to `true`.
|
|
501
|
+
* This prop has no effect if `disabled` is set to true.
|
|
502
|
+
*/
|
|
503
|
+
sortable?: boolean;
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* Can the elements in this array be added. Defaults to `true`
|
|
507
|
+
* This prop has no effect if `disabled` is set to true.
|
|
508
|
+
*/
|
|
509
|
+
canAddElements?: boolean;
|
|
510
|
+
|
|
470
511
|
}
|
|
471
512
|
|
|
472
513
|
/**
|
|
@@ -515,6 +556,12 @@ export interface MapProperty<T extends Record<string, CMSType> = Record<string,
|
|
|
515
556
|
*/
|
|
516
557
|
spreadChildren?: boolean;
|
|
517
558
|
|
|
559
|
+
/**
|
|
560
|
+
* Display the child properties directly, without being wrapped in an
|
|
561
|
+
* extendable panel. Note that this will also hide the title of this property.
|
|
562
|
+
*/
|
|
563
|
+
minimalistView?: boolean;
|
|
564
|
+
|
|
518
565
|
/**
|
|
519
566
|
* Should the field be initially expanded. Defaults to `true`
|
|
520
567
|
*/
|
|
@@ -608,6 +655,16 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
|
|
|
608
655
|
*/
|
|
609
656
|
previewProperties?: string[];
|
|
610
657
|
|
|
658
|
+
/**
|
|
659
|
+
* Should the reference include the ID of the entity. Defaults to `true`
|
|
660
|
+
*/
|
|
661
|
+
includeId?: boolean;
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* Should the reference include a link to the entity (open the entity details). Defaults to `true`
|
|
665
|
+
*/
|
|
666
|
+
includeEntityLink?: boolean;
|
|
667
|
+
|
|
611
668
|
}
|
|
612
669
|
|
|
613
670
|
/**
|
|
@@ -722,13 +779,13 @@ export type StorageConfig = {
|
|
|
722
779
|
* You can use this prop to customize the uploaded filename.
|
|
723
780
|
* You can use a function as a callback or a string where you
|
|
724
781
|
* specify some placeholders that get replaced with the corresponding values.
|
|
725
|
-
* - {file} - Full file name
|
|
726
|
-
* - {file.name} - Name of the file without extension
|
|
727
|
-
* - {file.ext} - Extension of the file
|
|
728
|
-
* - {rand} - Random value used to avoid name collisions
|
|
729
|
-
* - {entityId} - ID of the entity
|
|
730
|
-
* - {propertyKey} - ID of this property
|
|
731
|
-
* - {path} - Path of this entity
|
|
782
|
+
* - `{file}` - Full file name
|
|
783
|
+
* - `{file.name}` - Name of the file without extension
|
|
784
|
+
* - `{file.ext}` - Extension of the file
|
|
785
|
+
* - `{rand}` - Random value used to avoid name collisions
|
|
786
|
+
* - `{entityId}` - ID of the entity
|
|
787
|
+
* - `{propertyKey}` - ID of this property
|
|
788
|
+
* - `{path}` - Path of this entity
|
|
732
789
|
*
|
|
733
790
|
* @param context
|
|
734
791
|
*/
|
|
@@ -739,13 +796,13 @@ export type StorageConfig = {
|
|
|
739
796
|
*
|
|
740
797
|
* You can use a function as a callback or a string where you
|
|
741
798
|
* specify some placeholders that get replaced with the corresponding values.
|
|
742
|
-
* - {file} - Full file name
|
|
743
|
-
* - {file.name} - Name of the file without extension
|
|
744
|
-
* - {file.ext} - Extension of the file
|
|
745
|
-
* - {rand} - Random value used to avoid name collisions
|
|
746
|
-
* - {entityId} - ID of the entity
|
|
747
|
-
* - {propertyKey} - ID of this property
|
|
748
|
-
* - {path} - Path of this entity
|
|
799
|
+
* - `{file}` - Full file name
|
|
800
|
+
* - `{file.name}` - Name of the file without extension
|
|
801
|
+
* - `{file.ext}` - Extension of the file
|
|
802
|
+
* - `{rand}` - Random value used to avoid name collisions
|
|
803
|
+
* - `{entityId}` - ID of the entity
|
|
804
|
+
* - `{propertyKey}` - ID of this property
|
|
805
|
+
* - `{path}` - Path of this entity
|
|
749
806
|
*/
|
|
750
807
|
storagePath: string | ((context: UploadedFileContext) => string);
|
|
751
808
|
|
|
@@ -766,12 +823,24 @@ export type StorageConfig = {
|
|
|
766
823
|
*/
|
|
767
824
|
maxSize?: number,
|
|
768
825
|
|
|
826
|
+
/**
|
|
827
|
+
* Use this callback to process the file before uploading it to the storage.
|
|
828
|
+
* If nothing is returned, the file is uploaded as it is.
|
|
829
|
+
* @param file
|
|
830
|
+
*/
|
|
831
|
+
processFile?: (file: File) => Promise<File> | undefined;
|
|
832
|
+
|
|
769
833
|
/**
|
|
770
834
|
* Postprocess the saved value (storage path or URL)
|
|
771
835
|
* after it has been resolved.
|
|
772
836
|
*/
|
|
773
837
|
postProcess?: (pathOrUrl: string) => Promise<string>;
|
|
774
838
|
|
|
839
|
+
/**
|
|
840
|
+
* You can use this prop in order to provide a custom preview URL.
|
|
841
|
+
* Useful when the file's path is different from the original field value
|
|
842
|
+
*/
|
|
843
|
+
previewUrl?: (fileName: string) => string;
|
|
775
844
|
}
|
|
776
845
|
|
|
777
846
|
/**
|
|
@@ -801,7 +870,7 @@ export interface UploadedFileContext {
|
|
|
801
870
|
/**
|
|
802
871
|
* Entity path. E.g. `products/PID/locales`
|
|
803
872
|
*/
|
|
804
|
-
path
|
|
873
|
+
path?: string;
|
|
805
874
|
|
|
806
875
|
/**
|
|
807
876
|
* Values of the current entity
|
|
@@ -23,8 +23,6 @@ export type PropertyConfig<T extends CMSType = any> = {
|
|
|
23
23
|
* Default config for the property.
|
|
24
24
|
* This property or builder will be used as the base values for the resulting property.
|
|
25
25
|
* You can also use a builder function to generate the base property.
|
|
26
|
-
* You can use a builder function to generate the property based on the values or the path.
|
|
27
|
-
* You can also define a custom Field as a React component to be used for this property.
|
|
28
26
|
*/
|
|
29
27
|
property: PropertyOrBuilder<T>;
|
|
30
28
|
|
|
@@ -64,6 +62,7 @@ export type PropertyConfigId =
|
|
|
64
62
|
"group" |
|
|
65
63
|
"key_value" |
|
|
66
64
|
"reference" |
|
|
65
|
+
"reference_as_string" |
|
|
67
66
|
"multi_references" |
|
|
68
67
|
"switch" |
|
|
69
68
|
"date_time" |
|
package/src/types/roles.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { EntityFormProps } from "../form";
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
5
|
* Controller to open the side dialog
|
|
3
6
|
* @group Hooks and utilities
|
|
@@ -14,6 +17,12 @@ export interface SideDialogsController {
|
|
|
14
17
|
*/
|
|
15
18
|
sidePanels: SideDialogPanelProps[];
|
|
16
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Override the current side panels
|
|
22
|
+
* @param panels
|
|
23
|
+
*/
|
|
24
|
+
setSidePanels: (panels: SideDialogPanelProps[]) => void;
|
|
25
|
+
|
|
17
26
|
/**
|
|
18
27
|
* Open one or multiple side panels
|
|
19
28
|
* @param props
|
|
@@ -65,4 +74,10 @@ export interface SideDialogPanelProps {
|
|
|
65
74
|
* Callback when the panel is closed
|
|
66
75
|
*/
|
|
67
76
|
onClose?: () => void;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Use this prop to store additional data in the panel
|
|
80
|
+
*/
|
|
81
|
+
additional?: any;
|
|
82
|
+
|
|
68
83
|
}
|
|
@@ -2,6 +2,7 @@ import { EntityCollection } from "./collections";
|
|
|
2
2
|
import { ResolvedEntityCollection } from "./resolved_entities";
|
|
3
3
|
import { Entity } from "./entities";
|
|
4
4
|
import { EntityOverrides } from "./entity_overrides";
|
|
5
|
+
import { EntityFormProps } from "../form";
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Props used to open a side dialog
|
|
@@ -14,6 +15,11 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
|
|
|
14
15
|
*/
|
|
15
16
|
path: string;
|
|
16
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Full CMS path of the entity, including the collection and sub-collections.
|
|
20
|
+
*/
|
|
21
|
+
fullIdPath?: string;
|
|
22
|
+
|
|
17
23
|
/**
|
|
18
24
|
* ID of the entity, if not set, it means we are creating a new entity
|
|
19
25
|
*/
|
|
@@ -28,7 +34,7 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
|
|
|
28
34
|
* Open the entity with a selected sub-collection view. If the panel for this
|
|
29
35
|
* entity was already open, it is replaced.
|
|
30
36
|
*/
|
|
31
|
-
|
|
37
|
+
selectedTab?: string;
|
|
32
38
|
|
|
33
39
|
/**
|
|
34
40
|
* Use this prop to override the width of the form view.
|
|
@@ -66,6 +72,15 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
|
|
|
66
72
|
*/
|
|
67
73
|
closeOnSave?: boolean;
|
|
68
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Override some form properties
|
|
77
|
+
*/
|
|
78
|
+
formProps?: Partial<EntityFormProps<M>>;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Allow the user to open the entity fullscreen
|
|
82
|
+
*/
|
|
83
|
+
allowFullScreen?: boolean;
|
|
69
84
|
}
|
|
70
85
|
|
|
71
86
|
/**
|
package/src/types/storage.ts
CHANGED
|
@@ -101,5 +101,87 @@ export interface StorageSource {
|
|
|
101
101
|
* @param props
|
|
102
102
|
* @param bucket
|
|
103
103
|
*/
|
|
104
|
-
getFile: (path:string, bucket?: string) => Promise<File | null>;
|
|
104
|
+
getFile: (path: string, bucket?: string) => Promise<File | null>;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Delete a file.
|
|
108
|
+
* @param path
|
|
109
|
+
* @param bucket
|
|
110
|
+
*/
|
|
111
|
+
deleteFile: (path: string, bucket?: string) => Promise<void>;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* List the contents of a path.
|
|
115
|
+
* @param path
|
|
116
|
+
* @param options
|
|
117
|
+
*/
|
|
118
|
+
list: (path: string, options?: {
|
|
119
|
+
bucket?: string,
|
|
120
|
+
maxResults?: number,
|
|
121
|
+
pageToken?: string
|
|
122
|
+
}) => Promise<StorageListResult>;
|
|
123
|
+
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Result returned by list().
|
|
128
|
+
* @public
|
|
129
|
+
*/
|
|
130
|
+
export declare interface StorageListResult {
|
|
131
|
+
/**
|
|
132
|
+
* References to prefixes (sub-folders). You can call list() on them to
|
|
133
|
+
* get its contents.
|
|
134
|
+
*
|
|
135
|
+
* Folders are implicit based on '/' in the object paths.
|
|
136
|
+
* For example, if a bucket has two objects '/a/b/1' and '/a/b/2', list('/a')
|
|
137
|
+
* will return '/a/b' as a prefix.
|
|
138
|
+
*/
|
|
139
|
+
prefixes: StorageReference[];
|
|
140
|
+
/**
|
|
141
|
+
* Objects in this directory.
|
|
142
|
+
* You can call getMetadata() and getDownloadUrl() on them.
|
|
143
|
+
*/
|
|
144
|
+
items: StorageReference[];
|
|
145
|
+
/**
|
|
146
|
+
* If set, there might be more results for this list. Use this token to resume the list.
|
|
147
|
+
*/
|
|
148
|
+
nextPageToken?: string;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Represents a reference to a Google Cloud Storage object. Developers can
|
|
153
|
+
* upload, download, and delete objects, as well as get/set object metadata.
|
|
154
|
+
* @public
|
|
155
|
+
*/
|
|
156
|
+
export declare interface StorageReference {
|
|
157
|
+
/**
|
|
158
|
+
* Returns a gs:// URL for this object in the form
|
|
159
|
+
* `gs://<bucket>/<path>/<to>/<object>`
|
|
160
|
+
* @returns The gs:// URL.
|
|
161
|
+
*/
|
|
162
|
+
toString(): string;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* A reference to the root of this object's bucket.
|
|
166
|
+
*/
|
|
167
|
+
root: StorageReference;
|
|
168
|
+
/**
|
|
169
|
+
* The name of the bucket containing this reference's object.
|
|
170
|
+
*/
|
|
171
|
+
bucket: string;
|
|
172
|
+
/**
|
|
173
|
+
* The full path of this object.
|
|
174
|
+
*/
|
|
175
|
+
fullPath: string;
|
|
176
|
+
/**
|
|
177
|
+
* The short name of this object, which is the last component of the full path.
|
|
178
|
+
* For example, if fullPath is 'full/path/image.png', name is 'image.png'.
|
|
179
|
+
*/
|
|
180
|
+
name: string;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* A reference pointing to the parent location of this reference, or null if
|
|
184
|
+
* this reference is the root.
|
|
185
|
+
*/
|
|
186
|
+
parent: StorageReference | null;
|
|
105
187
|
}
|
package/src/types/user.ts
CHANGED
package/src/util/builders.ts
CHANGED
|
@@ -26,10 +26,12 @@ import {
|
|
|
26
26
|
* @param collection
|
|
27
27
|
* @group Builder
|
|
28
28
|
*/
|
|
29
|
-
export function buildCollection<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
export function buildCollection<
|
|
30
|
+
M extends Record<string, any> = any,
|
|
31
|
+
USER extends User = User>
|
|
32
|
+
(
|
|
33
|
+
collection: EntityCollection<M, USER>
|
|
34
|
+
): EntityCollection<M, USER> {
|
|
33
35
|
return collection;
|
|
34
36
|
}
|
|
35
37
|
|
|
@@ -39,7 +41,7 @@ export function buildCollection<M extends Record<string, any> = any,
|
|
|
39
41
|
* @param property
|
|
40
42
|
* @group Builder
|
|
41
43
|
*/
|
|
42
|
-
export function buildProperty<T extends CMSType = CMSType, P extends PropertyOrBuilder<T> = PropertyOrBuilder<T>, M extends Record<string, any> =
|
|
44
|
+
export function buildProperty<T extends CMSType = CMSType, P extends PropertyOrBuilder<T> = PropertyOrBuilder<T>, M extends Record<string, any> = any>(
|
|
43
45
|
property: P
|
|
44
46
|
):
|
|
45
47
|
P extends StringProperty ? StringProperty :
|
|
@@ -120,9 +122,9 @@ export function buildEntityCallbacks<M extends Record<string, any> = any>(
|
|
|
120
122
|
* @param additionalFieldDelegate
|
|
121
123
|
* @group Builder
|
|
122
124
|
*/
|
|
123
|
-
export function buildAdditionalFieldDelegate<M extends Record<string, any>,
|
|
124
|
-
additionalFieldDelegate: AdditionalFieldDelegate<M,
|
|
125
|
-
): AdditionalFieldDelegate<M,
|
|
125
|
+
export function buildAdditionalFieldDelegate<M extends Record<string, any>, USER extends User = User>(
|
|
126
|
+
additionalFieldDelegate: AdditionalFieldDelegate<M, USER>
|
|
127
|
+
): AdditionalFieldDelegate<M, USER> {
|
|
126
128
|
return additionalFieldDelegate;
|
|
127
129
|
}
|
|
128
130
|
|