@firecms/core 3.0.0-alpha.7 → 3.0.0-alpha.70
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.tsx +369 -0
- package/src/components/CircularProgressCenter.tsx +26 -0
- package/src/components/DeleteConfirmationDialog.tsx +47 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +520 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
- package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
- package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
- package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
- package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
- package/src/components/EntityCollectionTable/index.tsx +16 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
- package/src/components/EntityCollectionTable/internal/DeleteEntityDialog.tsx +207 -0
- package/src/components/EntityCollectionTable/internal/EntityCollectionRowActions.tsx +174 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +264 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/PropertyTableCell.tsx +460 -0
- package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
- package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
- package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
- package/src/components/EntityCollectionTable/types.tsx +44 -0
- package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
- package/src/components/EntityCollectionTable/useEntityCollectionTableController.tsx +213 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
- package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
- package/src/components/EntityPreview.tsx +83 -0
- package/src/components/ErrorBoundary.tsx +40 -0
- package/src/components/ErrorTooltip.tsx +11 -0
- package/src/components/ErrorView.tsx +52 -0
- package/src/components/FieldConfigBadge.tsx +17 -0
- package/src/components/FireCMSAppBar.tsx +157 -0
- package/src/components/FireCMSLogo.tsx +73 -0
- package/src/components/HomePage/DefaultHomePage.tsx +209 -0
- package/src/components/HomePage/FavouritesView.tsx +64 -0
- package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
- package/src/components/HomePage/NavigationGroup.tsx +39 -0
- package/src/components/HomePage/index.tsx +3 -0
- package/src/components/LabelWithIcon.tsx +33 -0
- package/src/components/NotFoundPage.tsx +25 -0
- package/src/components/ReferenceSelectionInner.tsx +364 -0
- package/src/components/ReferenceWidget.tsx +145 -0
- package/src/components/VirtualTable/VirtualTable.tsx +402 -0
- package/src/components/VirtualTable/VirtualTableCell.tsx +36 -0
- package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
- package/src/components/VirtualTable/VirtualTableProps.tsx +270 -0
- package/src/components/VirtualTable/VirtualTableRow.tsx +54 -0
- package/src/components/VirtualTable/common.tsx +18 -0
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
- package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
- package/src/components/VirtualTable/index.tsx +2 -0
- package/src/components/VirtualTable/types.tsx +44 -0
- package/src/components/index.tsx +30 -0
- package/src/contexts/AuthControllerContext.tsx +4 -0
- package/src/contexts/DataSourceContext.tsx +4 -0
- package/src/contexts/DialogsProvider.tsx +52 -0
- package/src/contexts/ModeController.tsx +13 -0
- package/src/contexts/NavigationContext.tsx +4 -0
- package/src/contexts/SideDialogsControllerContext.tsx +4 -0
- package/src/contexts/SideEntityControllerContext.tsx +4 -0
- package/src/contexts/SnackbarProvider.tsx +12 -0
- package/src/contexts/StorageSourceContext.tsx +4 -0
- package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
- package/src/contexts/index.ts +3 -0
- package/src/core/Drawer.tsx +161 -0
- package/src/core/EntitySidePanel.tsx +90 -0
- package/src/core/FireCMS.tsx +184 -0
- package/src/core/NavigationRoutes.tsx +118 -0
- package/src/core/Scaffold.tsx +278 -0
- package/src/core/SideDialogs.tsx +156 -0
- package/src/core/field_configs.tsx +400 -0
- package/src/core/index.tsx +14 -0
- package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
- package/src/core/useBuildModeController.tsx +60 -0
- package/src/form/EntityForm.tsx +647 -0
- package/src/form/PropertyFieldBinding.tsx +311 -0
- package/src/form/components/CustomIdField.tsx +124 -0
- package/src/form/components/ErrorFocus.tsx +51 -0
- package/src/form/components/FieldHelperText.tsx +58 -0
- package/src/form/components/FormikArrayContainer.tsx +44 -0
- package/src/form/components/StorageItemPreview.tsx +66 -0
- package/src/form/components/StorageUploadProgress.tsx +104 -0
- package/src/form/components/SubmitListener.tsx +32 -0
- package/src/form/components/SwitchControl.tsx +39 -0
- package/src/form/components/index.tsx +3 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
- package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +66 -0
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
- package/src/form/field_bindings/MapFieldBinding.tsx +142 -0
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
- package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
- package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
- package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
- package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
- package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
- package/src/form/index.tsx +42 -0
- package/src/form/useClearRestoreValue.tsx +35 -0
- package/src/form/validation.ts +409 -0
- package/src/hooks/data/delete.ts +101 -0
- package/src/hooks/data/save.ts +165 -0
- package/src/hooks/data/useCollectionFetch.tsx +162 -0
- package/src/hooks/data/useDataOrder.ts +26 -0
- package/src/hooks/data/useDataSource.tsx +9 -0
- package/src/hooks/data/useEntityFetch.tsx +129 -0
- package/src/hooks/index.tsx +23 -0
- package/src/hooks/useAuthController.tsx +14 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
- package/src/hooks/useClipboard.tsx +158 -0
- package/src/hooks/useDialogsController.tsx +14 -0
- package/src/hooks/useFireCMSContext.tsx +50 -0
- package/src/hooks/useLargeLayout.tsx +34 -0
- package/src/hooks/useModeController.tsx +24 -0
- package/src/hooks/useNavigationController.tsx +12 -0
- package/src/hooks/useReferenceDialog.tsx +56 -0
- package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
- package/src/hooks/useSideDialogsController.tsx +21 -0
- package/src/hooks/useSideEntityController.tsx +15 -0
- package/src/hooks/useSnackbarController.tsx +76 -0
- package/src/hooks/useStorageSource.tsx +9 -0
- package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
- package/src/index.ts +8 -0
- package/src/internal/EntityView.tsx +576 -0
- package/src/internal/common.tsx +5 -0
- package/src/internal/useBuildDataSource.ts +360 -0
- package/src/internal/useBuildNavigationController.tsx +371 -0
- package/src/internal/useBuildSideDialogsController.tsx +125 -0
- package/src/internal/useBuildSideEntityController.tsx +160 -0
- package/src/internal/useLocaleConfig.tsx +18 -0
- package/src/internal/useRestoreScroll.tsx +48 -0
- package/src/internal/useUnsavedChangesDialog.tsx +106 -0
- package/src/preview/PropertyPreview.tsx +222 -0
- package/src/preview/PropertyPreviewProps.tsx +59 -0
- package/src/preview/components/ArrayEnumPreview.tsx +39 -0
- package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
- package/src/preview/components/BooleanPreview.tsx +11 -0
- package/src/preview/components/DatePreview.tsx +27 -0
- package/src/preview/components/EmptyValue.tsx +10 -0
- package/src/preview/components/EnumValuesChip.tsx +38 -0
- package/src/preview/components/ImagePreview.tsx +106 -0
- package/src/preview/components/ReferencePreview.tsx +249 -0
- package/src/preview/components/StorageThumbnail.tsx +84 -0
- package/src/preview/components/UrlComponentPreview.tsx +79 -0
- package/src/preview/index.ts +27 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
- package/src/preview/property_previews/MapPropertyPreview.tsx +144 -0
- package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
- package/src/preview/property_previews/StringPropertyPreview.tsx +60 -0
- package/src/preview/util.ts +31 -0
- package/src/types/analytics.ts +34 -0
- package/src/types/appcheck.ts +29 -0
- package/src/types/auth.tsx +49 -0
- package/src/types/collections.ts +530 -0
- package/src/types/datasource.ts +389 -0
- package/src/types/dialogs_controller.tsx +33 -0
- package/src/types/entities.ts +76 -0
- package/src/types/entity_actions.tsx +39 -0
- package/src/types/entity_callbacks.ts +209 -0
- package/src/types/entity_link_builder.ts +8 -0
- package/src/types/export_import.ts +26 -0
- package/src/types/fields.tsx +220 -0
- package/src/types/firecms.tsx +175 -0
- package/src/types/firecms_context.tsx +128 -0
- package/src/types/index.ts +26 -0
- package/src/types/local_config_persistence.tsx +23 -0
- package/src/types/locales.ts +81 -0
- package/src/types/modify_collections.tsx +6 -0
- package/src/types/navigation.ts +214 -0
- package/src/types/permissions.ts +76 -0
- package/src/types/plugins.tsx +217 -0
- package/src/types/properties.ts +851 -0
- package/src/types/property_config.tsx +72 -0
- package/src/types/resolved_entities.ts +148 -0
- package/src/types/side_dialogs_controller.tsx +68 -0
- package/src/types/side_entity_controller.tsx +96 -0
- package/src/types/storage.ts +96 -0
- package/src/types/user.ts +37 -0
- package/src/util/arrays.ts +3 -0
- package/src/util/builders.ts +139 -0
- package/src/util/chip_utils.ts +13 -0
- package/src/util/collections.ts +50 -0
- package/src/util/common.tsx +2 -0
- package/src/util/dates.ts +1 -0
- package/src/util/entities.ts +196 -0
- package/src/util/enums.ts +57 -0
- package/src/util/flatten_object.ts +45 -0
- package/src/util/hash.ts +11 -0
- package/src/util/icons.tsx +45 -0
- package/src/util/index.ts +20 -0
- package/src/util/join_collections.ts +172 -0
- package/src/util/make_properties_editable.ts +29 -0
- package/src/util/navigation_from_path.ts +107 -0
- package/src/util/navigation_utils.ts +111 -0
- package/src/util/objects.ts +168 -0
- package/src/util/os.ts +13 -0
- package/src/util/parent_references_from_path.ts +56 -0
- package/src/util/paths.ts +27 -0
- package/src/util/permissions.ts +80 -0
- package/src/util/plurals.ts +190 -0
- package/src/util/property_utils.tsx +130 -0
- package/src/util/references.ts +20 -0
- package/src/util/regexp.ts +32 -0
- package/src/util/resolutions.ts +399 -0
- package/src/util/storage.ts +92 -0
- package/src/util/strings.ts +62 -0
- package/src/util/useDebounce.ts +25 -0
- package/src/util/useStorageUploadController.tsx +243 -0
- package/src/util/useTraceUpdate.tsx +23 -0
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import { Entity, EntityReference, EntityStatus, EntityValues, GeoPoint } from "./entities";
|
|
2
|
+
import { EntityCollection, FilterValues } from "./collections";
|
|
3
|
+
import { ResolvedEntityCollection } from "./resolved_entities";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @group Datasource
|
|
7
|
+
*/
|
|
8
|
+
export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
9
|
+
path: string;
|
|
10
|
+
entityId: string;
|
|
11
|
+
collection?: EntityCollection<M>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @group Datasource
|
|
16
|
+
*/
|
|
17
|
+
export type ListenEntityProps<M extends Record<string, any> = any> =
|
|
18
|
+
FetchEntityProps<M>
|
|
19
|
+
& {
|
|
20
|
+
onUpdate: (entity: Entity<M>) => void,
|
|
21
|
+
onError?: (error: Error) => void,
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @group Datasource
|
|
26
|
+
*/
|
|
27
|
+
export interface FetchCollectionProps<M extends Record<string, any> = any> {
|
|
28
|
+
path: string;
|
|
29
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
30
|
+
filter?: FilterValues<Extract<keyof M, string>>,
|
|
31
|
+
limit?: number;
|
|
32
|
+
startAfter?: any[];
|
|
33
|
+
orderBy?: string;
|
|
34
|
+
searchString?: string;
|
|
35
|
+
order?: "desc" | "asc";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @group Datasource
|
|
40
|
+
*/
|
|
41
|
+
export type ListenCollectionProps<M extends Record<string, any> = any> =
|
|
42
|
+
FetchCollectionProps<M> &
|
|
43
|
+
{
|
|
44
|
+
onUpdate: (entities: Entity<M>[]) => void;
|
|
45
|
+
onError?: (error: Error) => void;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @group Datasource
|
|
50
|
+
*/
|
|
51
|
+
export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
52
|
+
path: string;
|
|
53
|
+
values: Partial<EntityValues<M>>;
|
|
54
|
+
entityId?: string; // can be empty for new entities
|
|
55
|
+
previousValues?: Partial<EntityValues<M>>;
|
|
56
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
57
|
+
status: EntityStatus;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @group Datasource
|
|
62
|
+
*/
|
|
63
|
+
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
64
|
+
entity: Entity<M>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Implement this interface and pass it to a {@link FireCMS}
|
|
69
|
+
* to connect it to your data source.
|
|
70
|
+
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
71
|
+
* @group Datasource
|
|
72
|
+
*/
|
|
73
|
+
export interface DataSource {
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Fetch data from a collection
|
|
77
|
+
* @param path
|
|
78
|
+
* @param collection
|
|
79
|
+
* @param filter
|
|
80
|
+
* @param limit
|
|
81
|
+
* @param startAfter
|
|
82
|
+
* @param orderBy
|
|
83
|
+
* @param order
|
|
84
|
+
* @param searchString
|
|
85
|
+
* @return Function to cancel subscription
|
|
86
|
+
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
87
|
+
*/
|
|
88
|
+
fetchCollection<M extends Record<string, any> = any>({
|
|
89
|
+
path,
|
|
90
|
+
collection,
|
|
91
|
+
filter,
|
|
92
|
+
limit,
|
|
93
|
+
startAfter,
|
|
94
|
+
orderBy,
|
|
95
|
+
order,
|
|
96
|
+
searchString
|
|
97
|
+
}: FetchCollectionProps<M>
|
|
98
|
+
): Promise<Entity<M>[]>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Listen to a collection in a given path. If you don't implement this method
|
|
102
|
+
* `fetchCollection` will be used instead, with no real time updates.
|
|
103
|
+
* @param path
|
|
104
|
+
* @param collection
|
|
105
|
+
* @param onUpdate
|
|
106
|
+
* @param onError
|
|
107
|
+
* @param filter
|
|
108
|
+
* @param limit
|
|
109
|
+
* @param startAfter
|
|
110
|
+
* @param orderBy
|
|
111
|
+
* @param order
|
|
112
|
+
* @param searchString
|
|
113
|
+
* @return Function to cancel subscription
|
|
114
|
+
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
115
|
+
*/
|
|
116
|
+
listenCollection?<M extends Record<string, any> = any>(
|
|
117
|
+
{
|
|
118
|
+
path,
|
|
119
|
+
collection,
|
|
120
|
+
filter,
|
|
121
|
+
limit,
|
|
122
|
+
startAfter,
|
|
123
|
+
searchString,
|
|
124
|
+
orderBy,
|
|
125
|
+
order,
|
|
126
|
+
onUpdate,
|
|
127
|
+
onError
|
|
128
|
+
}: ListenCollectionProps<M>
|
|
129
|
+
): () => void;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Retrieve an entity given a path and a collection
|
|
133
|
+
* @param path
|
|
134
|
+
* @param entityId
|
|
135
|
+
* @param collection
|
|
136
|
+
*/
|
|
137
|
+
fetchEntity<M extends Record<string, any> = any>({
|
|
138
|
+
path,
|
|
139
|
+
entityId,
|
|
140
|
+
collection
|
|
141
|
+
}: FetchEntityProps<M>
|
|
142
|
+
): Promise<Entity<M> | undefined>;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Get realtime updates on one entity.
|
|
146
|
+
* @param path
|
|
147
|
+
* @param entityId
|
|
148
|
+
* @param collection
|
|
149
|
+
* @param onUpdate
|
|
150
|
+
* @param onError
|
|
151
|
+
* @return Function to cancel subscription
|
|
152
|
+
*/
|
|
153
|
+
listenEntity?<M extends Record<string, any> = any>({
|
|
154
|
+
path,
|
|
155
|
+
entityId,
|
|
156
|
+
collection,
|
|
157
|
+
onUpdate,
|
|
158
|
+
onError
|
|
159
|
+
}: ListenEntityProps<M>): () => void;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Save entity to the specified path
|
|
163
|
+
* @param path
|
|
164
|
+
* @param id
|
|
165
|
+
* @param collection
|
|
166
|
+
* @param status
|
|
167
|
+
*/
|
|
168
|
+
saveEntity<M extends Record<string, any> = any>(
|
|
169
|
+
{
|
|
170
|
+
path,
|
|
171
|
+
entityId,
|
|
172
|
+
values,
|
|
173
|
+
collection,
|
|
174
|
+
status
|
|
175
|
+
}: SaveEntityProps<M>): Promise<Entity<M>>;
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Delete an entity
|
|
179
|
+
* @param entity
|
|
180
|
+
* @return was the whole deletion flow successful
|
|
181
|
+
*/
|
|
182
|
+
deleteEntity<M extends Record<string, any> = any>(
|
|
183
|
+
{
|
|
184
|
+
entity
|
|
185
|
+
}: DeleteEntityProps<M>
|
|
186
|
+
): Promise<void>;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Check if the given property is unique in the given collection
|
|
190
|
+
* @param path Collection path
|
|
191
|
+
* @param name of the property
|
|
192
|
+
* @param value
|
|
193
|
+
* @param property
|
|
194
|
+
* @param entityId
|
|
195
|
+
* @return `true` if there are no other fields besides the given entity
|
|
196
|
+
*/
|
|
197
|
+
checkUniqueField(
|
|
198
|
+
path: string,
|
|
199
|
+
name: string,
|
|
200
|
+
value: any,
|
|
201
|
+
entityId?: string
|
|
202
|
+
): Promise<boolean>;
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Generate an id for a new entity
|
|
206
|
+
*/
|
|
207
|
+
generateEntityId(path: string): string;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Count the number of entities in a collection
|
|
211
|
+
*/
|
|
212
|
+
countEntities<M extends Record<string, any> = any>(props: FetchCollectionProps<M>): Promise<number>;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Check if the given filter combination is valid
|
|
216
|
+
* @param props
|
|
217
|
+
*/
|
|
218
|
+
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export type FilterCombinationValidProps = {
|
|
222
|
+
path: string;
|
|
223
|
+
collection: EntityCollection<any>;
|
|
224
|
+
filterValues: FilterValues<any>;
|
|
225
|
+
sortBy?: [string, "asc" | "desc"];
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = Omit<SaveEntityProps<M>, "collection">;
|
|
229
|
+
|
|
230
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
231
|
+
Omit<FetchCollectionProps<M>, "collection">
|
|
232
|
+
& {
|
|
233
|
+
isCollectionGroup?: boolean
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
237
|
+
ListenCollectionProps<M>
|
|
238
|
+
& {
|
|
239
|
+
isCollectionGroup?: boolean;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
export interface DataSourceDelegate {
|
|
243
|
+
/**
|
|
244
|
+
* Fetch data from a collection
|
|
245
|
+
* @param path
|
|
246
|
+
* @param filter
|
|
247
|
+
* @param limit
|
|
248
|
+
* @param startAfter
|
|
249
|
+
* @param orderBy
|
|
250
|
+
* @param order
|
|
251
|
+
* @param searchString
|
|
252
|
+
* @return Function to cancel subscription
|
|
253
|
+
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
254
|
+
*/
|
|
255
|
+
fetchCollection<M extends Record<string, any> = any>({
|
|
256
|
+
path,
|
|
257
|
+
filter,
|
|
258
|
+
limit,
|
|
259
|
+
startAfter,
|
|
260
|
+
orderBy,
|
|
261
|
+
order,
|
|
262
|
+
searchString
|
|
263
|
+
}: FetchCollectionDelegateProps<M>): Promise<Entity<M>[]>;
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Listen to a collection in a given path. If you don't implement this method
|
|
267
|
+
* `fetchCollection` will be used instead, with no real time updates.
|
|
268
|
+
* @param path
|
|
269
|
+
* @param onUpdate
|
|
270
|
+
* @param onError
|
|
271
|
+
* @param filter
|
|
272
|
+
* @param limit
|
|
273
|
+
* @param startAfter
|
|
274
|
+
* @param orderBy
|
|
275
|
+
* @param order
|
|
276
|
+
* @param searchString
|
|
277
|
+
* @return Function to cancel subscription
|
|
278
|
+
* @see useCollectionFetch if you need this functionality implemented as a hook
|
|
279
|
+
*/
|
|
280
|
+
listenCollection?<M extends Record<string, any> = any>({
|
|
281
|
+
path,
|
|
282
|
+
filter,
|
|
283
|
+
limit,
|
|
284
|
+
startAfter,
|
|
285
|
+
searchString,
|
|
286
|
+
orderBy,
|
|
287
|
+
order,
|
|
288
|
+
onUpdate,
|
|
289
|
+
onError
|
|
290
|
+
}: ListenCollectionDelegateProps<M>): () => void;
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Retrieve an entity given a path and a collection
|
|
294
|
+
* @param path
|
|
295
|
+
* @param entityId
|
|
296
|
+
*/
|
|
297
|
+
fetchEntity<M extends Record<string, any> = any>({
|
|
298
|
+
path,
|
|
299
|
+
entityId,
|
|
300
|
+
}: Omit<FetchEntityProps<M>, "collection">): Promise<Entity<M> | undefined>;
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Get realtime updates on one entity.
|
|
304
|
+
* @param path
|
|
305
|
+
* @param entityId
|
|
306
|
+
* @param collection
|
|
307
|
+
* @param onUpdate
|
|
308
|
+
* @param onError
|
|
309
|
+
* @return Function to cancel subscription
|
|
310
|
+
*/
|
|
311
|
+
listenEntity?<M extends Record<string, any> = any>({
|
|
312
|
+
path,
|
|
313
|
+
entityId,
|
|
314
|
+
onUpdate,
|
|
315
|
+
onError
|
|
316
|
+
}: Omit<ListenEntityProps<M>, "collection">): () => void;
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Save entity to the specified path
|
|
320
|
+
* @param path
|
|
321
|
+
* @param id
|
|
322
|
+
* @param collection
|
|
323
|
+
* @param status
|
|
324
|
+
*/
|
|
325
|
+
saveEntity<M extends Record<string, any> = any>({
|
|
326
|
+
path,
|
|
327
|
+
entityId,
|
|
328
|
+
values,
|
|
329
|
+
status
|
|
330
|
+
}: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Delete an entity
|
|
334
|
+
* @param entity
|
|
335
|
+
* @return was the whole deletion flow successful
|
|
336
|
+
*/
|
|
337
|
+
deleteEntity<M extends Record<string, any> = any>({ entity }: DeleteEntityProps<M>): Promise<void>;
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Check if the given property is unique in the given collection
|
|
341
|
+
* @param path Collection path
|
|
342
|
+
* @param name of the property
|
|
343
|
+
* @param value
|
|
344
|
+
* @param entityId
|
|
345
|
+
* @return `true` if there are no other fields besides the given entity
|
|
346
|
+
*/
|
|
347
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* Generate an id for a new entity
|
|
351
|
+
*/
|
|
352
|
+
generateEntityId(path: string): string;
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* Count the number of entities in a collection
|
|
356
|
+
*/
|
|
357
|
+
countEntities<M extends Record<string, any> = any>(props: FetchCollectionDelegateProps<M>): Promise<number>;
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* Check if the given filter combination is valid
|
|
361
|
+
* @param props
|
|
362
|
+
*/
|
|
363
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">): boolean;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Convert a FireCMS reference to a reference that can be used by the datasource
|
|
367
|
+
* @param reference
|
|
368
|
+
*/
|
|
369
|
+
buildReference: (reference: EntityReference) => any,
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
|
|
373
|
+
* @param geoPoint
|
|
374
|
+
*/
|
|
375
|
+
buildGeoPoint: (geoPoint: GeoPoint) => any,
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Get the object to generate the current time in the datasource
|
|
379
|
+
*/
|
|
380
|
+
currentTime(): any;
|
|
381
|
+
|
|
382
|
+
buildDate: (date: Date) => any;
|
|
383
|
+
|
|
384
|
+
buildDeleteFieldValue: () => any;
|
|
385
|
+
|
|
386
|
+
delegateToCMSModel: (data: any) => any;
|
|
387
|
+
|
|
388
|
+
setDateToMidnight: (input?: any) => any;
|
|
389
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Controller to open the side dialog
|
|
5
|
+
* @group Hooks and utilities
|
|
6
|
+
*/
|
|
7
|
+
export interface DialogsController {
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Close the last dialog
|
|
11
|
+
*/
|
|
12
|
+
close: () => void;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Open a dialog
|
|
16
|
+
* @param props
|
|
17
|
+
*/
|
|
18
|
+
open: (props: DialogControllerEntryProps) => { closeDialog: () => void };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Props used to open a side dialog
|
|
23
|
+
* @group Hooks and utilities
|
|
24
|
+
*/
|
|
25
|
+
export interface DialogControllerEntryProps {
|
|
26
|
+
|
|
27
|
+
key: string;
|
|
28
|
+
/**
|
|
29
|
+
* The component type that will be rendered
|
|
30
|
+
*/
|
|
31
|
+
Component: React.ComponentType<{ open: boolean, closeDialog: () => void }>;
|
|
32
|
+
|
|
33
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* New or existing status
|
|
3
|
+
* @group Models
|
|
4
|
+
*/
|
|
5
|
+
export type EntityStatus = "new" | "existing" | "copy";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Representation of an entity fetched from the datasource
|
|
9
|
+
* @group Models
|
|
10
|
+
*/
|
|
11
|
+
export interface Entity<M extends object> {
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* ID of the entity
|
|
15
|
+
*/
|
|
16
|
+
id: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A string representing the path of the referenced document (relative
|
|
20
|
+
* to the root of the database).
|
|
21
|
+
*/
|
|
22
|
+
path: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Current values
|
|
26
|
+
*/
|
|
27
|
+
values: EntityValues<M>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* This type represents a record of key value pairs as described in an
|
|
32
|
+
* entity collection.
|
|
33
|
+
* @group Models
|
|
34
|
+
*/
|
|
35
|
+
export type EntityValues<M extends object> = M;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Class used to create a reference to an entity in a different path
|
|
39
|
+
*/
|
|
40
|
+
export class EntityReference<M extends Record<string, any> = any> {
|
|
41
|
+
/**
|
|
42
|
+
* ID of the entity
|
|
43
|
+
*/
|
|
44
|
+
readonly id: string;
|
|
45
|
+
/**
|
|
46
|
+
* A string representing the path of the referenced document (relative
|
|
47
|
+
* to the root of the database).
|
|
48
|
+
*/
|
|
49
|
+
readonly path: string;
|
|
50
|
+
|
|
51
|
+
constructor(id: string, path: string) {
|
|
52
|
+
this.id = id;
|
|
53
|
+
this.path = path;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
get pathWithId() {
|
|
57
|
+
return `${this.path}/${this.id}`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export class GeoPoint {
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The latitude of this GeoPoint instance.
|
|
65
|
+
*/
|
|
66
|
+
readonly latitude: number;
|
|
67
|
+
/**
|
|
68
|
+
* The longitude of this GeoPoint instance.
|
|
69
|
+
*/
|
|
70
|
+
readonly longitude: number;
|
|
71
|
+
|
|
72
|
+
constructor(latitude: number, longitude: number) {
|
|
73
|
+
this.latitude = latitude;
|
|
74
|
+
this.longitude = longitude;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FireCMSContext } from "./firecms_context";
|
|
3
|
+
import { Entity } from "./entities";
|
|
4
|
+
import { EntityCollection, SelectionController } from "./collections";
|
|
5
|
+
import { User } from "./user";
|
|
6
|
+
import { SideEntityController } from "./side_entity_controller";
|
|
7
|
+
|
|
8
|
+
export type EntityAction<M extends object = any, UserType extends User = User> = {
|
|
9
|
+
name: string;
|
|
10
|
+
icon?: React.ReactElement;
|
|
11
|
+
onClick: (props: EntityActionClickProps<M, UserType>) => Promise<void> | void;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Show this action collapsed in the menu of the collection view.
|
|
15
|
+
* Defaults to true
|
|
16
|
+
* If false, the action will be shown in the menu
|
|
17
|
+
*/
|
|
18
|
+
collapsed?: boolean;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Show this action in the form, defaults to true
|
|
22
|
+
*/
|
|
23
|
+
includeInForm?: boolean;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type EntityActionClickProps<M extends object, UserType extends User = User> = {
|
|
27
|
+
entity: Entity<M>;
|
|
28
|
+
context: FireCMSContext<UserType>;
|
|
29
|
+
fullPath?: string;
|
|
30
|
+
collection?: EntityCollection<M>;
|
|
31
|
+
selectionController?: SelectionController;
|
|
32
|
+
highlightEntity?: (entity: Entity<any>) => void;
|
|
33
|
+
unhighlightEntity?: (entity: Entity<any>) => void;
|
|
34
|
+
onCollectionChange?: () => void;
|
|
35
|
+
/**
|
|
36
|
+
* If this actions is being called from a side dialog
|
|
37
|
+
*/
|
|
38
|
+
sideEntityController?: SideEntityController;
|
|
39
|
+
};
|