@firecms/core 3.0.0-alpha.7 → 3.0.0-alpha.71
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 +1 -1
- package/dist/components/ArrayContainer.d.ts +42 -0
- package/dist/components/CircularProgressCenter.d.ts +11 -0
- package/dist/components/DeleteConfirmationDialog.d.ts +9 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
- package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
- package/dist/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
- package/dist/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
- package/dist/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
- package/dist/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
- package/dist/components/EntityCollectionTable/index.d.ts +4 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
- package/dist/components/EntityCollectionTable/internal/DeleteEntityDialog.d.ts +12 -0
- package/dist/components/EntityCollectionTable/internal/EntityCollectionRowActions.d.ts +35 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
- package/dist/components/EntityCollectionTable/internal/PropertyTableCell.d.ts +18 -0
- package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
- package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
- package/dist/components/EntityCollectionTable/types.d.ts +39 -0
- package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
- package/dist/components/EntityCollectionTable/useEntityCollectionTableController.d.ts +21 -0
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
- package/dist/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
- package/dist/components/EntityPreview.d.ts +11 -0
- package/dist/components/ErrorBoundary.d.ts +11 -0
- package/dist/components/ErrorTooltip.d.ts +2 -0
- package/dist/components/ErrorView.d.ts +19 -0
- package/dist/components/FieldConfigBadge.d.ts +4 -0
- package/dist/components/FireCMSAppBar.d.ts +26 -0
- package/dist/components/FireCMSLogo.d.ts +7 -0
- package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
- package/dist/components/HomePage/FavouritesView.d.ts +3 -0
- package/dist/components/HomePage/NavigationCollectionCard.d.ts +17 -0
- package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
- package/dist/components/HomePage/index.d.ts +3 -0
- package/dist/components/LabelWithIcon.d.ts +14 -0
- package/dist/components/NotFoundPage.d.ts +1 -0
- package/dist/components/ReferenceSelectionInner.d.ts +58 -0
- package/dist/components/ReferenceWidget.d.ts +28 -0
- package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
- package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +215 -0
- package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
- package/dist/components/VirtualTable/common.d.ts +2 -0
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
- package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
- package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
- package/dist/components/VirtualTable/index.d.ts +2 -0
- package/dist/components/VirtualTable/types.d.ts +34 -0
- package/dist/components/index.d.ts +20 -0
- package/dist/contexts/AuthControllerContext.d.ts +3 -0
- package/dist/contexts/DataSourceContext.d.ts +3 -0
- package/dist/contexts/DialogsProvider.d.ts +4 -0
- package/dist/contexts/ModeController.d.ts +4 -0
- package/dist/contexts/NavigationContext.d.ts +3 -0
- package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
- package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
- package/dist/contexts/SnackbarProvider.d.ts +2 -0
- package/dist/contexts/StorageSourceContext.d.ts +3 -0
- package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/dist/contexts/index.d.ts +3 -0
- package/dist/core/Drawer.d.ts +23 -0
- package/dist/core/EntitySidePanel.d.ts +10 -0
- package/dist/core/FireCMS.d.ts +14 -0
- package/dist/core/NavigationRoutes.d.ts +21 -0
- package/dist/core/Scaffold.d.ts +52 -0
- package/dist/core/SideDialogs.d.ts +23 -0
- package/dist/core/field_configs.d.ts +7 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/dist/core/useBuildModeController.d.ts +6 -0
- package/dist/form/EntityForm.d.ts +75 -0
- package/dist/form/PropertyFieldBinding.d.ts +30 -0
- package/dist/form/components/CustomIdField.d.ts +9 -0
- package/dist/form/components/ErrorFocus.d.ts +4 -0
- package/dist/form/components/FieldHelperText.d.ts +12 -0
- package/dist/form/components/FormikArrayContainer.d.ts +18 -0
- package/dist/form/components/StorageItemPreview.d.ts +13 -0
- package/dist/form/components/StorageUploadProgress.d.ts +10 -0
- package/dist/form/components/SubmitListener.d.ts +1 -0
- package/dist/form/components/SwitchControl.d.ts +8 -0
- package/dist/form/components/index.d.ts +3 -0
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
- package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
- package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +20 -0
- package/dist/form/useClearRestoreValue.d.ts +13 -0
- package/dist/form/validation.d.ts +25 -0
- package/dist/hooks/data/delete.d.ts +37 -0
- package/dist/hooks/data/save.d.ts +42 -0
- package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
- package/dist/hooks/data/useDataOrder.d.ts +12 -0
- package/dist/hooks/data/useDataSource.d.ts +6 -0
- package/dist/hooks/data/useEntityFetch.d.ts +28 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/useAuthController.d.ts +11 -0
- package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/dist/hooks/useClipboard.d.ts +57 -0
- package/dist/hooks/useDialogsController.d.ts +11 -0
- package/dist/hooks/useFireCMSContext.d.ts +12 -0
- package/dist/hooks/useLargeLayout.d.ts +1 -0
- package/dist/hooks/useModeController.d.ts +20 -0
- package/dist/hooks/useNavigationController.d.ts +9 -0
- package/dist/hooks/useReferenceDialog.d.ts +18 -0
- package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
- package/dist/hooks/useSideDialogsController.d.ts +18 -0
- package/dist/hooks/useSideEntityController.d.ts +12 -0
- package/dist/hooks/useSnackbarController.d.ts +41 -0
- package/dist/hooks/useStorageSource.d.ts +6 -0
- package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.es.js +12415 -25618
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +5 -1027
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/EntityView.d.ts +22 -0
- package/dist/internal/common.d.ts +3 -0
- package/dist/internal/useBuildDataSource.d.ts +22 -0
- package/dist/internal/useBuildNavigationController.d.ts +14 -0
- package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
- package/dist/internal/useBuildSideEntityController.d.ts +4 -0
- package/dist/internal/useLocaleConfig.d.ts +1 -0
- package/dist/internal/useRestoreScroll.d.ts +6 -0
- package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
- package/dist/preview/PropertyPreview.d.ts +7 -0
- package/dist/preview/PropertyPreviewProps.d.ts +43 -0
- package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
- package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
- package/dist/preview/components/BooleanPreview.d.ts +7 -0
- package/dist/preview/components/DatePreview.d.ts +7 -0
- package/dist/preview/components/EmptyValue.d.ts +4 -0
- package/dist/preview/components/EnumValuesChip.d.ts +13 -0
- package/dist/preview/components/ImagePreview.d.ts +12 -0
- package/dist/preview/components/ReferencePreview.d.ts +22 -0
- package/dist/preview/components/StorageThumbnail.d.ts +13 -0
- package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
- package/dist/preview/index.d.ts +23 -0
- package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
- package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
- package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
- package/dist/preview/util.d.ts +7 -0
- package/dist/types/analytics.d.ts +1 -0
- package/dist/types/appcheck.d.ts +26 -0
- package/dist/types/auth.d.ts +40 -0
- package/dist/types/collections.d.ts +451 -0
- package/dist/types/datasource.d.ts +262 -0
- package/dist/types/dialogs_controller.d.ts +32 -0
- package/dist/types/entities.d.ts +57 -0
- package/dist/types/entity_actions.d.ts +35 -0
- package/dist/types/entity_callbacks.d.ts +171 -0
- package/dist/types/entity_link_builder.d.ts +7 -0
- package/dist/types/export_import.d.ts +21 -0
- package/dist/types/fields.d.ts +181 -0
- package/dist/types/firecms.d.ts +151 -0
- package/dist/types/firecms_context.d.ts +110 -0
- package/dist/types/index.d.ts +26 -0
- package/dist/types/local_config_persistence.d.ts +21 -0
- package/dist/types/locales.d.ts +4 -0
- package/dist/types/modify_collections.d.ts +5 -0
- package/dist/types/navigation.d.ts +178 -0
- package/dist/types/permissions.d.ts +63 -0
- package/dist/types/plugins.d.ts +179 -0
- package/dist/types/properties.d.ts +681 -0
- package/dist/types/property_config.d.ts +42 -0
- package/dist/types/resolved_entities.d.ts +98 -0
- package/dist/types/side_dialogs_controller.d.ts +57 -0
- package/dist/types/side_entity_controller.d.ts +83 -0
- package/dist/types/storage.d.ts +82 -0
- package/dist/types/user.d.ts +36 -0
- package/dist/util/arrays.d.ts +1 -0
- package/dist/util/builders.d.ts +64 -0
- package/dist/util/chip_utils.d.ts +3 -0
- package/dist/util/collections.d.ts +3 -0
- package/dist/util/common.d.ts +2 -0
- package/dist/util/dates.d.ts +1 -0
- package/dist/util/entities.d.ts +28 -0
- package/dist/util/enums.d.ts +7 -0
- package/dist/util/flatten_object.d.ts +3 -0
- package/dist/util/hash.d.ts +1 -0
- package/dist/util/icons.d.ts +4 -0
- package/dist/util/index.d.ts +20 -0
- package/dist/util/join_collections.d.ts +9 -0
- package/dist/util/make_properties_editable.d.ts +3 -0
- package/dist/util/navigation_from_path.d.ts +24 -0
- package/dist/util/navigation_utils.d.ts +20 -0
- package/dist/util/objects.d.ts +10 -0
- package/dist/util/os.d.ts +2 -0
- package/dist/util/parent_references_from_path.d.ts +6 -0
- package/dist/util/paths.d.ts +14 -0
- package/dist/util/permissions.d.ts +5 -0
- package/dist/util/plurals.d.ts +18 -0
- package/dist/util/property_utils.d.ts +23 -0
- package/dist/util/references.d.ts +2 -0
- package/dist/util/regexp.d.ts +7 -0
- package/dist/util/resolutions.d.ts +64 -0
- package/dist/util/storage.d.ts +3 -0
- package/dist/util/strings.d.ts +6 -0
- package/dist/util/useDebounce.d.ts +1 -0
- package/dist/util/useStorageUploadController.d.ts +36 -0
- package/dist/util/useTraceUpdate.d.ts +1 -0
- package/package.json +114 -142
- package/src/components/ArrayContainer.d.ts +42 -0
- package/src/components/ArrayContainer.tsx +369 -0
- package/src/components/CircularProgressCenter.d.ts +11 -0
- package/src/components/CircularProgressCenter.tsx +26 -0
- package/src/components/DeleteConfirmationDialog.d.ts +9 -0
- package/src/components/DeleteConfirmationDialog.tsx +47 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +520 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
- package/src/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
- package/src/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
- package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
- package/src/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
- package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
- package/src/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
- package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
- package/src/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
- package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
- package/src/components/EntityCollectionTable/index.d.ts +4 -0
- package/src/components/EntityCollectionTable/index.tsx +16 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
- package/src/components/EntityCollectionTable/internal/DeleteEntityDialog.d.ts +12 -0
- package/src/components/EntityCollectionTable/internal/DeleteEntityDialog.tsx +207 -0
- package/src/components/EntityCollectionTable/internal/EntityCollectionRowActions.d.ts +35 -0
- package/src/components/EntityCollectionTable/internal/EntityCollectionRowActions.tsx +174 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +264 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/PropertyTableCell.d.ts +18 -0
- package/src/components/EntityCollectionTable/internal/PropertyTableCell.tsx +460 -0
- package/src/components/EntityCollectionTable/internal/common.d.ts +4 -0
- package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
- package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
- package/src/components/EntityCollectionTable/types.d.ts +39 -0
- package/src/components/EntityCollectionTable/types.tsx +44 -0
- package/src/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
- package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
- package/src/components/EntityCollectionTable/useEntityCollectionTableController.d.ts +21 -0
- package/src/components/EntityCollectionTable/useEntityCollectionTableController.tsx +213 -0
- package/src/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
- package/src/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
- package/src/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
- package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
- package/src/components/EntityPreview.d.ts +11 -0
- package/src/components/EntityPreview.tsx +83 -0
- package/src/components/ErrorBoundary.d.ts +11 -0
- package/src/components/ErrorBoundary.tsx +40 -0
- package/src/components/ErrorTooltip.d.ts +2 -0
- package/src/components/ErrorTooltip.tsx +11 -0
- package/src/components/ErrorView.d.ts +19 -0
- package/src/components/ErrorView.tsx +52 -0
- package/src/components/FieldConfigBadge.d.ts +4 -0
- package/src/components/FieldConfigBadge.tsx +17 -0
- package/src/components/FireCMSAppBar.d.ts +26 -0
- package/src/components/FireCMSAppBar.tsx +157 -0
- package/src/components/FireCMSLogo.d.ts +7 -0
- package/src/components/FireCMSLogo.tsx +73 -0
- package/src/components/HomePage/DefaultHomePage.d.ts +21 -0
- package/src/components/HomePage/DefaultHomePage.tsx +209 -0
- package/src/components/HomePage/FavouritesView.d.ts +3 -0
- package/src/components/HomePage/FavouritesView.tsx +64 -0
- package/src/components/HomePage/NavigationCollectionCard.d.ts +17 -0
- package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
- package/src/components/HomePage/NavigationGroup.d.ts +4 -0
- package/src/components/HomePage/NavigationGroup.tsx +39 -0
- package/src/components/HomePage/index.d.ts +3 -0
- package/src/components/HomePage/index.tsx +3 -0
- package/src/components/LabelWithIcon.d.ts +14 -0
- package/src/components/LabelWithIcon.tsx +33 -0
- package/src/components/NotFoundPage.d.ts +1 -0
- package/src/components/NotFoundPage.tsx +25 -0
- package/src/components/ReferenceSelectionInner.d.ts +58 -0
- package/src/components/ReferenceSelectionInner.tsx +364 -0
- package/src/components/ReferenceWidget.d.ts +28 -0
- package/src/components/ReferenceWidget.tsx +145 -0
- package/src/components/VirtualTable/VirtualTable.d.ts +11 -0
- package/src/components/VirtualTable/VirtualTable.tsx +402 -0
- package/src/components/VirtualTable/VirtualTableCell.d.ts +14 -0
- package/src/components/VirtualTable/VirtualTableCell.tsx +36 -0
- package/src/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
- package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
- package/src/components/VirtualTable/VirtualTableProps.d.ts +215 -0
- package/src/components/VirtualTable/VirtualTableProps.tsx +270 -0
- package/src/components/VirtualTable/VirtualTableRow.d.ts +3 -0
- package/src/components/VirtualTable/VirtualTableRow.tsx +54 -0
- package/src/components/VirtualTable/common.d.ts +2 -0
- package/src/components/VirtualTable/common.tsx +18 -0
- package/src/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
- package/src/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
- package/src/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
- package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
- package/src/components/VirtualTable/index.d.ts +2 -0
- package/src/components/VirtualTable/index.tsx +2 -0
- package/src/components/VirtualTable/types.d.ts +34 -0
- package/src/components/VirtualTable/types.tsx +44 -0
- package/src/components/index.d.ts +20 -0
- package/src/components/index.tsx +30 -0
- package/src/contexts/AuthControllerContext.d.ts +3 -0
- package/src/contexts/AuthControllerContext.tsx +4 -0
- package/src/contexts/DataSourceContext.d.ts +3 -0
- package/src/contexts/DataSourceContext.tsx +4 -0
- package/src/contexts/DialogsProvider.d.ts +4 -0
- package/src/contexts/DialogsProvider.tsx +52 -0
- package/src/contexts/ModeController.d.ts +4 -0
- package/src/contexts/ModeController.tsx +13 -0
- package/src/contexts/NavigationContext.d.ts +3 -0
- package/src/contexts/NavigationContext.tsx +4 -0
- package/src/contexts/SideDialogsControllerContext.d.ts +3 -0
- package/src/contexts/SideDialogsControllerContext.tsx +4 -0
- package/src/contexts/SideEntityControllerContext.d.ts +3 -0
- package/src/contexts/SideEntityControllerContext.tsx +4 -0
- package/src/contexts/SnackbarProvider.d.ts +2 -0
- package/src/contexts/SnackbarProvider.tsx +12 -0
- package/src/contexts/StorageSourceContext.d.ts +3 -0
- package/src/contexts/StorageSourceContext.tsx +4 -0
- package/src/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
- package/src/contexts/index.d.ts +3 -0
- package/src/contexts/index.ts +3 -0
- package/src/core/Drawer.d.ts +23 -0
- package/src/core/Drawer.tsx +161 -0
- package/src/core/EntitySidePanel.d.ts +10 -0
- package/src/core/EntitySidePanel.tsx +90 -0
- package/src/core/FireCMS.d.ts +14 -0
- package/src/core/FireCMS.tsx +184 -0
- package/src/core/NavigationRoutes.d.ts +21 -0
- package/src/core/NavigationRoutes.tsx +118 -0
- package/src/core/Scaffold.d.ts +52 -0
- package/src/core/Scaffold.tsx +278 -0
- package/src/core/SideDialogs.d.ts +23 -0
- package/src/core/SideDialogs.tsx +156 -0
- package/src/core/field_configs.d.ts +7 -0
- package/src/core/field_configs.tsx +400 -0
- package/src/core/index.d.ts +10 -0
- package/src/core/index.tsx +14 -0
- package/src/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
- package/src/core/useBuildModeController.d.ts +6 -0
- package/src/core/useBuildModeController.tsx +60 -0
- package/src/form/EntityForm.d.ts +75 -0
- package/src/form/EntityForm.tsx +647 -0
- package/src/form/PropertyFieldBinding.d.ts +30 -0
- package/src/form/PropertyFieldBinding.tsx +311 -0
- package/src/form/components/CustomIdField.d.ts +9 -0
- package/src/form/components/CustomIdField.tsx +124 -0
- package/src/form/components/ErrorFocus.d.ts +4 -0
- package/src/form/components/ErrorFocus.tsx +51 -0
- package/src/form/components/FieldHelperText.d.ts +12 -0
- package/src/form/components/FieldHelperText.tsx +58 -0
- package/src/form/components/FormikArrayContainer.d.ts +18 -0
- package/src/form/components/FormikArrayContainer.tsx +44 -0
- package/src/form/components/StorageItemPreview.d.ts +13 -0
- package/src/form/components/StorageItemPreview.tsx +66 -0
- package/src/form/components/StorageUploadProgress.d.ts +10 -0
- package/src/form/components/StorageUploadProgress.tsx +104 -0
- package/src/form/components/SubmitListener.tsx +32 -0
- package/src/form/components/SwitchControl.d.ts +8 -0
- package/src/form/components/SwitchControl.tsx +39 -0
- package/src/form/components/index.d.ts +3 -0
- package/src/form/components/index.tsx +3 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
- package/src/form/field_bindings/BlockFieldBinding.d.ts +10 -0
- package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
- package/src/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +66 -0
- package/src/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
- package/src/form/field_bindings/MapFieldBinding.d.ts +9 -0
- package/src/form/field_bindings/MapFieldBinding.tsx +142 -0
- package/src/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
- package/src/form/field_bindings/MultiSelectBinding.d.ts +9 -0
- package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
- package/src/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
- package/src/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
- package/src/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
- package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
- package/src/form/field_bindings/SelectFieldBinding.d.ts +12 -0
- package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
- package/src/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
- package/src/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
- package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
- package/src/form/field_bindings/TextFieldBinding.d.ts +12 -0
- package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
- package/src/form/index.d.ts +20 -0
- package/src/form/index.tsx +42 -0
- package/src/form/useClearRestoreValue.d.ts +13 -0
- package/src/form/useClearRestoreValue.tsx +35 -0
- package/src/form/validation.d.ts +25 -0
- package/src/form/validation.ts +409 -0
- package/src/hooks/data/delete.d.ts +37 -0
- package/src/hooks/data/delete.ts +101 -0
- package/src/hooks/data/save.d.ts +42 -0
- package/src/hooks/data/save.ts +165 -0
- package/src/hooks/data/useCollectionFetch.d.ts +50 -0
- package/src/hooks/data/useCollectionFetch.tsx +162 -0
- package/src/hooks/data/useDataOrder.d.ts +12 -0
- package/src/hooks/data/useDataOrder.ts +26 -0
- package/src/hooks/data/useDataSource.d.ts +6 -0
- package/src/hooks/data/useDataSource.tsx +9 -0
- package/src/hooks/data/useEntityFetch.d.ts +28 -0
- package/src/hooks/data/useEntityFetch.tsx +129 -0
- package/src/hooks/index.d.ts +19 -0
- package/src/hooks/index.tsx +23 -0
- package/src/hooks/useAuthController.d.ts +11 -0
- package/src/hooks/useAuthController.tsx +14 -0
- package/src/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
- package/src/hooks/useClipboard.d.ts +57 -0
- package/src/hooks/useClipboard.tsx +158 -0
- package/src/hooks/useDialogsController.d.ts +11 -0
- package/src/hooks/useDialogsController.tsx +14 -0
- package/src/hooks/useFireCMSContext.d.ts +12 -0
- package/src/hooks/useFireCMSContext.tsx +50 -0
- package/src/hooks/useLargeLayout.d.ts +1 -0
- package/src/hooks/useLargeLayout.tsx +34 -0
- package/src/hooks/useModeController.d.ts +20 -0
- package/src/hooks/useModeController.tsx +24 -0
- package/src/hooks/useNavigationController.d.ts +9 -0
- package/src/hooks/useNavigationController.tsx +12 -0
- package/src/hooks/useReferenceDialog.d.ts +18 -0
- package/src/hooks/useReferenceDialog.tsx +56 -0
- package/src/hooks/useResolvedNavigationFrom.d.ts +72 -0
- package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
- package/src/hooks/useSideDialogsController.d.ts +18 -0
- package/src/hooks/useSideDialogsController.tsx +21 -0
- package/src/hooks/useSideEntityController.d.ts +12 -0
- package/src/hooks/useSideEntityController.tsx +15 -0
- package/src/hooks/useSnackbarController.d.ts +41 -0
- package/src/hooks/useSnackbarController.tsx +76 -0
- package/src/hooks/useStorageSource.d.ts +6 -0
- package/src/hooks/useStorageSource.tsx +9 -0
- package/src/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
- package/src/index.d.ts +8 -0
- package/src/index.ts +8 -0
- package/src/internal/EntityView.d.ts +22 -0
- package/src/internal/EntityView.tsx +576 -0
- package/src/internal/common.d.ts +3 -0
- package/src/internal/common.tsx +5 -0
- package/src/internal/useBuildDataSource.d.ts +22 -0
- package/src/internal/useBuildDataSource.ts +360 -0
- package/src/internal/useBuildNavigationController.d.ts +14 -0
- package/src/internal/useBuildNavigationController.tsx +371 -0
- package/src/internal/useBuildSideDialogsController.d.ts +2 -0
- package/src/internal/useBuildSideDialogsController.tsx +125 -0
- package/src/internal/useBuildSideEntityController.d.ts +4 -0
- package/src/internal/useBuildSideEntityController.tsx +160 -0
- package/src/internal/useLocaleConfig.d.ts +1 -0
- package/src/internal/useLocaleConfig.tsx +18 -0
- package/src/internal/useRestoreScroll.d.ts +6 -0
- package/src/internal/useRestoreScroll.tsx +48 -0
- package/src/internal/useUnsavedChangesDialog.d.ts +14 -0
- package/src/internal/useUnsavedChangesDialog.tsx +106 -0
- package/src/preview/PropertyPreview.d.ts +7 -0
- package/src/preview/PropertyPreview.tsx +222 -0
- package/src/preview/PropertyPreviewProps.d.ts +43 -0
- package/src/preview/PropertyPreviewProps.tsx +59 -0
- package/src/preview/components/ArrayEnumPreview.d.ts +11 -0
- package/src/preview/components/ArrayEnumPreview.tsx +39 -0
- package/src/preview/components/AsyncPreviewComponent.d.ts +11 -0
- package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
- package/src/preview/components/BooleanPreview.d.ts +7 -0
- package/src/preview/components/BooleanPreview.tsx +11 -0
- package/src/preview/components/DatePreview.d.ts +7 -0
- package/src/preview/components/DatePreview.tsx +27 -0
- package/src/preview/components/EmptyValue.d.ts +4 -0
- package/src/preview/components/EmptyValue.tsx +10 -0
- package/src/preview/components/EnumValuesChip.d.ts +13 -0
- package/src/preview/components/EnumValuesChip.tsx +38 -0
- package/src/preview/components/ImagePreview.d.ts +12 -0
- package/src/preview/components/ImagePreview.tsx +106 -0
- package/src/preview/components/ReferencePreview.d.ts +22 -0
- package/src/preview/components/ReferencePreview.tsx +249 -0
- package/src/preview/components/StorageThumbnail.d.ts +13 -0
- package/src/preview/components/StorageThumbnail.tsx +84 -0
- package/src/preview/components/UrlComponentPreview.d.ts +12 -0
- package/src/preview/components/UrlComponentPreview.tsx +79 -0
- package/src/preview/index.d.ts +23 -0
- package/src/preview/index.ts +27 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
- package/src/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
- package/src/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
- package/src/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
- package/src/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
- package/src/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
- package/src/preview/property_previews/MapPropertyPreview.d.ts +8 -0
- package/src/preview/property_previews/MapPropertyPreview.tsx +144 -0
- package/src/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
- package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
- package/src/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
- package/src/preview/property_previews/StringPropertyPreview.d.ts +6 -0
- package/src/preview/property_previews/StringPropertyPreview.tsx +60 -0
- package/src/preview/util.d.ts +7 -0
- package/src/preview/util.ts +31 -0
- package/src/types/analytics.d.ts +1 -0
- package/src/types/analytics.ts +34 -0
- package/src/types/appcheck.d.ts +26 -0
- package/src/types/appcheck.ts +29 -0
- package/src/types/auth.d.ts +40 -0
- package/src/types/auth.tsx +49 -0
- package/src/types/collections.d.ts +451 -0
- package/src/types/collections.ts +530 -0
- package/src/types/datasource.d.ts +262 -0
- package/src/types/datasource.ts +389 -0
- package/src/types/dialogs_controller.d.ts +32 -0
- package/src/types/dialogs_controller.tsx +33 -0
- package/src/types/entities.d.ts +57 -0
- package/src/types/entities.ts +76 -0
- package/src/types/entity_actions.d.ts +35 -0
- package/src/types/entity_actions.tsx +39 -0
- package/src/types/entity_callbacks.d.ts +171 -0
- package/src/types/entity_callbacks.ts +209 -0
- package/src/types/entity_link_builder.d.ts +7 -0
- package/src/types/entity_link_builder.ts +8 -0
- package/src/types/export_import.d.ts +21 -0
- package/src/types/export_import.ts +26 -0
- package/src/types/fields.d.ts +181 -0
- package/src/types/fields.tsx +220 -0
- package/src/types/firecms.d.ts +151 -0
- package/src/types/firecms.tsx +175 -0
- package/src/types/firecms_context.d.ts +110 -0
- package/src/types/firecms_context.tsx +128 -0
- package/src/types/index.d.ts +26 -0
- package/src/types/index.ts +26 -0
- package/src/types/local_config_persistence.d.ts +21 -0
- package/src/types/local_config_persistence.tsx +23 -0
- package/src/types/locales.d.ts +4 -0
- package/src/types/locales.ts +81 -0
- package/src/types/modify_collections.d.ts +5 -0
- package/src/types/modify_collections.tsx +6 -0
- package/src/types/navigation.d.ts +178 -0
- package/src/types/navigation.ts +214 -0
- package/src/types/permissions.d.ts +63 -0
- package/src/types/permissions.ts +76 -0
- package/src/types/plugins.d.ts +179 -0
- package/src/types/plugins.tsx +217 -0
- package/src/types/properties.d.ts +681 -0
- package/src/types/properties.ts +851 -0
- package/src/types/property_config.d.ts +42 -0
- package/src/types/property_config.tsx +72 -0
- package/src/types/resolved_entities.d.ts +98 -0
- package/src/types/resolved_entities.ts +148 -0
- package/src/types/side_dialogs_controller.d.ts +57 -0
- package/src/types/side_dialogs_controller.tsx +68 -0
- package/src/types/side_entity_controller.d.ts +83 -0
- package/src/types/side_entity_controller.tsx +96 -0
- package/src/types/storage.d.ts +82 -0
- package/src/types/storage.ts +96 -0
- package/src/types/user.d.ts +36 -0
- package/src/types/user.ts +37 -0
- package/src/util/arrays.d.ts +1 -0
- package/src/util/arrays.ts +3 -0
- package/src/util/builders.d.ts +64 -0
- package/src/util/builders.ts +139 -0
- package/src/util/chip_utils.d.ts +3 -0
- package/src/util/chip_utils.ts +13 -0
- package/src/util/collections.d.ts +3 -0
- package/src/util/collections.ts +50 -0
- package/src/util/common.d.ts +2 -0
- package/src/util/common.tsx +2 -0
- package/src/util/dates.d.ts +1 -0
- package/src/util/dates.ts +1 -0
- package/src/util/entities.d.ts +28 -0
- package/src/util/entities.ts +196 -0
- package/src/util/enums.d.ts +7 -0
- package/src/util/enums.ts +57 -0
- package/src/util/flatten_object.d.ts +3 -0
- package/src/util/flatten_object.ts +45 -0
- package/src/util/hash.d.ts +1 -0
- package/src/util/hash.ts +11 -0
- package/src/util/icons.d.ts +4 -0
- package/src/util/icons.tsx +45 -0
- package/src/util/index.d.ts +20 -0
- package/src/util/index.ts +20 -0
- package/src/util/join_collections.d.ts +9 -0
- package/src/util/join_collections.ts +172 -0
- package/src/util/make_properties_editable.d.ts +3 -0
- package/src/util/make_properties_editable.ts +29 -0
- package/src/util/navigation_from_path.d.ts +24 -0
- package/src/util/navigation_from_path.ts +107 -0
- package/src/util/navigation_utils.d.ts +20 -0
- package/src/util/navigation_utils.ts +111 -0
- package/src/util/objects.d.ts +10 -0
- package/src/util/objects.ts +168 -0
- package/src/util/os.ts +13 -0
- package/src/util/parent_references_from_path.d.ts +6 -0
- package/src/util/parent_references_from_path.ts +56 -0
- package/src/util/paths.d.ts +14 -0
- package/src/util/paths.ts +27 -0
- package/src/util/permissions.d.ts +5 -0
- package/src/util/permissions.ts +80 -0
- package/src/util/plurals.d.ts +18 -0
- package/src/util/plurals.ts +190 -0
- package/src/util/property_utils.d.ts +23 -0
- package/src/util/property_utils.tsx +130 -0
- package/src/util/references.d.ts +2 -0
- package/src/util/references.ts +20 -0
- package/src/util/regexp.d.ts +7 -0
- package/src/util/regexp.ts +32 -0
- package/src/util/resolutions.d.ts +64 -0
- package/src/util/resolutions.ts +399 -0
- package/src/util/storage.d.ts +3 -0
- package/src/util/storage.ts +92 -0
- package/src/util/strings.d.ts +6 -0
- package/src/util/strings.ts +62 -0
- package/src/util/useDebounce.d.ts +1 -0
- package/src/util/useDebounce.ts +25 -0
- package/src/util/useStorageUploadController.d.ts +36 -0
- package/src/util/useStorageUploadController.tsx +243 -0
- package/src/util/useTraceUpdate.tsx +23 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { EntityCollection } from "./collections";
|
|
2
|
+
import { EntityReference } from "./entities";
|
|
3
|
+
/**
|
|
4
|
+
* Controller that includes the resolved navigation and utility methods and
|
|
5
|
+
* attributes.
|
|
6
|
+
* @group Models
|
|
7
|
+
*/
|
|
8
|
+
export type NavigationController = {
|
|
9
|
+
/**
|
|
10
|
+
* List of the mapped collections in the CMS.
|
|
11
|
+
* Each entry relates to a collection in the root database.
|
|
12
|
+
* Each of the navigation entries in this field
|
|
13
|
+
* generates an entry in the main menu.
|
|
14
|
+
*/
|
|
15
|
+
collections: EntityCollection[];
|
|
16
|
+
/**
|
|
17
|
+
* Custom additional views created by the developer, added to the main
|
|
18
|
+
* navigation
|
|
19
|
+
*/
|
|
20
|
+
views: CMSView[];
|
|
21
|
+
/**
|
|
22
|
+
* Configuration for the views that should be displayed at the top
|
|
23
|
+
* level of the navigation (e.g. in the home page or the navigation
|
|
24
|
+
* drawer)
|
|
25
|
+
*/
|
|
26
|
+
topLevelNavigation?: TopNavigationResult;
|
|
27
|
+
/**
|
|
28
|
+
* Is the navigation loading (the configuration persistence has not
|
|
29
|
+
* loaded yet, or a specified navigation builder has not completed)
|
|
30
|
+
*/
|
|
31
|
+
loading: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Was there an error while loading the navigation data
|
|
34
|
+
*/
|
|
35
|
+
navigationLoadingError?: any;
|
|
36
|
+
/**
|
|
37
|
+
* Is the registry ready to be used
|
|
38
|
+
*/
|
|
39
|
+
initialised: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get the collection configuration for a given path.
|
|
42
|
+
* The collection is resolved from the given path or alias.
|
|
43
|
+
*/
|
|
44
|
+
getCollection: <EC extends EntityCollection = EntityCollection<any>>(pathOrAlias: string, entityId?: string, includeUserOverride?: boolean) => EC | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Get the collection configuration from its parent path segments.
|
|
47
|
+
*/
|
|
48
|
+
getCollectionFromIds: <EC extends EntityCollection = EntityCollection<any>>(ids: string[]) => EC | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get the collection configuration from its parent path segments.
|
|
51
|
+
*/
|
|
52
|
+
getCollectionFromPaths: <EC extends EntityCollection = EntityCollection<any>>(pathSegments: string[]) => EC | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Default path under the navigation routes of the CMS will be created
|
|
55
|
+
*/
|
|
56
|
+
basePath: string;
|
|
57
|
+
/**
|
|
58
|
+
* Default path under the collection routes of the CMS will be created
|
|
59
|
+
*/
|
|
60
|
+
baseCollectionPath: string;
|
|
61
|
+
/**
|
|
62
|
+
* Convert a URL path to a collection or entity path
|
|
63
|
+
* `/c/products` => `products`
|
|
64
|
+
* `/my_cms/c/products/B34SAP8Z` => `products/B34SAP8Z`
|
|
65
|
+
* `/my_cms/my_view` => `my_view`
|
|
66
|
+
* @param cmsPath
|
|
67
|
+
*/
|
|
68
|
+
urlPathToDataPath: (cmsPath: string) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Convert a collection or entity path to a URL path
|
|
71
|
+
* @param path
|
|
72
|
+
*/
|
|
73
|
+
buildCMSUrlPath: (path: string) => string;
|
|
74
|
+
buildUrlEditCollectionPath: (props: {
|
|
75
|
+
path: string;
|
|
76
|
+
}) => string;
|
|
77
|
+
/**
|
|
78
|
+
* Base url path for the home screen
|
|
79
|
+
*/
|
|
80
|
+
homeUrl: string;
|
|
81
|
+
/**
|
|
82
|
+
* Check if a url path belongs to a collection
|
|
83
|
+
* @param path
|
|
84
|
+
*/
|
|
85
|
+
isUrlCollectionPath: (urlPath: string) => boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Build a URL collection path from a data path
|
|
88
|
+
* `products` => `/c/products`
|
|
89
|
+
* `products/B34SAP8Z` => `/c/products/B34SAP8Z`
|
|
90
|
+
* @param path
|
|
91
|
+
*/
|
|
92
|
+
buildUrlCollectionPath: (path: string) => string;
|
|
93
|
+
/**
|
|
94
|
+
* Turn a path with aliases into a resolved path
|
|
95
|
+
* @param pathWithAliases
|
|
96
|
+
*/
|
|
97
|
+
resolveAliasesFrom: (pathWithAliases: string) => string;
|
|
98
|
+
/**
|
|
99
|
+
* Location used as the base for routes.
|
|
100
|
+
* This is the location that will be used underneath, when the url changes while
|
|
101
|
+
* opening a side dialog
|
|
102
|
+
*/
|
|
103
|
+
baseLocation: string;
|
|
104
|
+
/**
|
|
105
|
+
* Call this method to recalculate the navigation
|
|
106
|
+
*/
|
|
107
|
+
refreshNavigation: () => void;
|
|
108
|
+
/**
|
|
109
|
+
* Retrieve all the related parent references for a given path
|
|
110
|
+
* @param path
|
|
111
|
+
*/
|
|
112
|
+
getParentReferencesFromPath: (path: string) => EntityReference[];
|
|
113
|
+
/**
|
|
114
|
+
* Retrieve all the related parent collection ids for a given path
|
|
115
|
+
* @param path
|
|
116
|
+
*/
|
|
117
|
+
getParentCollectionIds: (path: string) => string[];
|
|
118
|
+
/**
|
|
119
|
+
* Resolve paths from a list of ids
|
|
120
|
+
* @param ids
|
|
121
|
+
*/
|
|
122
|
+
convertIdsToPaths: (ids: string[]) => string[];
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Custom additional views created by the developer, added to the main
|
|
126
|
+
* navigation.
|
|
127
|
+
* @group Models
|
|
128
|
+
*/
|
|
129
|
+
export interface CMSView {
|
|
130
|
+
/**
|
|
131
|
+
* CMS Path you can reach this view from.
|
|
132
|
+
*/
|
|
133
|
+
path: string;
|
|
134
|
+
/**
|
|
135
|
+
* Name of this view
|
|
136
|
+
*/
|
|
137
|
+
name: string;
|
|
138
|
+
/**
|
|
139
|
+
* Optional description of this view. You can use Markdown
|
|
140
|
+
*/
|
|
141
|
+
description?: string;
|
|
142
|
+
/**
|
|
143
|
+
* Icon key to use in this view.
|
|
144
|
+
* You can use any of the icons in the Material specs:
|
|
145
|
+
* https://fonts.google.com/icons
|
|
146
|
+
* e.g. 'account_tree' or 'person'
|
|
147
|
+
*/
|
|
148
|
+
icon?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Should this view be hidden from the main navigation panel.
|
|
151
|
+
* It will still be accessible if you reach the specified path
|
|
152
|
+
*/
|
|
153
|
+
hideFromNavigation?: boolean;
|
|
154
|
+
/**
|
|
155
|
+
* Component to be rendered. This can be any React component, and can use
|
|
156
|
+
* any of the provided hooks
|
|
157
|
+
*/
|
|
158
|
+
view: React.ReactNode;
|
|
159
|
+
/**
|
|
160
|
+
* Optional field used to group top level navigation entries under a
|
|
161
|
+
* navigation view.
|
|
162
|
+
*/
|
|
163
|
+
group?: string;
|
|
164
|
+
}
|
|
165
|
+
export interface TopNavigationEntry {
|
|
166
|
+
url: string;
|
|
167
|
+
name: string;
|
|
168
|
+
path: string;
|
|
169
|
+
type: "collection" | "view";
|
|
170
|
+
collection?: EntityCollection;
|
|
171
|
+
view: CMSView;
|
|
172
|
+
description?: string;
|
|
173
|
+
group?: string;
|
|
174
|
+
}
|
|
175
|
+
export type TopNavigationResult = {
|
|
176
|
+
navigationEntries: TopNavigationEntry[];
|
|
177
|
+
groups: string[];
|
|
178
|
+
};
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { EntityCollection } from "./collections";
|
|
2
|
+
import { EntityReference } from "./entities";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Controller that includes the resolved navigation and utility methods and
|
|
6
|
+
* attributes.
|
|
7
|
+
* @group Models
|
|
8
|
+
*/
|
|
9
|
+
export type NavigationController = {
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* List of the mapped collections in the CMS.
|
|
13
|
+
* Each entry relates to a collection in the root database.
|
|
14
|
+
* Each of the navigation entries in this field
|
|
15
|
+
* generates an entry in the main menu.
|
|
16
|
+
*/
|
|
17
|
+
collections: EntityCollection[];
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Custom additional views created by the developer, added to the main
|
|
21
|
+
* navigation
|
|
22
|
+
*/
|
|
23
|
+
views: CMSView[];
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for the views that should be displayed at the top
|
|
27
|
+
* level of the navigation (e.g. in the home page or the navigation
|
|
28
|
+
* drawer)
|
|
29
|
+
*/
|
|
30
|
+
topLevelNavigation?: TopNavigationResult;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Is the navigation loading (the configuration persistence has not
|
|
34
|
+
* loaded yet, or a specified navigation builder has not completed)
|
|
35
|
+
*/
|
|
36
|
+
loading: boolean;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Was there an error while loading the navigation data
|
|
40
|
+
*/
|
|
41
|
+
navigationLoadingError?: any;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Is the registry ready to be used
|
|
45
|
+
*/
|
|
46
|
+
initialised: boolean;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Get the collection configuration for a given path.
|
|
50
|
+
* The collection is resolved from the given path or alias.
|
|
51
|
+
*/
|
|
52
|
+
getCollection: <EC extends EntityCollection = EntityCollection<any>>(pathOrAlias: string,
|
|
53
|
+
entityId?: string,
|
|
54
|
+
includeUserOverride?: boolean) => EC | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Get the collection configuration from its parent path segments.
|
|
57
|
+
*/
|
|
58
|
+
getCollectionFromIds: <EC extends EntityCollection = EntityCollection<any>>(ids: string[]) => EC | undefined;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Get the collection configuration from its parent path segments.
|
|
62
|
+
*/
|
|
63
|
+
getCollectionFromPaths: <EC extends EntityCollection = EntityCollection<any>>(pathSegments: string[]) => EC | undefined;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Default path under the navigation routes of the CMS will be created
|
|
67
|
+
*/
|
|
68
|
+
basePath: string;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Default path under the collection routes of the CMS will be created
|
|
72
|
+
*/
|
|
73
|
+
baseCollectionPath: string;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Convert a URL path to a collection or entity path
|
|
77
|
+
* `/c/products` => `products`
|
|
78
|
+
* `/my_cms/c/products/B34SAP8Z` => `products/B34SAP8Z`
|
|
79
|
+
* `/my_cms/my_view` => `my_view`
|
|
80
|
+
* @param cmsPath
|
|
81
|
+
*/
|
|
82
|
+
urlPathToDataPath: (cmsPath: string) => string;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Convert a collection or entity path to a URL path
|
|
86
|
+
* @param path
|
|
87
|
+
*/
|
|
88
|
+
buildCMSUrlPath: (path: string) => string;
|
|
89
|
+
|
|
90
|
+
buildUrlEditCollectionPath: (props: {
|
|
91
|
+
path: string
|
|
92
|
+
}) => string;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Base url path for the home screen
|
|
96
|
+
*/
|
|
97
|
+
homeUrl: string;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Check if a url path belongs to a collection
|
|
101
|
+
* @param path
|
|
102
|
+
*/
|
|
103
|
+
isUrlCollectionPath: (urlPath: string) => boolean;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Build a URL collection path from a data path
|
|
107
|
+
* `products` => `/c/products`
|
|
108
|
+
* `products/B34SAP8Z` => `/c/products/B34SAP8Z`
|
|
109
|
+
* @param path
|
|
110
|
+
*/
|
|
111
|
+
buildUrlCollectionPath: (path: string) => string;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Turn a path with aliases into a resolved path
|
|
115
|
+
* @param pathWithAliases
|
|
116
|
+
*/
|
|
117
|
+
resolveAliasesFrom: (pathWithAliases: string) => string;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Location used as the base for routes.
|
|
121
|
+
* This is the location that will be used underneath, when the url changes while
|
|
122
|
+
* opening a side dialog
|
|
123
|
+
*/
|
|
124
|
+
baseLocation: string;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Call this method to recalculate the navigation
|
|
128
|
+
*/
|
|
129
|
+
refreshNavigation: () => void;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Retrieve all the related parent references for a given path
|
|
133
|
+
* @param path
|
|
134
|
+
*/
|
|
135
|
+
getParentReferencesFromPath: (path: string) => EntityReference[];
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Retrieve all the related parent collection ids for a given path
|
|
139
|
+
* @param path
|
|
140
|
+
*/
|
|
141
|
+
getParentCollectionIds: (path: string) => string[];
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Resolve paths from a list of ids
|
|
145
|
+
* @param ids
|
|
146
|
+
*/
|
|
147
|
+
convertIdsToPaths: (ids: string[]) => string[];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Custom additional views created by the developer, added to the main
|
|
152
|
+
* navigation.
|
|
153
|
+
* @group Models
|
|
154
|
+
*/
|
|
155
|
+
export interface CMSView {
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* CMS Path you can reach this view from.
|
|
159
|
+
*/
|
|
160
|
+
path: string;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Name of this view
|
|
164
|
+
*/
|
|
165
|
+
name: string;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Optional description of this view. You can use Markdown
|
|
169
|
+
*/
|
|
170
|
+
description?: string;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Icon key to use in this view.
|
|
174
|
+
* You can use any of the icons in the Material specs:
|
|
175
|
+
* https://fonts.google.com/icons
|
|
176
|
+
* e.g. 'account_tree' or 'person'
|
|
177
|
+
*/
|
|
178
|
+
icon?: string;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Should this view be hidden from the main navigation panel.
|
|
182
|
+
* It will still be accessible if you reach the specified path
|
|
183
|
+
*/
|
|
184
|
+
hideFromNavigation?: boolean;
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Component to be rendered. This can be any React component, and can use
|
|
188
|
+
* any of the provided hooks
|
|
189
|
+
*/
|
|
190
|
+
view: React.ReactNode;
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Optional field used to group top level navigation entries under a
|
|
194
|
+
* navigation view.
|
|
195
|
+
*/
|
|
196
|
+
group?: string;
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export interface TopNavigationEntry {
|
|
201
|
+
url: string;
|
|
202
|
+
name: string;
|
|
203
|
+
path: string;
|
|
204
|
+
type: "collection" | "view";
|
|
205
|
+
collection?: EntityCollection;
|
|
206
|
+
view: CMSView;
|
|
207
|
+
description?: string;
|
|
208
|
+
group?: string;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export type TopNavigationResult = {
|
|
212
|
+
navigationEntries: TopNavigationEntry[],
|
|
213
|
+
groups: string[]
|
|
214
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { User } from "./user";
|
|
2
|
+
import { AuthController } from "./auth";
|
|
3
|
+
import { EntityCollection, InferCollectionType } from "./collections";
|
|
4
|
+
import { Entity } from "./entities";
|
|
5
|
+
/**
|
|
6
|
+
* Define the operations that can be performed in a collection.
|
|
7
|
+
* @group Models
|
|
8
|
+
*/
|
|
9
|
+
export interface Permissions {
|
|
10
|
+
/**
|
|
11
|
+
* Can the user see this collection.
|
|
12
|
+
* If `false` it will not show in the user's navigation
|
|
13
|
+
* Defaults to `true`
|
|
14
|
+
*/
|
|
15
|
+
read?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Can the user add new entities. Defaults to `true`
|
|
18
|
+
*/
|
|
19
|
+
create?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Can the elements in this collection be edited. Defaults to `true`
|
|
22
|
+
*/
|
|
23
|
+
edit?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Can the user delete entities. Defaults to `true`
|
|
26
|
+
*/
|
|
27
|
+
delete?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Props passed to a {@link PermissionsBuilder}
|
|
31
|
+
* @group Models
|
|
32
|
+
*/
|
|
33
|
+
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection, UserType extends User = User, M extends object = InferCollectionType<EC>> {
|
|
34
|
+
/**
|
|
35
|
+
* Entity being edited, might be null in some cases, when the operation
|
|
36
|
+
* refers to the collection.
|
|
37
|
+
* For example, when deciding whether a user can create a new entity
|
|
38
|
+
* in a collection, the entity will be null.
|
|
39
|
+
*/
|
|
40
|
+
entity: Entity<M> | null;
|
|
41
|
+
/**
|
|
42
|
+
* Path segments of the collection e.g. ['products', 'locales']
|
|
43
|
+
*/
|
|
44
|
+
pathSegments: string[];
|
|
45
|
+
/**
|
|
46
|
+
* Logged in user
|
|
47
|
+
*/
|
|
48
|
+
user: UserType | null;
|
|
49
|
+
/**
|
|
50
|
+
* Collection these permissions apply to
|
|
51
|
+
*/
|
|
52
|
+
collection: EC;
|
|
53
|
+
/**
|
|
54
|
+
* Auth controller
|
|
55
|
+
*/
|
|
56
|
+
authController: AuthController<UserType>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Builder used to assign permissions to entities,
|
|
60
|
+
* based on the logged user or collection.
|
|
61
|
+
* @group Models
|
|
62
|
+
*/
|
|
63
|
+
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, UserType extends User = User, M extends object = InferCollectionType<EC>> = (({ pathSegments, user, collection, authController }: PermissionsBuilderProps<EC, UserType, M>) => Permissions);
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { User } from "./user";
|
|
2
|
+
import { AuthController } from "./auth";
|
|
3
|
+
import { EntityCollection, InferCollectionType } from "./collections";
|
|
4
|
+
import { Entity } from "./entities";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Define the operations that can be performed in a collection.
|
|
8
|
+
* @group Models
|
|
9
|
+
*/
|
|
10
|
+
export interface Permissions {
|
|
11
|
+
/**
|
|
12
|
+
* Can the user see this collection.
|
|
13
|
+
* If `false` it will not show in the user's navigation
|
|
14
|
+
* Defaults to `true`
|
|
15
|
+
*/
|
|
16
|
+
read?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Can the user add new entities. Defaults to `true`
|
|
19
|
+
*/
|
|
20
|
+
create?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Can the elements in this collection be edited. Defaults to `true`
|
|
23
|
+
*/
|
|
24
|
+
edit?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Can the user delete entities. Defaults to `true`
|
|
27
|
+
*/
|
|
28
|
+
delete?: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Props passed to a {@link PermissionsBuilder}
|
|
33
|
+
* @group Models
|
|
34
|
+
*/
|
|
35
|
+
export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCollection, UserType extends User = User, M extends object = InferCollectionType<EC>> {
|
|
36
|
+
/**
|
|
37
|
+
* Entity being edited, might be null in some cases, when the operation
|
|
38
|
+
* refers to the collection.
|
|
39
|
+
* For example, when deciding whether a user can create a new entity
|
|
40
|
+
* in a collection, the entity will be null.
|
|
41
|
+
*/
|
|
42
|
+
entity: Entity<M> | null;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Path segments of the collection e.g. ['products', 'locales']
|
|
46
|
+
*/
|
|
47
|
+
pathSegments: string[];
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Logged in user
|
|
51
|
+
*/
|
|
52
|
+
user: UserType | null;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Collection these permissions apply to
|
|
56
|
+
*/
|
|
57
|
+
collection: EC;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Auth controller
|
|
61
|
+
*/
|
|
62
|
+
authController: AuthController<UserType>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Builder used to assign permissions to entities,
|
|
67
|
+
* based on the logged user or collection.
|
|
68
|
+
* @group Models
|
|
69
|
+
*/
|
|
70
|
+
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, UserType extends User = User, M extends object = InferCollectionType<EC>> =
|
|
71
|
+
(({
|
|
72
|
+
pathSegments,
|
|
73
|
+
user,
|
|
74
|
+
collection,
|
|
75
|
+
authController
|
|
76
|
+
}: PermissionsBuilderProps<EC, UserType, M>) => Permissions);
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from "react";
|
|
2
|
+
import { FireCMSContext } from "./firecms_context";
|
|
3
|
+
import { CollectionActionsProps, EntityCollection } from "./collections";
|
|
4
|
+
import { User } from "./user";
|
|
5
|
+
import { FieldProps, FormContext } from "./fields";
|
|
6
|
+
import { CMSType, Property } from "./properties";
|
|
7
|
+
import { EntityStatus } from "./entities";
|
|
8
|
+
import { ResolvedProperty } from "./resolved_entities";
|
|
9
|
+
/**
|
|
10
|
+
* Interface used to define plugins for FireCMS.
|
|
11
|
+
* NOTE: This is a work in progress and the API is not stable yet.
|
|
12
|
+
* @group Core
|
|
13
|
+
*/
|
|
14
|
+
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
|
|
15
|
+
/**
|
|
16
|
+
* Name of the plugin
|
|
17
|
+
*/
|
|
18
|
+
name: string;
|
|
19
|
+
/**
|
|
20
|
+
* If this flag is set to true, no content will be shown in the CMS
|
|
21
|
+
* until the plugin is fully loaded.
|
|
22
|
+
*/
|
|
23
|
+
loading?: boolean;
|
|
24
|
+
collections?: {
|
|
25
|
+
/**
|
|
26
|
+
* Use this method to inject collections to the CMS.
|
|
27
|
+
* You receive the current collections as a parameter, and you can return
|
|
28
|
+
* a new list of collections.
|
|
29
|
+
* @see {@link joinCollectionLists}
|
|
30
|
+
* @param collections
|
|
31
|
+
*/
|
|
32
|
+
injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
|
|
33
|
+
/**
|
|
34
|
+
* Use this component to add custom actions to the entity collections
|
|
35
|
+
* toolbar.
|
|
36
|
+
*/
|
|
37
|
+
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
38
|
+
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
39
|
+
};
|
|
40
|
+
form?: {
|
|
41
|
+
provider?: {
|
|
42
|
+
Component: React.ComponentType<PropsWithChildren<FORM_PROPS & PluginFormActionProps<any, EC>>>;
|
|
43
|
+
props?: FORM_PROPS;
|
|
44
|
+
};
|
|
45
|
+
Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
46
|
+
fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
|
|
47
|
+
fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* You can use this prop to add higher order components to the CMS.
|
|
51
|
+
* The components will be added to the root of the CMS, so any component
|
|
52
|
+
* rendered underneath by this plugin will have access to the context
|
|
53
|
+
* provided by this HOC.
|
|
54
|
+
* Anyhow, this is rendered below the {@link FireCMSContext} provider, so
|
|
55
|
+
* you can use the hooks provided by the CMS.
|
|
56
|
+
* @param props
|
|
57
|
+
*/
|
|
58
|
+
provider?: {
|
|
59
|
+
Component: React.ComponentType<PropsWithChildren<PROPS & {
|
|
60
|
+
context: FireCMSContext;
|
|
61
|
+
}>>;
|
|
62
|
+
props?: PROPS;
|
|
63
|
+
};
|
|
64
|
+
homePage?: {
|
|
65
|
+
/**
|
|
66
|
+
* Additional actions to be rendered in the home page, close to the search bar.
|
|
67
|
+
*/
|
|
68
|
+
additionalActions?: React.ReactNode;
|
|
69
|
+
/**
|
|
70
|
+
* Additional children to be rendered in the beginning of the home page.
|
|
71
|
+
*/
|
|
72
|
+
additionalChildrenStart?: React.ReactNode;
|
|
73
|
+
/**
|
|
74
|
+
* Additional children to be rendered at the end of the home page.
|
|
75
|
+
*/
|
|
76
|
+
additionalChildrenEnd?: React.ReactNode;
|
|
77
|
+
/**
|
|
78
|
+
* Use this component to add custom actions to the navigation card
|
|
79
|
+
* in the home page.
|
|
80
|
+
*/
|
|
81
|
+
CollectionActions?: React.ComponentType<PluginHomePageActionsProps>;
|
|
82
|
+
/**
|
|
83
|
+
* Additional props passed to `CollectionActions`
|
|
84
|
+
*/
|
|
85
|
+
extraProps?: any;
|
|
86
|
+
/**
|
|
87
|
+
* Add additional cards to each collection group in the home page.
|
|
88
|
+
*/
|
|
89
|
+
AdditionalCards?: React.ComponentType<PluginHomePageAdditionalCardsProps> | React.ComponentType<PluginHomePageAdditionalCardsProps>[];
|
|
90
|
+
/**
|
|
91
|
+
* Include a section in the home page with a custom component and title.
|
|
92
|
+
* @param props
|
|
93
|
+
*/
|
|
94
|
+
includeSection?: (props: PluginGenericProps) => {
|
|
95
|
+
title: string;
|
|
96
|
+
children: React.ReactNode;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
collectionView?: {
|
|
100
|
+
showTextSearchBar?: (props: {
|
|
101
|
+
context: FireCMSContext;
|
|
102
|
+
path: string;
|
|
103
|
+
collection: EC;
|
|
104
|
+
}) => boolean;
|
|
105
|
+
onTextSearchClick?: (props: {
|
|
106
|
+
context: FireCMSContext;
|
|
107
|
+
path: string;
|
|
108
|
+
collection: EC;
|
|
109
|
+
}) => Promise<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* Use this method to inject widgets to the entity collections header
|
|
112
|
+
* @param props
|
|
113
|
+
*/
|
|
114
|
+
HeaderAction?: React.ComponentType<{
|
|
115
|
+
property: ResolvedProperty;
|
|
116
|
+
propertyKey: string;
|
|
117
|
+
fullPath: string;
|
|
118
|
+
parentCollectionIds: string[];
|
|
119
|
+
onHover: boolean;
|
|
120
|
+
collection: EC;
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* If you add this callback to your plugin, an add button will be added to the collection table.
|
|
124
|
+
* TODO: Only the first plugin that defines this callback will be used, at the moment.
|
|
125
|
+
*/
|
|
126
|
+
AddColumnComponent?: React.ComponentType<{
|
|
127
|
+
fullPath: string;
|
|
128
|
+
parentCollectionIds: string[];
|
|
129
|
+
collection: EC;
|
|
130
|
+
}>;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Props passed to the {@link FireCMSPlugin.homePage.CollectionActions} method.
|
|
135
|
+
* You can use it to add custom actions to the navigation card of each collection.
|
|
136
|
+
*
|
|
137
|
+
* @group Models
|
|
138
|
+
*/
|
|
139
|
+
export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, UserType extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
|
|
140
|
+
/**
|
|
141
|
+
* Collection path of this entity. This is the full path, like
|
|
142
|
+
* `users/1234/addresses`
|
|
143
|
+
*/
|
|
144
|
+
path: string;
|
|
145
|
+
/**
|
|
146
|
+
* The collection configuration
|
|
147
|
+
*/
|
|
148
|
+
collection: EC;
|
|
149
|
+
/**
|
|
150
|
+
* Context of the app status
|
|
151
|
+
*/
|
|
152
|
+
context: FireCMSContext<UserType>;
|
|
153
|
+
extraProps?: EP;
|
|
154
|
+
}
|
|
155
|
+
export interface PluginFormActionProps<UserType extends User = User, EC extends EntityCollection = EntityCollection> {
|
|
156
|
+
entityId?: string;
|
|
157
|
+
path: string;
|
|
158
|
+
status: EntityStatus;
|
|
159
|
+
collection: EC;
|
|
160
|
+
formContext?: FormContext<any>;
|
|
161
|
+
context: FireCMSContext<UserType>;
|
|
162
|
+
currentEntityId?: string;
|
|
163
|
+
}
|
|
164
|
+
export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Record<string, any> = any, EC extends EntityCollection<M> = EntityCollection<M>> = {
|
|
165
|
+
fieldConfigId: string;
|
|
166
|
+
propertyKey: string;
|
|
167
|
+
property: Property<T> | ResolvedProperty<T>;
|
|
168
|
+
Field: React.ComponentType<FieldProps<T, any, M>>;
|
|
169
|
+
plugin: FireCMSPlugin;
|
|
170
|
+
path: string;
|
|
171
|
+
collection: EC;
|
|
172
|
+
};
|
|
173
|
+
export interface PluginGenericProps<UserType extends User = User> {
|
|
174
|
+
context: FireCMSContext<UserType>;
|
|
175
|
+
}
|
|
176
|
+
export interface PluginHomePageAdditionalCardsProps<UserType extends User = User> {
|
|
177
|
+
group?: string;
|
|
178
|
+
context: FireCMSContext<UserType>;
|
|
179
|
+
}
|