@firecms/core 3.0.0-alpha.8 → 3.0.0-alpha.81
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/DeleteEntityDialog.d.ts +12 -0
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +35 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +18 -0
- package/dist/components/EntityCollectionTable/SimpleEntityCollectionTable.d.ts +95 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -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 +8 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -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/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 +53 -0
- package/dist/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.d.ts +32 -0
- package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -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/SearchIconsView.d.ts +5 -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 +214 -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 +21 -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/hooks/useVerifyLicense.d.ts +0 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.es.js +15810 -26791
- 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 +181 -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/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/icon_list.d.ts +1 -0
- package/dist/util/icon_synonyms.d.ts +1950 -0
- package/dist/util/icons.d.ts +4 -0
- package/dist/util/index.d.ts +22 -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 +112 -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/DeleteEntityDialog.tsx +207 -0
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +174 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +496 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +461 -0
- package/src/components/EntityCollectionTable/SimpleEntityCollectionTable.tsx +369 -0
- package/src/components/EntityCollectionTable/column_utils.tsx +74 -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 +20 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +257 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -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 +58 -0
- package/src/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.tsx +225 -0
- package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -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/SearchIconsView.tsx +75 -0
- package/src/components/VirtualTable/VirtualTable.tsx +402 -0
- package/src/components/VirtualTable/VirtualTableCell.tsx +32 -0
- package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
- package/src/components/VirtualTable/VirtualTableProps.tsx +269 -0
- package/src/components/VirtualTable/VirtualTableRow.tsx +53 -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 +31 -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 +89 -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 +646 -0
- package/src/form/PropertyFieldBinding.tsx +313 -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 +67 -0
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
- package/src/form/field_bindings/MapFieldBinding.tsx +136 -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 +413 -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 +97 -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/hooks/useVerifyLicense.tsx +1 -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 +358 -0
- package/src/internal/useBuildNavigationController.tsx +371 -0
- package/src/internal/useBuildSideDialogsController.tsx +126 -0
- package/src/internal/useBuildSideEntityController.tsx +172 -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 +146 -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 +59 -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 +219 -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/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 +56 -0
- package/src/util/flatten_object.ts +45 -0
- package/src/util/hash.ts +11 -0
- package/src/util/icon_list.ts +17 -0
- package/src/util/icon_synonyms.ts +1950 -0
- package/src/util/icons.tsx +45 -0
- package/src/util/index.ts +22 -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,128 @@
|
|
|
1
|
+
import { Locale } from "./locales";
|
|
2
|
+
import { DataSource } from "./datasource";
|
|
3
|
+
import { StorageSource } from "./storage";
|
|
4
|
+
import { NavigationController } from "./navigation";
|
|
5
|
+
import { SideEntityController } from "./side_entity_controller";
|
|
6
|
+
import { AuthController } from "./auth";
|
|
7
|
+
import { EntityLinkBuilder } from "./entity_link_builder";
|
|
8
|
+
import { User } from "./user";
|
|
9
|
+
import { SnackbarController } from "../hooks";
|
|
10
|
+
import { UserConfigurationPersistence } from "./local_config_persistence";
|
|
11
|
+
import { SideDialogsController } from "./side_dialogs_controller";
|
|
12
|
+
import { FireCMSPlugin } from "./plugins";
|
|
13
|
+
import { CMSAnalyticsEvent } from "./analytics";
|
|
14
|
+
import { PropertyConfig } from "./property_config";
|
|
15
|
+
import { EntityCustomView } from "./collections";
|
|
16
|
+
import { DialogsController } from "./dialogs_controller";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Context that includes the internal controllers and contexts used by the app.
|
|
20
|
+
* Some controllers and context included in this context can be accessed
|
|
21
|
+
* directly from their respective hooks.
|
|
22
|
+
* @group Hooks and utilities
|
|
23
|
+
* @see useFireCMSContext
|
|
24
|
+
*/
|
|
25
|
+
export type FireCMSContext<UserType extends User = User, AuthControllerType extends AuthController<UserType> = AuthController<UserType>> = {
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Connector to your database, e.g. your Firestore database
|
|
29
|
+
*/
|
|
30
|
+
dataSource: DataSource;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Used storage implementation
|
|
34
|
+
*/
|
|
35
|
+
storageSource: StorageSource;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Context that includes the resolved navigation and utility methods and
|
|
39
|
+
* attributes.
|
|
40
|
+
* @see useNavigation
|
|
41
|
+
*/
|
|
42
|
+
navigation: NavigationController;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Controller to open the side dialog displaying entity forms
|
|
46
|
+
* @see useSideEntityController
|
|
47
|
+
*/
|
|
48
|
+
sideEntityController: SideEntityController;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Controller used to open side dialogs
|
|
52
|
+
* This is the controller used internally by side entity dialogs
|
|
53
|
+
* or reference dialogs.
|
|
54
|
+
*/
|
|
55
|
+
sideDialogsController: SideDialogsController;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Controller used to open regular dialogs
|
|
59
|
+
*/
|
|
60
|
+
dialogsController: DialogsController;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Used auth controller
|
|
64
|
+
*/
|
|
65
|
+
authController: AuthControllerType;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Builder for generating utility links for entities
|
|
69
|
+
*/
|
|
70
|
+
entityLinkBuilder?: EntityLinkBuilder;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Use this controller to display snackbars
|
|
74
|
+
*/
|
|
75
|
+
snackbarController: SnackbarController;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Use this controller to access data stored in the browser for the user
|
|
79
|
+
*/
|
|
80
|
+
userConfigPersistence?: UserConfigurationPersistence;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Use plugins to modify the behaviour of the CMS.
|
|
84
|
+
* Currently, in ALPHA, and likely subject to change.
|
|
85
|
+
*/
|
|
86
|
+
plugins?: FireCMSPlugin[];
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Callback used to get analytics events from the CMS
|
|
90
|
+
*/
|
|
91
|
+
onAnalyticsEvent?: (event: CMSAnalyticsEvent, data?: object) => void;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Record of custom form fields to be used in the CMS.
|
|
95
|
+
* You can use the key to reference the custom field in
|
|
96
|
+
* the `propertyConfig` prop of a property in a collection.
|
|
97
|
+
*/
|
|
98
|
+
propertyConfigs: Record<string, PropertyConfig>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* List of additional custom views for entities.
|
|
102
|
+
* You can use the key to reference the custom view in
|
|
103
|
+
* the `entityViews` prop of a collection.
|
|
104
|
+
*
|
|
105
|
+
* You can also define an entity view from the UI.
|
|
106
|
+
*/
|
|
107
|
+
entityViews?: EntityCustomView[];
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Format of the dates in the CMS.
|
|
111
|
+
* Defaults to 'MMMM dd, yyyy, HH:mm:ss'
|
|
112
|
+
*/
|
|
113
|
+
dateTimeFormat?: string;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Locale of the CMS, currently only affecting dates
|
|
117
|
+
*/
|
|
118
|
+
locale?: Locale;
|
|
119
|
+
|
|
120
|
+
components?: {
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Component to render when a reference is missing
|
|
124
|
+
*/
|
|
125
|
+
missingReference?: React.ComponentType<{ path: string }>;
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export * from "./auth";
|
|
2
|
+
export * from "./entities";
|
|
3
|
+
export * from "./entity_actions";
|
|
4
|
+
export * from "./resolved_entities";
|
|
5
|
+
export * from "./properties";
|
|
6
|
+
export * from "./collections";
|
|
7
|
+
export * from "./permissions";
|
|
8
|
+
export * from "./navigation";
|
|
9
|
+
export * from "./locales";
|
|
10
|
+
export * from "./user";
|
|
11
|
+
export * from "./storage";
|
|
12
|
+
export * from "./fields";
|
|
13
|
+
export * from "./property_config";
|
|
14
|
+
export * from "./datasource";
|
|
15
|
+
export * from "./entity_link_builder";
|
|
16
|
+
export * from "./side_entity_controller";
|
|
17
|
+
export * from "./side_dialogs_controller";
|
|
18
|
+
export * from "./firecms_context";
|
|
19
|
+
export * from "./entity_callbacks";
|
|
20
|
+
export * from "./local_config_persistence";
|
|
21
|
+
export * from "./plugins";
|
|
22
|
+
export * from "./analytics";
|
|
23
|
+
export * from "./firecms";
|
|
24
|
+
export * from "./appcheck";
|
|
25
|
+
export * from "./export_import";
|
|
26
|
+
export * from "./modify_collections";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EntityCollection } from "./collections";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Use to resolve the collection properties for specific path, entity id or values.
|
|
5
|
+
* @group Models
|
|
6
|
+
*/
|
|
7
|
+
export type PartialEntityCollection<M extends Record<string, any> = any> = Partial<EntityCollection<M>>;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* This interface is in charge of defining the controller that persists
|
|
11
|
+
* modifications to a collection or collection, and retrieves them back from
|
|
12
|
+
* a data source, such as local storage or Firestore.
|
|
13
|
+
*/
|
|
14
|
+
export interface UserConfigurationPersistence {
|
|
15
|
+
onCollectionModified: <M extends Record<string, any> = any>(path: string, partialCollection: PartialEntityCollection<M>) => void;
|
|
16
|
+
getCollectionConfig: <M extends Record<string, any> = any>(path: string) => PartialEntityCollection<M>;
|
|
17
|
+
recentlyVisitedPaths: string[];
|
|
18
|
+
setRecentlyVisitedPaths: (paths: string[]) => void;
|
|
19
|
+
favouritePaths: string[];
|
|
20
|
+
setFavouritePaths: (paths: string[]) => void;
|
|
21
|
+
collapsedGroups: string[];
|
|
22
|
+
setCollapsedGroups: (paths: string[]) => void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group Models
|
|
3
|
+
*/
|
|
4
|
+
export type Locale =
|
|
5
|
+
"af" |
|
|
6
|
+
"ar" |
|
|
7
|
+
"arDZ" |
|
|
8
|
+
"arMA" |
|
|
9
|
+
"arSA" |
|
|
10
|
+
"az" |
|
|
11
|
+
"be" |
|
|
12
|
+
"bg" |
|
|
13
|
+
"bn" |
|
|
14
|
+
"ca" |
|
|
15
|
+
"cs" |
|
|
16
|
+
"cy" |
|
|
17
|
+
"da" |
|
|
18
|
+
"de" |
|
|
19
|
+
"el" |
|
|
20
|
+
"enAU" |
|
|
21
|
+
"enCA" |
|
|
22
|
+
"enGB" |
|
|
23
|
+
"enIN" |
|
|
24
|
+
"enNZ" |
|
|
25
|
+
"enUS" |
|
|
26
|
+
"eo" |
|
|
27
|
+
"es" |
|
|
28
|
+
"et" |
|
|
29
|
+
"eu" |
|
|
30
|
+
"faIR" |
|
|
31
|
+
"fi" |
|
|
32
|
+
"fil" |
|
|
33
|
+
"fr" |
|
|
34
|
+
"frCA" |
|
|
35
|
+
"frCH" |
|
|
36
|
+
"gd" |
|
|
37
|
+
"gl" |
|
|
38
|
+
"gu" |
|
|
39
|
+
"he" |
|
|
40
|
+
"hi" |
|
|
41
|
+
"hr" |
|
|
42
|
+
"hu" |
|
|
43
|
+
"hy" |
|
|
44
|
+
"id" |
|
|
45
|
+
"is" |
|
|
46
|
+
"it" |
|
|
47
|
+
"ja" |
|
|
48
|
+
"ka" |
|
|
49
|
+
"kk" |
|
|
50
|
+
"kn" |
|
|
51
|
+
"ko" |
|
|
52
|
+
"lb" |
|
|
53
|
+
"lt" |
|
|
54
|
+
"lv" |
|
|
55
|
+
"mk" |
|
|
56
|
+
"ms" |
|
|
57
|
+
"mt" |
|
|
58
|
+
"nb" |
|
|
59
|
+
"nl" |
|
|
60
|
+
"nlBE" |
|
|
61
|
+
"nn" |
|
|
62
|
+
"pl" |
|
|
63
|
+
"pt" |
|
|
64
|
+
"ptBR" |
|
|
65
|
+
"ro" |
|
|
66
|
+
"ru" |
|
|
67
|
+
"sk" |
|
|
68
|
+
"sl" |
|
|
69
|
+
"sr" |
|
|
70
|
+
"srLatn" |
|
|
71
|
+
"sv" |
|
|
72
|
+
"ta" |
|
|
73
|
+
"te" |
|
|
74
|
+
"th" |
|
|
75
|
+
"tr" |
|
|
76
|
+
"ug" |
|
|
77
|
+
"uk" |
|
|
78
|
+
"uz" |
|
|
79
|
+
"vi" |
|
|
80
|
+
"zhCN" |
|
|
81
|
+
"zhTW";
|
|
@@ -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,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);
|