@firecms/core 3.0.0-alpha.84 → 3.0.0-beta.10
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 +6 -7
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +16 -0
- package/dist/app/Scaffold.d.ts +30 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +16 -0
- package/dist/components/ArrayContainer.d.ts +3 -4
- package/dist/components/CircularProgressCenter.d.ts +1 -1
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +13 -18
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -5
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +7 -13
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +3 -2
- package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
- package/dist/components/EntityCollectionTable/index.d.ts +2 -4
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +3 -3
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +13 -4
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
- package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +26 -7
- package/dist/components/EntityView.d.ts +11 -0
- package/dist/components/ErrorView.d.ts +1 -1
- package/dist/components/FieldCaption.d.ts +5 -0
- package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
- package/dist/components/HomePage/NavigationCard.d.ts +8 -0
- package/dist/components/HomePage/{NavigationCollectionCard.d.ts → NavigationCardBinding.d.ts} +3 -3
- package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
- package/dist/components/HomePage/index.d.ts +3 -1
- package/dist/components/{FieldConfigBadge.d.ts → PropertyConfigBadge.d.ts} +2 -1
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/{ReferenceSelectionInner.d.ts → ReferenceTable/ReferenceSelectionTable.d.ts} +2 -2
- package/dist/components/ReferenceWidget.d.ts +6 -4
- package/dist/components/{EntityCollectionTable/SimpleEntityCollectionTable.d.ts → SelectableTable/SelectableTable.d.ts} +8 -28
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
- package/dist/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.d.ts +2 -1
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +16 -13
- package/dist/components/VirtualTable/types.d.ts +3 -3
- package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
- package/dist/components/common/index.d.ts +6 -0
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/{EntityCollectionTable → common}/types.d.ts +11 -6
- package/dist/components/{EntityCollectionView → common}/useColumnsIds.d.ts +2 -1
- package/dist/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.d.ts +4 -1
- package/dist/components/common/useTableSearchHelper.d.ts +12 -0
- package/dist/components/index.d.ts +14 -8
- package/dist/contexts/AuthControllerContext.d.ts +1 -1
- package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
- package/dist/core/DefaultDrawer.d.ts +19 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +36 -0
- package/dist/core/FireCMS.d.ts +1 -1
- package/dist/core/NavigationRoutes.d.ts +3 -3
- package/dist/core/index.d.ts +3 -6
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/CustomIdField.d.ts +2 -1
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/components/FieldHelperText.d.ts +3 -3
- package/dist/form/components/FormikArrayContainer.d.ts +2 -1
- package/dist/{components → form/components}/LabelWithIcon.d.ts +1 -1
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/StorageItemPreview.d.ts +4 -3
- package/dist/form/components/StorageUploadProgress.d.ts +1 -1
- package/dist/form/components/index.d.ts +2 -1
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -4
- package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -2
- package/dist/form/index.d.ts +4 -5
- package/dist/form/useClearRestoreValue.d.ts +2 -2
- package/dist/form/validation.d.ts +1 -1
- package/dist/hooks/data/delete.d.ts +2 -2
- package/dist/hooks/data/save.d.ts +2 -3
- package/dist/hooks/data/useDataSource.d.ts +2 -2
- package/dist/hooks/data/useEntityFetch.d.ts +3 -3
- package/dist/hooks/index.d.ts +5 -1
- package/dist/{core → hooks}/useBuildModeController.d.ts +1 -1
- package/dist/hooks/useBuildNavigationController.d.ts +23 -0
- package/dist/hooks/useProjectLog.d.ts +14 -0
- package/dist/hooks/useSnackbarController.d.ts +1 -0
- package/dist/hooks/useStorageSource.d.ts +2 -2
- package/dist/hooks/useValidateAuthenticator.d.ts +21 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +16297 -12643
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +20043 -587
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useBuildDataSource.d.ts +1 -12
- package/dist/preview/PropertyPreview.d.ts +1 -1
- package/dist/preview/PropertyPreviewProps.d.ts +7 -5
- package/dist/preview/components/BooleanPreview.d.ts +5 -1
- package/dist/preview/components/EnumValuesChip.d.ts +1 -1
- package/dist/preview/components/ReferencePreview.d.ts +4 -9
- package/dist/preview/components/StorageThumbnail.d.ts +2 -1
- package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/auth.d.ts +38 -2
- package/dist/types/collections.d.ts +56 -9
- package/dist/types/datasource.d.ts +59 -39
- package/dist/types/entities.d.ts +7 -1
- package/dist/types/entity_actions.d.ts +14 -0
- package/dist/types/entity_callbacks.d.ts +3 -3
- package/dist/types/entity_overrides.d.ts +6 -0
- package/dist/types/fields.d.ts +47 -42
- package/dist/types/firecms.d.ts +8 -23
- package/dist/types/index.d.ts +2 -1
- package/dist/types/navigation.d.ts +18 -16
- package/dist/types/permissions.d.ts +5 -1
- package/dist/types/plugins.d.ts +31 -31
- package/dist/types/properties.d.ts +36 -23
- package/dist/types/property_config.d.ts +2 -2
- package/dist/types/roles.d.ts +31 -0
- package/dist/types/side_dialogs_controller.d.ts +10 -0
- package/dist/types/storage.d.ts +86 -3
- package/dist/types/user.d.ts +5 -0
- package/dist/util/collections.d.ts +9 -1
- package/dist/util/entities.d.ts +2 -2
- package/dist/util/icon_list.d.ts +5 -1
- package/dist/util/icon_synonyms.d.ts +1 -97
- package/dist/util/icons.d.ts +10 -3
- package/dist/util/index.d.ts +3 -1
- package/dist/util/navigation_utils.d.ts +2 -2
- package/dist/util/objects.d.ts +1 -1
- package/dist/util/permissions.d.ts +4 -4
- package/dist/util/plurals.d.ts +0 -2
- package/dist/util/property_utils.d.ts +1 -1
- package/dist/util/references.d.ts +4 -2
- package/dist/util/resolutions.d.ts +28 -14
- package/dist/util/storage.d.ts +23 -2
- package/dist/util/strings.d.ts +1 -1
- package/dist/util/useDebouncedCallback.d.ts +1 -0
- package/dist/util/useStorageUploadController.d.ts +3 -3
- package/dist/util/useTraceUpdate.d.ts +1 -0
- package/package.json +129 -112
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +24 -0
- package/src/app/Scaffold.tsx +243 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +32 -0
- package/src/components/ArrayContainer.tsx +45 -75
- package/src/components/CircularProgressCenter.tsx +1 -1
- package/src/components/ClearFilterSortButton.tsx +41 -0
- package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +1 -1
- package/src/components/DeleteEntityDialog.tsx +4 -4
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +47 -58
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +253 -448
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +11 -12
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +54 -48
- package/src/components/EntityCollectionTable/column_utils.tsx +4 -4
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +40 -32
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +17 -9
- package/src/components/EntityCollectionTable/index.tsx +1 -9
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +44 -46
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +32 -30
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +19 -7
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +145 -142
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +184 -171
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +5 -6
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +42 -0
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityPreview.tsx +208 -71
- package/src/components/EntityView.tsx +84 -0
- package/src/components/ErrorView.tsx +1 -1
- package/src/components/FieldCaption.tsx +14 -0
- package/src/components/HomePage/DefaultHomePage.tsx +38 -28
- package/src/components/HomePage/NavigationCard.tsx +69 -0
- package/src/components/HomePage/NavigationCardBinding.tsx +116 -0
- package/src/components/HomePage/NavigationGroup.tsx +1 -1
- package/src/components/HomePage/SmallNavigationCard.tsx +44 -0
- package/src/components/HomePage/index.tsx +3 -1
- package/src/components/PropertyConfigBadge.tsx +23 -0
- package/src/components/PropertyIdCopyTooltip.tsx +48 -0
- package/src/components/{ReferenceSelectionInner.tsx → ReferenceTable/ReferenceSelectionTable.tsx} +37 -23
- package/src/components/ReferenceWidget.tsx +26 -16
- package/src/components/SearchIconsView.tsx +10 -7
- package/src/components/{EntityCollectionTable/SimpleEntityCollectionTable.tsx → SelectableTable/SelectableTable.tsx} +46 -84
- package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.tsx +2 -3
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.tsx +22 -7
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.tsx +38 -24
- package/src/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.tsx +88 -22
- package/src/components/VirtualTable/VirtualTable.tsx +77 -46
- package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
- package/src/components/VirtualTable/VirtualTableHeader.tsx +14 -8
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
- package/src/components/VirtualTable/VirtualTableProps.tsx +19 -15
- package/src/components/VirtualTable/VirtualTableRow.tsx +4 -5
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +4 -3
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +4 -3
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +14 -28
- package/src/components/VirtualTable/types.tsx +2 -3
- package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +17 -9
- package/src/components/common/index.ts +6 -0
- package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
- package/src/components/{EntityCollectionTable → common}/types.tsx +9 -6
- package/src/components/{EntityCollectionView → common}/useColumnsIds.tsx +23 -2
- package/src/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.tsx +25 -14
- package/src/components/common/useTableSearchHelper.ts +88 -0
- package/src/components/index.tsx +15 -8
- package/src/contexts/AuthControllerContext.tsx +1 -1
- package/src/contexts/DialogsProvider.tsx +2 -2
- package/src/core/DefaultAppBar.tsx +176 -0
- package/src/core/DefaultDrawer.tsx +183 -0
- package/src/core/DrawerNavigationItem.tsx +66 -0
- package/src/core/EntityEditView.tsx +1127 -0
- package/src/core/EntitySidePanel.tsx +9 -8
- package/src/core/FireCMS.tsx +67 -59
- package/src/core/NavigationRoutes.tsx +25 -17
- package/src/core/SideDialogs.tsx +1 -0
- package/src/core/field_configs.tsx +18 -19
- package/src/core/index.tsx +3 -6
- package/src/form/PropertyFieldBinding.tsx +60 -33
- package/src/form/components/CustomIdField.tsx +51 -36
- package/src/form/components/ErrorFocus.tsx +3 -3
- package/src/form/components/FieldHelperText.tsx +4 -4
- package/src/form/components/FormikArrayContainer.tsx +4 -1
- package/src/form/components/LabelWithIcon.tsx +41 -0
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/StorageItemPreview.tsx +22 -10
- package/src/form/components/StorageUploadProgress.tsx +8 -8
- package/src/form/components/index.tsx +2 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +28 -18
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +37 -37
- package/src/form/field_bindings/BlockFieldBinding.tsx +29 -27
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +20 -17
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +66 -60
- package/src/form/field_bindings/MapFieldBinding.tsx +35 -33
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
- package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -22
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +12 -18
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +45 -33
- package/src/form/field_bindings/RepeatFieldBinding.tsx +36 -21
- package/src/form/field_bindings/SelectFieldBinding.tsx +22 -16
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +41 -42
- package/src/form/field_bindings/SwitchFieldBinding.tsx +11 -8
- package/src/form/field_bindings/TextFieldBinding.tsx +34 -30
- package/src/form/index.tsx +5 -9
- package/src/form/useClearRestoreValue.tsx +2 -2
- package/src/form/validation.ts +4 -21
- package/src/hooks/data/delete.ts +5 -4
- package/src/hooks/data/save.ts +7 -2
- package/src/hooks/data/useCollectionFetch.tsx +1 -1
- package/src/hooks/data/useDataSource.tsx +15 -2
- package/src/hooks/data/useEntityFetch.tsx +4 -4
- package/src/hooks/index.tsx +7 -1
- package/src/{core → hooks}/useBuildLocalConfigurationPersistence.tsx +8 -10
- package/src/{core → hooks}/useBuildModeController.tsx +12 -6
- package/src/{internal → hooks}/useBuildNavigationController.tsx +244 -99
- package/src/hooks/useFireCMSContext.tsx +51 -3
- package/src/hooks/useLargeLayout.tsx +10 -7
- package/src/hooks/useProjectLog.tsx +63 -0
- package/src/hooks/useReferenceDialog.tsx +3 -3
- package/src/hooks/useResolvedNavigationFrom.tsx +1 -1
- package/src/hooks/useSnackbarController.tsx +1 -2
- package/src/hooks/useStorageSource.tsx +7 -2
- package/src/hooks/useValidateAuthenticator.tsx +115 -0
- package/src/index.ts +1 -0
- package/src/internal/useBuildDataSource.ts +79 -84
- package/src/internal/useBuildSideDialogsController.tsx +1 -0
- package/src/internal/useBuildSideEntityController.tsx +103 -23
- package/src/internal/useUnsavedChangesDialog.tsx +3 -1
- package/src/preview/PropertyPreview.tsx +12 -19
- package/src/preview/PropertyPreviewProps.tsx +6 -10
- package/src/preview/components/BooleanPreview.tsx +19 -4
- package/src/preview/components/EnumValuesChip.tsx +2 -2
- package/src/preview/components/ImagePreview.tsx +24 -34
- package/src/preview/components/ReferencePreview.tsx +73 -176
- package/src/preview/components/StorageThumbnail.tsx +5 -1
- package/src/preview/components/UrlComponentPreview.tsx +44 -11
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +3 -2
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -2
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -1
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +3 -4
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +3 -4
- package/src/preview/property_previews/MapPropertyPreview.tsx +6 -6
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +2 -2
- package/src/preview/property_previews/StringPropertyPreview.tsx +8 -7
- package/src/preview/util.ts +2 -2
- package/src/types/analytics.ts +1 -0
- package/src/types/auth.tsx +51 -2
- package/src/types/collections.ts +65 -9
- package/src/types/customization_controller.tsx +0 -1
- package/src/types/datasource.ts +69 -47
- package/src/types/entities.ts +15 -1
- package/src/types/entity_actions.tsx +17 -0
- package/src/types/entity_callbacks.ts +4 -3
- package/src/types/entity_overrides.tsx +7 -0
- package/src/types/fields.tsx +51 -45
- package/src/types/firecms.tsx +9 -26
- package/src/types/index.ts +2 -1
- package/src/types/navigation.ts +20 -19
- package/src/types/permissions.ts +6 -1
- package/src/types/plugins.tsx +38 -40
- package/src/types/properties.ts +42 -24
- package/src/types/property_config.tsx +2 -2
- package/src/types/roles.ts +41 -0
- package/src/types/side_dialogs_controller.tsx +13 -0
- package/src/types/side_entity_controller.tsx +1 -0
- package/src/types/storage.ts +94 -3
- package/src/types/user.ts +7 -0
- package/src/util/collections.ts +22 -0
- package/src/util/entities.ts +6 -5
- package/src/util/enums.ts +1 -1
- package/src/util/icon_list.ts +15 -10
- package/src/util/icon_synonyms.ts +3 -99
- package/src/util/icons.tsx +18 -4
- package/src/util/index.ts +3 -1
- package/src/util/make_properties_editable.ts +13 -5
- package/src/util/navigation_utils.ts +6 -6
- package/src/util/objects.ts +25 -28
- package/src/util/permissions.ts +12 -8
- package/src/util/plurals.ts +0 -2
- package/src/util/property_utils.tsx +1 -1
- package/src/util/references.ts +39 -5
- package/src/util/resolutions.ts +75 -42
- package/src/util/storage.ts +79 -21
- package/src/util/strings.ts +4 -3
- package/src/util/{useDebounce.ts → useDebouncedCallback.ts} +1 -1
- package/src/util/useStorageUploadController.tsx +33 -7
- package/src/util/useTraceUpdate.tsx +2 -1
- package/dist/components/VirtualTable/common.d.ts +0 -2
- package/dist/core/Drawer.d.ts +0 -23
- package/dist/core/Scaffold.d.ts +0 -52
- package/dist/form/EntityForm.d.ts +0 -75
- package/dist/form/components/SubmitListener.d.ts +0 -1
- package/dist/form/components/SwitchControl.d.ts +0 -8
- package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
- package/dist/hooks/useVerifyLicense.d.ts +0 -0
- package/dist/internal/EntityView.d.ts +0 -22
- package/dist/internal/useBuildCustomizationController.d.ts +0 -2
- package/dist/internal/useBuildNavigationController.d.ts +0 -14
- package/dist/internal/useLocaleConfig.d.ts +0 -1
- package/dist/types/appcheck.d.ts +0 -26
- package/dist/util/useDebounce.d.ts +0 -1
- package/src/components/FieldConfigBadge.tsx +0 -17
- package/src/components/FireCMSAppBar.tsx +0 -157
- package/src/components/HomePage/NavigationCollectionCard.tsx +0 -146
- package/src/components/LabelWithIcon.tsx +0 -33
- package/src/core/Drawer.tsx +0 -162
- package/src/core/Scaffold.tsx +0 -278
- package/src/form/EntityForm.tsx +0 -657
- package/src/form/components/SubmitListener.tsx +0 -32
- package/src/form/components/SwitchControl.tsx +0 -39
- package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -696
- package/src/hooks/useVerifyLicense.tsx +0 -1
- package/src/internal/EntityView.tsx +0 -578
- package/src/internal/useBuildCustomizationController.tsx +0 -5
- package/src/internal/useLocaleConfig.tsx +0 -18
- package/src/types/appcheck.ts +0 -29
- /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → common}/useDebouncedData.d.ts +0 -0
- /package/dist/{core → hooks}/useBuildLocalConfigurationPersistence.d.ts +0 -0
- /package/src/components/{EntityCollectionTable → common}/useDebouncedData.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataSource, DataSourceDelegate,
|
|
1
|
+
import { DataSource, DataSourceDelegate, NavigationController, PropertyConfig } from "../types";
|
|
2
2
|
/**
|
|
3
3
|
* Use this hook to build a {@link DataSource} based on Firestore
|
|
4
4
|
* @param firebaseApp
|
|
@@ -9,14 +9,3 @@ export declare function useBuildDataSource({ delegate, propertyConfigs, navigati
|
|
|
9
9
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
10
10
|
navigationController: NavigationController;
|
|
11
11
|
}): DataSource;
|
|
12
|
-
/**
|
|
13
|
-
* Recursive function that converts Firestore data types into CMS or plain
|
|
14
|
-
* JS types.
|
|
15
|
-
* FireCMS uses Javascript dates internally instead of Firestore timestamps.
|
|
16
|
-
* This makes it easier to interact with the rest of the libraries and
|
|
17
|
-
* bindings.
|
|
18
|
-
* Also, Firestore references are replaced with {@link EntityReference}
|
|
19
|
-
* @param data
|
|
20
|
-
* @group Firestore
|
|
21
|
-
*/
|
|
22
|
-
export declare function cmsToDelegateModel(data: any, buildReference: (reference: EntityReference) => any, buildGeoPoint: (geoPoint: GeoPoint) => any, buildDate: (date: Date) => any, buildDelete: () => any): any;
|
|
@@ -4,4 +4,4 @@ import { PropertyPreviewProps } from "./PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare const PropertyPreview: React.MemoExoticComponent<(<T extends CMSType>(props: PropertyPreviewProps<T
|
|
7
|
+
export declare const PropertyPreview: React.MemoExoticComponent<(<T extends CMSType>(props: PropertyPreviewProps<T>) => any)>;
|
|
@@ -2,11 +2,11 @@ import { CMSType, Property, ResolvedProperty } from "../types";
|
|
|
2
2
|
/**
|
|
3
3
|
* @group Preview components
|
|
4
4
|
*/
|
|
5
|
-
export type PreviewSize = "medium" | "small" | "
|
|
5
|
+
export type PreviewSize = "medium" | "small" | "smallest";
|
|
6
6
|
/**
|
|
7
7
|
* @group Preview components
|
|
8
8
|
*/
|
|
9
|
-
export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
9
|
+
export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any> {
|
|
10
10
|
/**
|
|
11
11
|
* Name of the property
|
|
12
12
|
*/
|
|
@@ -19,9 +19,6 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
|
19
19
|
* Property this display is related to
|
|
20
20
|
*/
|
|
21
21
|
property: Property<T> | ResolvedProperty<T>;
|
|
22
|
-
/**
|
|
23
|
-
* Click handler
|
|
24
|
-
*/
|
|
25
22
|
/**
|
|
26
23
|
* Desired size of the preview, depending on the context.
|
|
27
24
|
*/
|
|
@@ -40,4 +37,9 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
|
|
|
40
37
|
* Additional properties set by the developer
|
|
41
38
|
*/
|
|
42
39
|
customProps?: CustomProps;
|
|
40
|
+
/**
|
|
41
|
+
* If the preview should be interactive or not.
|
|
42
|
+
* This applies only to videos.
|
|
43
|
+
*/
|
|
44
|
+
interactive?: boolean;
|
|
43
45
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { PreviewSize } from "../PropertyPreviewProps";
|
|
3
|
+
import { Property } from "../../types";
|
|
2
4
|
/**
|
|
3
5
|
* @group Preview components
|
|
4
6
|
*/
|
|
5
|
-
export declare function BooleanPreview({ value }: {
|
|
7
|
+
export declare function BooleanPreview({ value, size, property }: {
|
|
6
8
|
value: boolean;
|
|
9
|
+
size: PreviewSize;
|
|
10
|
+
property: Property;
|
|
7
11
|
}): React.ReactElement;
|
|
@@ -7,16 +7,11 @@ export type ReferencePreviewProps = {
|
|
|
7
7
|
size: PreviewSize;
|
|
8
8
|
previewProperties?: string[];
|
|
9
9
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
hover?: boolean;
|
|
11
|
+
includeEntityLink?: boolean;
|
|
12
|
+
includeId?: boolean;
|
|
12
13
|
};
|
|
13
14
|
/**
|
|
14
15
|
* @group Preview components
|
|
15
16
|
*/
|
|
16
|
-
export declare const ReferencePreview:
|
|
17
|
-
export declare function ReferencePreviewContainer({ children, onHover, size, onClick }: {
|
|
18
|
-
children: React.ReactNode;
|
|
19
|
-
onHover?: boolean;
|
|
20
|
-
size: PreviewSize;
|
|
21
|
-
onClick?: (e: React.SyntheticEvent) => void;
|
|
22
|
-
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare const ReferencePreview: (props: ReferencePreviewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,10 +4,11 @@ type StorageThumbnailProps = {
|
|
|
4
4
|
storagePathOrDownloadUrl: string;
|
|
5
5
|
storeUrl: boolean;
|
|
6
6
|
size: PreviewSize;
|
|
7
|
+
interactive?: boolean;
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
9
10
|
* @group Preview components
|
|
10
11
|
*/
|
|
11
12
|
export declare const StorageThumbnail: React.FunctionComponent<StorageThumbnailProps>;
|
|
12
|
-
export declare function StorageThumbnailInternal({ storeUrl, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
14
|
export {};
|
|
@@ -4,9 +4,10 @@ import { PreviewSize } from "../PropertyPreviewProps";
|
|
|
4
4
|
/**
|
|
5
5
|
* @group Preview components
|
|
6
6
|
*/
|
|
7
|
-
export declare function UrlComponentPreview({ url, previewType, size, hint }: {
|
|
7
|
+
export declare function UrlComponentPreview({ url, previewType, size, hint, interactive }: {
|
|
8
8
|
url: string;
|
|
9
9
|
previewType?: PreviewType;
|
|
10
10
|
size: PreviewSize;
|
|
11
11
|
hint?: string;
|
|
12
|
+
interactive?: boolean;
|
|
12
13
|
}): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_favorite_navigate_to_view" | "collection_inline_editing" | "unmapped_event";
|
|
1
|
+
export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_navigate_to_admin_view" | "home_favorite_navigate_to_view" | "collection_inline_editing" | "unmapped_event";
|
package/dist/types/auth.d.ts
CHANGED
|
@@ -1,26 +1,38 @@
|
|
|
1
1
|
import { User } from "./user";
|
|
2
|
+
import { Role } from "./roles";
|
|
3
|
+
import { DataSourceDelegate } from "./datasource";
|
|
4
|
+
import { StorageSource } from "./storage";
|
|
2
5
|
/**
|
|
3
6
|
* Controller for retrieving the logged user or performing auth related operations.
|
|
4
7
|
* Note that if you are implementing your AuthController, you probably will want
|
|
5
8
|
* to do it as the result of a hook.
|
|
6
9
|
* @group Hooks and utilities
|
|
7
10
|
*/
|
|
8
|
-
export type AuthController<UserType extends User =
|
|
11
|
+
export type AuthController<UserType extends User = any, ExtraData = any> = {
|
|
9
12
|
/**
|
|
10
13
|
* The user currently logged in
|
|
11
14
|
* The values can be: the user object, null if they skipped login
|
|
12
15
|
*/
|
|
13
16
|
user: UserType | null;
|
|
17
|
+
/**
|
|
18
|
+
* Roles related to the logged user
|
|
19
|
+
*/
|
|
20
|
+
roles?: Role[];
|
|
14
21
|
/**
|
|
15
22
|
* Initial loading flag. It is used not to display the login screen
|
|
16
23
|
* when the app first loads, and it has not been checked whether the user
|
|
17
24
|
* is logged in or not.
|
|
18
25
|
*/
|
|
19
26
|
initialLoading?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Loading flag. It is used to display a loading screen when the user is
|
|
29
|
+
* logging in or out.
|
|
30
|
+
*/
|
|
31
|
+
authLoading: boolean;
|
|
20
32
|
/**
|
|
21
33
|
* Sign out
|
|
22
34
|
*/
|
|
23
|
-
signOut: () => void
|
|
35
|
+
signOut: () => Promise<void>;
|
|
24
36
|
/**
|
|
25
37
|
* Error initializing the authentication
|
|
26
38
|
*/
|
|
@@ -37,4 +49,28 @@ export type AuthController<UserType extends User = User> = {
|
|
|
37
49
|
* Has the user skipped the login process
|
|
38
50
|
*/
|
|
39
51
|
loginSkipped: boolean;
|
|
52
|
+
extra: ExtraData;
|
|
53
|
+
setExtra: (extra: ExtraData) => void;
|
|
40
54
|
};
|
|
55
|
+
/**
|
|
56
|
+
* Implement this function to allow access to specific users.
|
|
57
|
+
* @group Hooks and utilities
|
|
58
|
+
*/
|
|
59
|
+
export type Authenticator<UserType extends User = User, Controller extends AuthController<UserType> = AuthController<UserType>> = (props: {
|
|
60
|
+
/**
|
|
61
|
+
* Logged-in user or null
|
|
62
|
+
*/
|
|
63
|
+
user: UserType | null;
|
|
64
|
+
/**
|
|
65
|
+
* AuthController
|
|
66
|
+
*/
|
|
67
|
+
authController: Controller;
|
|
68
|
+
/**
|
|
69
|
+
* Connector to your database, e.g. your Firestore database
|
|
70
|
+
*/
|
|
71
|
+
dataSourceDelegate: DataSourceDelegate;
|
|
72
|
+
/**
|
|
73
|
+
* Used storage implementation
|
|
74
|
+
*/
|
|
75
|
+
storageSource: StorageSource;
|
|
76
|
+
}) => boolean | Promise<boolean>;
|
|
@@ -8,6 +8,7 @@ import { EnumValues, PropertiesOrBuilders } from "./properties";
|
|
|
8
8
|
import { FormContext } from "./fields";
|
|
9
9
|
import { EntityAction } from "./entity_actions";
|
|
10
10
|
import { ExportConfig } from "./export_import";
|
|
11
|
+
import { EntityOverrides } from "./entity_overrides";
|
|
11
12
|
/**
|
|
12
13
|
* This interface represents a view that includes a collection of entities.
|
|
13
14
|
* It can be in the root level of the configuration, defining the main
|
|
@@ -15,7 +16,7 @@ import { ExportConfig } from "./export_import";
|
|
|
15
16
|
*
|
|
16
17
|
* @group Models
|
|
17
18
|
*/
|
|
18
|
-
export interface EntityCollection<M extends Record<string, any> = any, UserType extends User =
|
|
19
|
+
export interface EntityCollection<M extends Record<string, any> = any, UserType extends User = any> {
|
|
19
20
|
/**
|
|
20
21
|
* You can set an alias that will be used internally instead of the `path`.
|
|
21
22
|
* The `alias` value will be used to determine the URL of the collection,
|
|
@@ -43,6 +44,11 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
43
44
|
* This path also determines the URL in FireCMS, unless an alias is specified
|
|
44
45
|
*/
|
|
45
46
|
path: string;
|
|
47
|
+
/**
|
|
48
|
+
* Optional database id of this collection. If not specified, the default
|
|
49
|
+
* database id will be used.
|
|
50
|
+
*/
|
|
51
|
+
databaseId?: string;
|
|
46
52
|
/**
|
|
47
53
|
* If this collection is a top level navigation entry, you can set this
|
|
48
54
|
* property to `true` to indicate that this collection is a collection group.
|
|
@@ -52,7 +58,8 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
52
58
|
* Icon key to use in this collection.
|
|
53
59
|
* You can use any of the icons in the Material specs:
|
|
54
60
|
* https://fonts.google.com/icons
|
|
55
|
-
* e.g. 'account_tree' or 'person'
|
|
61
|
+
* e.g. 'account_tree' or 'person'.
|
|
62
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
56
63
|
*/
|
|
57
64
|
icon?: string;
|
|
58
65
|
/**
|
|
@@ -65,6 +72,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
65
72
|
* Set of properties that compose an entity
|
|
66
73
|
*/
|
|
67
74
|
properties: PropertiesOrBuilders<M>;
|
|
75
|
+
/**
|
|
76
|
+
* Title property of the entity. This is the property that will be used
|
|
77
|
+
* as the title in entity related views and references.
|
|
78
|
+
* If not specified, the first property simple text property will be used.
|
|
79
|
+
*/
|
|
80
|
+
titleProperty?: keyof M;
|
|
68
81
|
/**
|
|
69
82
|
* Can this collection be edited by the end user.
|
|
70
83
|
* Defaults to `true`.
|
|
@@ -87,8 +100,12 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
87
100
|
* `subcollection:`. e.g. `subcollection:orders`.
|
|
88
101
|
* - If you are using a collection group, you will also have an
|
|
89
102
|
* additional `collectionGroupParent` column.
|
|
103
|
+
* You can use this prop to hide some properties from the table view.
|
|
104
|
+
* Note that if you set this prop, other ways to hide fields, like
|
|
105
|
+
* `hidden` in the property definition,will be ignored.
|
|
106
|
+
* `propertiesOrder` has precedence over `hidden`.
|
|
90
107
|
*/
|
|
91
|
-
propertiesOrder?: Extract<keyof M, string>[];
|
|
108
|
+
propertiesOrder?: (Extract<keyof M, string> | `subcollection:${string}`)[];
|
|
92
109
|
/**
|
|
93
110
|
* If enabled, content is loaded in batches. If `false` all entities in the
|
|
94
111
|
* collection are loaded.
|
|
@@ -121,7 +138,7 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
121
138
|
* is being created, updated or deleted.
|
|
122
139
|
* Useful for adding your own logic or blocking the execution of the operation.
|
|
123
140
|
*/
|
|
124
|
-
callbacks?: EntityCallbacks<M>;
|
|
141
|
+
callbacks?: EntityCallbacks<M, UserType>;
|
|
125
142
|
/**
|
|
126
143
|
* Builder for rendering additional components such as buttons in the
|
|
127
144
|
* collection toolbar
|
|
@@ -241,6 +258,23 @@ export interface EntityCollection<M extends Record<string, any> = any, UserType
|
|
|
241
258
|
*
|
|
242
259
|
*/
|
|
243
260
|
exportable?: boolean | ExportConfig<UserType>;
|
|
261
|
+
/**
|
|
262
|
+
* User id of the owner of this collection. This is used only by plugins, or if you
|
|
263
|
+
* are writing custom code
|
|
264
|
+
*/
|
|
265
|
+
ownerId?: string;
|
|
266
|
+
/**
|
|
267
|
+
* Overrides for the entity view, like the data source or the storage source.
|
|
268
|
+
*/
|
|
269
|
+
overrides?: EntityOverrides;
|
|
270
|
+
/**
|
|
271
|
+
* Width of the side dialog (in pixels) when opening an entity in this collection.
|
|
272
|
+
*/
|
|
273
|
+
sideDialogWidth?: number | string;
|
|
274
|
+
/**
|
|
275
|
+
* Default preview properties displayed when this collection is referenced to.
|
|
276
|
+
*/
|
|
277
|
+
previewProperties?: string[];
|
|
244
278
|
}
|
|
245
279
|
/**
|
|
246
280
|
* Parameter passed to the `Actions` prop in the collection configuration.
|
|
@@ -289,18 +323,17 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, Use
|
|
|
289
323
|
/**
|
|
290
324
|
* Use this controller to retrieve the selected entities or modify them in
|
|
291
325
|
* an {@link EntityCollection}
|
|
292
|
-
* If you want to pass a `SelectionController` to
|
|
293
326
|
* @group Models
|
|
294
327
|
*/
|
|
295
328
|
export type SelectionController<M extends Record<string, any> = any> = {
|
|
296
329
|
selectedEntities: Entity<M>[];
|
|
297
330
|
setSelectedEntities: Dispatch<SetStateAction<Entity<M>[]>>;
|
|
298
331
|
isEntitySelected: (entity: Entity<M>) => boolean;
|
|
299
|
-
toggleEntitySelection: (entity: Entity<M
|
|
332
|
+
toggleEntitySelection: (entity: Entity<M>, newSelectedState?: boolean) => void;
|
|
300
333
|
};
|
|
301
334
|
/**
|
|
302
335
|
* Filter conditions in a `Query.where()` clause are specified using the
|
|
303
|
-
* strings
|
|
336
|
+
* strings `<`, `<=`, `==`, `>=`, `>`, `array-contains`, `in`, and `array-contains-any`.
|
|
304
337
|
* @group Models
|
|
305
338
|
*/
|
|
306
339
|
export type WhereFilterOp = "<" | "<=" | "==" | "!=" | ">=" | ">" | "array-contains" | "in" | "not-in" | "array-contains-any";
|
|
@@ -369,7 +402,7 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
369
402
|
*/
|
|
370
403
|
value?: (props: {
|
|
371
404
|
entity: Entity<M>;
|
|
372
|
-
context: FireCMSContext
|
|
405
|
+
context: FireCMSContext<any>;
|
|
373
406
|
}) => string | number | Promise<string | number> | undefined;
|
|
374
407
|
}
|
|
375
408
|
/**
|
|
@@ -378,8 +411,22 @@ export interface AdditionalFieldDelegate<M extends Record<string, any> = any, Us
|
|
|
378
411
|
* @group Models
|
|
379
412
|
*/
|
|
380
413
|
export type EntityCustomView<M extends Record<string, any> = any> = {
|
|
414
|
+
/**
|
|
415
|
+
* Key of this custom view.
|
|
416
|
+
*/
|
|
381
417
|
key: string;
|
|
418
|
+
/**
|
|
419
|
+
* Name of this custom view.
|
|
420
|
+
*/
|
|
382
421
|
name: string;
|
|
422
|
+
/**
|
|
423
|
+
* If set to true, the actions of the entity will be included in the
|
|
424
|
+
* bottom of the panel (save buttons, delete buttons, etc.)
|
|
425
|
+
*/
|
|
426
|
+
includeActions?: boolean;
|
|
427
|
+
/**
|
|
428
|
+
* Builder for rendering the custom view
|
|
429
|
+
*/
|
|
383
430
|
Builder?: React.ComponentType<EntityCustomViewParams<M>>;
|
|
384
431
|
};
|
|
385
432
|
/**
|
|
@@ -432,7 +479,7 @@ export type EntityTableController<M extends Record<string, any> = any> = {
|
|
|
432
479
|
filterValues?: FilterValues<Extract<keyof M, string>>;
|
|
433
480
|
setFilterValues?: (filterValues: FilterValues<Extract<keyof M, string>>) => void;
|
|
434
481
|
sortBy?: [Extract<keyof M, string>, "asc" | "desc"];
|
|
435
|
-
setSortBy?: (sortBy
|
|
482
|
+
setSortBy?: (sortBy?: [Extract<keyof M, string>, "asc" | "desc"]) => void;
|
|
436
483
|
searchString?: string;
|
|
437
484
|
setSearchString?: (searchString?: string) => void;
|
|
438
485
|
clearFilter?: () => void;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import { Entity,
|
|
1
|
+
import { Entity, EntityStatus, EntityValues } from "./entities";
|
|
2
2
|
import { EntityCollection, FilterValues } from "./collections";
|
|
3
3
|
import { ResolvedEntityCollection } from "./resolved_entities";
|
|
4
|
+
import { FireCMSContext } from "./firecms_context";
|
|
4
5
|
/**
|
|
5
6
|
* @group Datasource
|
|
6
7
|
*/
|
|
7
8
|
export interface FetchEntityProps<M extends Record<string, any> = any> {
|
|
8
9
|
path: string;
|
|
9
10
|
entityId: string;
|
|
10
|
-
collection?: EntityCollection<M>;
|
|
11
|
+
collection?: EntityCollection<M, any>;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* @group Datasource
|
|
14
15
|
*/
|
|
15
16
|
export type ListenEntityProps<M extends Record<string, any> = any> = FetchEntityProps<M> & {
|
|
17
|
+
databaseId?: string;
|
|
16
18
|
onUpdate: (entity: Entity<M>) => void;
|
|
17
19
|
onError?: (error: Error) => void;
|
|
18
20
|
};
|
|
@@ -24,7 +26,7 @@ export interface FetchCollectionProps<M extends Record<string, any> = any> {
|
|
|
24
26
|
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
25
27
|
filter?: FilterValues<Extract<keyof M, string>>;
|
|
26
28
|
limit?: number;
|
|
27
|
-
startAfter?: any
|
|
29
|
+
startAfter?: any;
|
|
28
30
|
orderBy?: string;
|
|
29
31
|
searchString?: string;
|
|
30
32
|
order?: "desc" | "asc";
|
|
@@ -52,11 +54,11 @@ export interface SaveEntityProps<M extends Record<string, any> = any> {
|
|
|
52
54
|
*/
|
|
53
55
|
export interface DeleteEntityProps<M extends Record<string, any> = any> {
|
|
54
56
|
entity: Entity<M>;
|
|
57
|
+
collection?: EntityCollection<M> | ResolvedEntityCollection<M>;
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* A Firestore implementation of this interface can be found in {@link useFirestoreDataSource}
|
|
60
|
+
* Component in charge of communicating with the data source.
|
|
61
|
+
* Usually you won't need to implement this interface, but a {@link DataSourceDelegate} instead.
|
|
60
62
|
* @group Datasource
|
|
61
63
|
*/
|
|
62
64
|
export interface DataSource {
|
|
@@ -121,30 +123,41 @@ export interface DataSource {
|
|
|
121
123
|
* @param entity
|
|
122
124
|
* @return was the whole deletion flow successful
|
|
123
125
|
*/
|
|
124
|
-
deleteEntity<M extends Record<string, any> = any>({ entity }: DeleteEntityProps<M>): Promise<void>;
|
|
126
|
+
deleteEntity<M extends Record<string, any> = any>({ entity, collection }: DeleteEntityProps<M>): Promise<void>;
|
|
125
127
|
/**
|
|
126
128
|
* Check if the given property is unique in the given collection
|
|
127
129
|
* @param path Collection path
|
|
128
130
|
* @param name of the property
|
|
129
131
|
* @param value
|
|
130
|
-
* @param
|
|
132
|
+
* @param collection
|
|
131
133
|
* @param entityId
|
|
132
134
|
* @return `true` if there are no other fields besides the given entity
|
|
133
135
|
*/
|
|
134
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
136
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
135
137
|
/**
|
|
136
138
|
* Generate an id for a new entity
|
|
137
139
|
*/
|
|
138
|
-
generateEntityId(path: string): string;
|
|
140
|
+
generateEntityId(path: string, collection: EntityCollection): string;
|
|
139
141
|
/**
|
|
140
142
|
* Count the number of entities in a collection
|
|
141
143
|
*/
|
|
142
|
-
countEntities
|
|
144
|
+
countEntities?<M extends Record<string, any> = any>(props: FetchCollectionProps<M>): Promise<number>;
|
|
143
145
|
/**
|
|
144
146
|
* Check if the given filter combination is valid
|
|
145
147
|
* @param props
|
|
146
148
|
*/
|
|
147
149
|
isFilterCombinationValid?(props: FilterCombinationValidProps): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Called when the user clicks on the search bar in a collection view.
|
|
152
|
+
* Useful for initializing a text search index.
|
|
153
|
+
* @param props
|
|
154
|
+
*/
|
|
155
|
+
initTextSearch?: (props: {
|
|
156
|
+
context: FireCMSContext;
|
|
157
|
+
path: string;
|
|
158
|
+
collection: EntityCollection;
|
|
159
|
+
parentCollectionIds?: string[];
|
|
160
|
+
}) => Promise<boolean>;
|
|
148
161
|
}
|
|
149
162
|
export type FilterCombinationValidProps = {
|
|
150
163
|
path: string;
|
|
@@ -152,14 +165,22 @@ export type FilterCombinationValidProps = {
|
|
|
152
165
|
filterValues: FilterValues<any>;
|
|
153
166
|
sortBy?: [string, "asc" | "desc"];
|
|
154
167
|
};
|
|
155
|
-
export type SaveEntityDelegateProps<M extends Record<string, any> = any> =
|
|
156
|
-
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> =
|
|
157
|
-
|
|
158
|
-
};
|
|
159
|
-
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M> & {
|
|
160
|
-
isCollectionGroup?: boolean;
|
|
161
|
-
};
|
|
168
|
+
export type SaveEntityDelegateProps<M extends Record<string, any> = any> = SaveEntityProps<M>;
|
|
169
|
+
export type FetchCollectionDelegateProps<M extends Record<string, any> = any> = FetchCollectionProps<M>;
|
|
170
|
+
export type ListenCollectionDelegateProps<M extends Record<string, any> = any> = ListenCollectionProps<M>;
|
|
162
171
|
export interface DataSourceDelegate {
|
|
172
|
+
/**
|
|
173
|
+
* Key that identifies this data source delegate
|
|
174
|
+
*/
|
|
175
|
+
key: string;
|
|
176
|
+
/**
|
|
177
|
+
* If the data source has been initialised
|
|
178
|
+
*/
|
|
179
|
+
initialised?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* If the user is authenticated to use the data source
|
|
182
|
+
*/
|
|
183
|
+
authenticated?: boolean;
|
|
163
184
|
/**
|
|
164
185
|
* Fetch data from a collection
|
|
165
186
|
* @param path
|
|
@@ -194,7 +215,7 @@ export interface DataSourceDelegate {
|
|
|
194
215
|
* @param path
|
|
195
216
|
* @param entityId
|
|
196
217
|
*/
|
|
197
|
-
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }:
|
|
218
|
+
fetchEntity<M extends Record<string, any> = any>({ path, entityId, }: FetchEntityProps<M>): Promise<Entity<M> | undefined>;
|
|
198
219
|
/**
|
|
199
220
|
* Get realtime updates on one entity.
|
|
200
221
|
* @param path
|
|
@@ -204,12 +225,12 @@ export interface DataSourceDelegate {
|
|
|
204
225
|
* @param onError
|
|
205
226
|
* @return Function to cancel subscription
|
|
206
227
|
*/
|
|
207
|
-
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }:
|
|
228
|
+
listenEntity?<M extends Record<string, any> = any>({ path, entityId, onUpdate, onError }: ListenEntityProps<M>): () => void;
|
|
208
229
|
/**
|
|
209
230
|
* Save entity to the specified path
|
|
210
231
|
* @param path
|
|
211
|
-
* @param
|
|
212
|
-
* @param
|
|
232
|
+
* @param entityId
|
|
233
|
+
* @param values
|
|
213
234
|
* @param status
|
|
214
235
|
*/
|
|
215
236
|
saveEntity<M extends Record<string, any> = any>({ path, entityId, values, status }: SaveEntityDelegateProps<M>): Promise<Entity<M>>;
|
|
@@ -225,38 +246,37 @@ export interface DataSourceDelegate {
|
|
|
225
246
|
* @param name of the property
|
|
226
247
|
* @param value
|
|
227
248
|
* @param entityId
|
|
249
|
+
* @param collection
|
|
228
250
|
* @return `true` if there are no other fields besides the given entity
|
|
229
251
|
*/
|
|
230
|
-
checkUniqueField(path: string, name: string, value: any, entityId?: string): Promise<boolean>;
|
|
252
|
+
checkUniqueField(path: string, name: string, value: any, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
231
253
|
/**
|
|
232
254
|
* Generate an id for a new entity
|
|
233
255
|
*/
|
|
234
|
-
generateEntityId(path: string): string;
|
|
256
|
+
generateEntityId(path: string, collection?: EntityCollection): string;
|
|
235
257
|
/**
|
|
236
258
|
* Count the number of entities in a collection
|
|
237
259
|
*/
|
|
238
|
-
countEntities
|
|
260
|
+
countEntities?<M extends Record<string, any> = any>(props: FetchCollectionDelegateProps<M>): Promise<number>;
|
|
239
261
|
/**
|
|
240
262
|
* Check if the given filter combination is valid
|
|
241
263
|
* @param props
|
|
242
264
|
*/
|
|
243
|
-
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection">
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
* @param reference
|
|
247
|
-
*/
|
|
248
|
-
buildReference: (reference: EntityReference) => any;
|
|
249
|
-
/**
|
|
250
|
-
* Convert a FireCMS GeoPoint to a GeoPoint that can be used by the datasource
|
|
251
|
-
* @param geoPoint
|
|
252
|
-
*/
|
|
253
|
-
buildGeoPoint: (geoPoint: GeoPoint) => any;
|
|
265
|
+
isFilterCombinationValid?(props: Omit<FilterCombinationValidProps, "collection"> & {
|
|
266
|
+
databaseId?: string;
|
|
267
|
+
}): boolean;
|
|
254
268
|
/**
|
|
255
269
|
* Get the object to generate the current time in the datasource
|
|
256
270
|
*/
|
|
257
|
-
currentTime()
|
|
258
|
-
buildDate: (date: Date) => any;
|
|
259
|
-
buildDeleteFieldValue: () => any;
|
|
271
|
+
currentTime?: () => any;
|
|
260
272
|
delegateToCMSModel: (data: any) => any;
|
|
273
|
+
cmsToDelegateModel: (data: any) => any;
|
|
261
274
|
setDateToMidnight: (input?: any) => any;
|
|
275
|
+
initTextSearch?: (props: {
|
|
276
|
+
context: FireCMSContext;
|
|
277
|
+
path: string;
|
|
278
|
+
databaseId?: string;
|
|
279
|
+
collection: EntityCollection;
|
|
280
|
+
parentCollectionIds?: string[];
|
|
281
|
+
}) => Promise<boolean>;
|
|
262
282
|
}
|
package/dist/types/entities.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export interface Entity<M extends object> {
|
|
|
21
21
|
* Current values
|
|
22
22
|
*/
|
|
23
23
|
values: EntityValues<M>;
|
|
24
|
+
databaseId?: string;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* This type represents a record of key value pairs as described in an
|
|
@@ -31,7 +32,7 @@ export type EntityValues<M extends object> = M;
|
|
|
31
32
|
/**
|
|
32
33
|
* Class used to create a reference to an entity in a different path
|
|
33
34
|
*/
|
|
34
|
-
export declare class EntityReference
|
|
35
|
+
export declare class EntityReference {
|
|
35
36
|
/**
|
|
36
37
|
* ID of the entity
|
|
37
38
|
*/
|
|
@@ -43,6 +44,7 @@ export declare class EntityReference<M extends Record<string, any> = any> {
|
|
|
43
44
|
readonly path: string;
|
|
44
45
|
constructor(id: string, path: string);
|
|
45
46
|
get pathWithId(): string;
|
|
47
|
+
isEntityReference(): boolean;
|
|
46
48
|
}
|
|
47
49
|
export declare class GeoPoint {
|
|
48
50
|
/**
|
|
@@ -55,3 +57,7 @@ export declare class GeoPoint {
|
|
|
55
57
|
readonly longitude: number;
|
|
56
58
|
constructor(latitude: number, longitude: number);
|
|
57
59
|
}
|
|
60
|
+
export declare class Vector {
|
|
61
|
+
readonly value: number[];
|
|
62
|
+
constructor(value: number[]);
|
|
63
|
+
}
|
|
@@ -4,9 +4,23 @@ import { Entity } from "./entities";
|
|
|
4
4
|
import { EntityCollection, SelectionController } from "./collections";
|
|
5
5
|
import { User } from "./user";
|
|
6
6
|
import { SideEntityController } from "./side_entity_controller";
|
|
7
|
+
/**
|
|
8
|
+
* An entity action is a custom action that can be performed on an entity.
|
|
9
|
+
* They are displayed in the entity view and in the collection view.
|
|
10
|
+
*/
|
|
7
11
|
export type EntityAction<M extends object = any, UserType extends User = User> = {
|
|
12
|
+
/**
|
|
13
|
+
* Title of the action
|
|
14
|
+
*/
|
|
8
15
|
name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Icon of the action
|
|
18
|
+
*/
|
|
9
19
|
icon?: React.ReactElement;
|
|
20
|
+
/**
|
|
21
|
+
* Callback when the action is clicked
|
|
22
|
+
* @param props
|
|
23
|
+
*/
|
|
10
24
|
onClick: (props: EntityActionClickProps<M, UserType>) => Promise<void> | void;
|
|
11
25
|
/**
|
|
12
26
|
* Show this action collapsed in the menu of the collection view.
|
|
@@ -53,7 +53,7 @@ export type EntityCallbacks<M extends Record<string, any> = any, UserType extend
|
|
|
53
53
|
*
|
|
54
54
|
* @param idUpdateProps
|
|
55
55
|
*/
|
|
56
|
-
onIdUpdate?(idUpdateProps: EntityIdUpdateProps<M>): string
|
|
56
|
+
onIdUpdate?(idUpdateProps: EntityIdUpdateProps<M>): string | Promise<string>;
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
59
59
|
* Parameters passed to hooks when an entity is fetched
|
|
@@ -63,7 +63,7 @@ export interface EntityOnFetchProps<M extends Record<string, any> = any, UserTyp
|
|
|
63
63
|
/**
|
|
64
64
|
* Collection of the entity
|
|
65
65
|
*/
|
|
66
|
-
collection: EntityCollection<M>;
|
|
66
|
+
collection: EntityCollection<M, UserType>;
|
|
67
67
|
/**
|
|
68
68
|
* Full path of the CMS where this collection is being fetched.
|
|
69
69
|
* Might contain unresolved aliases.
|
|
@@ -155,7 +155,7 @@ export interface EntityOnDeleteProps<M extends Record<string, any> = any, UserTy
|
|
|
155
155
|
/**
|
|
156
156
|
* Context of the app status
|
|
157
157
|
*/
|
|
158
|
-
context: FireCMSContext
|
|
158
|
+
context: FireCMSContext<UserType>;
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
161
|
* Parameters passed to hooks when an entity is deleted
|