@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
package/dist/types/fields.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CMSType, PropertyOrBuilder } from "./properties";
|
|
1
|
+
import { CMSType, Property, PropertyOrBuilder } from "./properties";
|
|
3
2
|
import { ResolvedEntityCollection, ResolvedProperty } from "./resolved_entities";
|
|
3
|
+
import { FormexController } from "@firecms/formex";
|
|
4
4
|
/**
|
|
5
5
|
* When building a custom field you need to create a React component that takes
|
|
6
6
|
* this interface as props.
|
|
@@ -17,10 +17,6 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
17
17
|
* Current value of this field
|
|
18
18
|
*/
|
|
19
19
|
value: T;
|
|
20
|
-
/**
|
|
21
|
-
* Initial value of this field
|
|
22
|
-
*/
|
|
23
|
-
initialValue: T | undefined;
|
|
24
20
|
/**
|
|
25
21
|
* Set value of field directly
|
|
26
22
|
*/
|
|
@@ -35,53 +31,49 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
35
31
|
/**
|
|
36
32
|
* Is the form currently submitting
|
|
37
33
|
*/
|
|
38
|
-
isSubmitting
|
|
34
|
+
isSubmitting?: boolean;
|
|
39
35
|
/**
|
|
40
36
|
* Should this field show the error indicator.
|
|
41
37
|
* Note that there might be an error (like an empty field that should be
|
|
42
38
|
* filled) but we don't want to show the error until the user has tried
|
|
43
39
|
* saving.
|
|
44
40
|
*/
|
|
45
|
-
showError
|
|
41
|
+
showError?: boolean;
|
|
46
42
|
/**
|
|
47
43
|
* Is there an error in this field. The error field has the same shape as
|
|
48
44
|
* the field, replacing values with a string containing the error.
|
|
49
45
|
* It takes the value `null` if there is no error
|
|
50
46
|
*/
|
|
51
|
-
error
|
|
47
|
+
error?: any | null;
|
|
52
48
|
/**
|
|
53
49
|
* Has this field been touched
|
|
54
50
|
*/
|
|
55
|
-
touched
|
|
51
|
+
touched?: boolean;
|
|
56
52
|
/**
|
|
57
53
|
* Property related to this field
|
|
58
54
|
*/
|
|
59
|
-
property: ResolvedProperty<T>;
|
|
55
|
+
property: Property<T> | ResolvedProperty<T>;
|
|
60
56
|
/**
|
|
61
57
|
* Should this field include a description
|
|
62
58
|
*/
|
|
63
|
-
includeDescription
|
|
59
|
+
includeDescription?: boolean;
|
|
64
60
|
/**
|
|
65
61
|
* Flag to indicate that the underlying value has been updated in the
|
|
66
62
|
* datasource
|
|
67
63
|
*/
|
|
68
|
-
underlyingValueHasChanged
|
|
64
|
+
underlyingValueHasChanged?: boolean;
|
|
69
65
|
/**
|
|
70
66
|
* Is this field part of an array
|
|
71
67
|
*/
|
|
72
|
-
partOfArray
|
|
73
|
-
/**
|
|
74
|
-
* Is this field part of a block (oneOf array)
|
|
75
|
-
*/
|
|
76
|
-
partOfBlock: boolean;
|
|
68
|
+
partOfArray?: boolean;
|
|
77
69
|
/**
|
|
78
|
-
*
|
|
70
|
+
* Should this field render with the minimal amount of UI elements
|
|
79
71
|
*/
|
|
80
|
-
|
|
72
|
+
minimalistView?: boolean;
|
|
81
73
|
/**
|
|
82
74
|
* Should this field autofocus on mount
|
|
83
75
|
*/
|
|
84
|
-
autoFocus
|
|
76
|
+
autoFocus?: boolean;
|
|
85
77
|
/**
|
|
86
78
|
* Additional properties set by the developer
|
|
87
79
|
*/
|
|
@@ -93,29 +85,21 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
|
|
|
93
85
|
/**
|
|
94
86
|
* Flag to indicate if this field should be disabled
|
|
95
87
|
*/
|
|
96
|
-
disabled
|
|
88
|
+
disabled?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Size of the field
|
|
91
|
+
*/
|
|
92
|
+
size?: "smallest" | "small" | "medium";
|
|
97
93
|
}
|
|
98
94
|
/**
|
|
99
95
|
* Context passed to custom fields
|
|
100
96
|
* @group Form custom fields
|
|
101
97
|
*/
|
|
102
98
|
export interface FormContext<M extends Record<string, any> = any> {
|
|
103
|
-
/**
|
|
104
|
-
* Collection of the entity being modified
|
|
105
|
-
*/
|
|
106
|
-
collection: ResolvedEntityCollection<M>;
|
|
107
99
|
/**
|
|
108
100
|
* Current values of the entity
|
|
109
101
|
*/
|
|
110
|
-
values:
|
|
111
|
-
/**
|
|
112
|
-
* Entity id, it can be null if it's a new entity
|
|
113
|
-
*/
|
|
114
|
-
entityId?: string;
|
|
115
|
-
/**
|
|
116
|
-
* Path this entity is located at
|
|
117
|
-
*/
|
|
118
|
-
path: string;
|
|
102
|
+
values: M;
|
|
119
103
|
/**
|
|
120
104
|
* Update the value of a field
|
|
121
105
|
* @param key
|
|
@@ -124,9 +108,25 @@ export interface FormContext<M extends Record<string, any> = any> {
|
|
|
124
108
|
*/
|
|
125
109
|
setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
|
|
126
110
|
/**
|
|
127
|
-
* Save the entity
|
|
111
|
+
* Save the entity.
|
|
112
|
+
*/
|
|
113
|
+
save: (values: M) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Collection of the entity being modified
|
|
116
|
+
*/
|
|
117
|
+
collection?: ResolvedEntityCollection<M>;
|
|
118
|
+
/**
|
|
119
|
+
* Entity id, it can be null if it's a new entity
|
|
128
120
|
*/
|
|
129
|
-
|
|
121
|
+
entityId: string;
|
|
122
|
+
/**
|
|
123
|
+
* Path this entity is located at
|
|
124
|
+
*/
|
|
125
|
+
path?: string;
|
|
126
|
+
/**
|
|
127
|
+
* This is the underlying formex controller that powers the form
|
|
128
|
+
*/
|
|
129
|
+
formex: FormexController<M>;
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
132
|
* In case you need to render a field bound to a Property inside your
|
|
@@ -157,10 +157,6 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
157
157
|
* field is being edited
|
|
158
158
|
*/
|
|
159
159
|
underlyingValueHasChanged?: boolean;
|
|
160
|
-
/**
|
|
161
|
-
* Is this field being rendered in a table
|
|
162
|
-
*/
|
|
163
|
-
tableMode?: boolean;
|
|
164
160
|
/**
|
|
165
161
|
* Is this field part of an array
|
|
166
162
|
*/
|
|
@@ -168,7 +164,7 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
168
164
|
/**
|
|
169
165
|
* Is this field part of a block (oneOf array)
|
|
170
166
|
*/
|
|
171
|
-
|
|
167
|
+
minimalistView?: boolean;
|
|
172
168
|
/**
|
|
173
169
|
* Should the field take focus when rendered. When opening the popup view
|
|
174
170
|
* in table mode, it makes sense to put the focus on the only field rendered.
|
|
@@ -178,4 +174,13 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
|
|
|
178
174
|
* Should this field be disabled
|
|
179
175
|
*/
|
|
180
176
|
disabled?: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Index of the field in the array.
|
|
179
|
+
* Only used when the field is part of an array.
|
|
180
|
+
*/
|
|
181
|
+
index?: number;
|
|
182
|
+
/**
|
|
183
|
+
* The size of the field
|
|
184
|
+
*/
|
|
185
|
+
size?: "smallest" | "small" | "medium";
|
|
181
186
|
}
|
package/dist/types/firecms.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { User } from "./user";
|
|
|
3
3
|
import { AuthController } from "./auth";
|
|
4
4
|
import { DataSourceDelegate } from "./datasource";
|
|
5
5
|
import { EntityCollection, EntityCustomView } from "./collections";
|
|
6
|
-
import { CMSView } from "./navigation";
|
|
6
|
+
import { CMSView, NavigationController } from "./navigation";
|
|
7
7
|
import { FireCMSContext } from "./firecms_context";
|
|
8
8
|
import { PropertyConfig } from "./property_config";
|
|
9
9
|
import { Locale } from "./locales";
|
|
@@ -63,23 +63,20 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
|
|
|
63
63
|
loading: boolean;
|
|
64
64
|
}) => React.ReactNode;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
* Each entry relates to a collection in the root database.
|
|
68
|
-
* Each of the navigation entries in this field
|
|
69
|
-
* generates an entry in the main menu.
|
|
66
|
+
* If you have a custom API key, you can use it here.
|
|
70
67
|
*/
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Custom additional views created by the developer, added to the main
|
|
74
|
-
* navigation
|
|
75
|
-
*/
|
|
76
|
-
views?: CMSView[] | CMSViewsBuilder;
|
|
68
|
+
apiKey?: string;
|
|
77
69
|
/**
|
|
78
70
|
* Record of custom form fields to be used in the CMS.
|
|
79
71
|
* You can use the key to reference the custom field in
|
|
80
72
|
* the `propertyConfig` prop of a property in a collection.
|
|
81
73
|
*/
|
|
82
74
|
propertyConfigs?: Record<string, PropertyConfig>;
|
|
75
|
+
/**
|
|
76
|
+
* This controller is in charge of the navigation of the CMS.
|
|
77
|
+
* It is in charge of resolving the collection and entity paths.
|
|
78
|
+
*/
|
|
79
|
+
navigationController: NavigationController;
|
|
83
80
|
/**
|
|
84
81
|
* List of additional custom views for entities.
|
|
85
82
|
* You can use the key to reference the custom view in
|
|
@@ -109,18 +106,6 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
|
|
|
109
106
|
* Delegate for implementing your auth operations.
|
|
110
107
|
*/
|
|
111
108
|
authController: AuthController<UserType>;
|
|
112
|
-
/**
|
|
113
|
-
* Path under the navigation routes of the CMS will be created. Defaults to `/`.
|
|
114
|
-
* Internally FireCMS uses `react-router` to create the routes, the base path is attached to the
|
|
115
|
-
* `BrowserRouter` component. If you are using FireCMS in a subpath of your website, you can use
|
|
116
|
-
* this prop to specify the base path.
|
|
117
|
-
*/
|
|
118
|
-
basePath?: string;
|
|
119
|
-
/**
|
|
120
|
-
* Path under the collection routes of the CMS will be created.
|
|
121
|
-
* Defaults to `/c`.
|
|
122
|
-
*/
|
|
123
|
-
baseCollectionPath?: string;
|
|
124
109
|
/**
|
|
125
110
|
* Use this controller to access the configuration that is stored locally,
|
|
126
111
|
* and not defined in code
|
package/dist/types/index.d.ts
CHANGED
|
@@ -17,11 +17,12 @@ export * from "./side_entity_controller";
|
|
|
17
17
|
export * from "./side_dialogs_controller";
|
|
18
18
|
export * from "./firecms_context";
|
|
19
19
|
export * from "./entity_callbacks";
|
|
20
|
+
export * from "./entity_overrides";
|
|
20
21
|
export * from "./local_config_persistence";
|
|
21
22
|
export * from "./plugins";
|
|
22
23
|
export * from "./analytics";
|
|
23
24
|
export * from "./firecms";
|
|
24
|
-
export * from "./
|
|
25
|
+
export * from "./roles";
|
|
25
26
|
export * from "./export_import";
|
|
26
27
|
export * from "./modify_collections";
|
|
27
28
|
export * from "./analytics_controller";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { EntityCollection } from "./collections";
|
|
2
3
|
import { EntityReference } from "./entities";
|
|
3
4
|
/**
|
|
@@ -5,19 +6,24 @@ import { EntityReference } from "./entities";
|
|
|
5
6
|
* attributes.
|
|
6
7
|
* @group Models
|
|
7
8
|
*/
|
|
8
|
-
export type NavigationController = {
|
|
9
|
+
export type NavigationController<EC extends EntityCollection = EntityCollection<any>> = {
|
|
9
10
|
/**
|
|
10
11
|
* List of the mapped collections in the CMS.
|
|
11
12
|
* Each entry relates to a collection in the root database.
|
|
12
13
|
* Each of the navigation entries in this field
|
|
13
14
|
* generates an entry in the main menu.
|
|
14
15
|
*/
|
|
15
|
-
collections
|
|
16
|
+
collections?: EntityCollection[];
|
|
16
17
|
/**
|
|
17
18
|
* Custom additional views created by the developer, added to the main
|
|
18
19
|
* navigation
|
|
19
20
|
*/
|
|
20
|
-
views
|
|
21
|
+
views?: CMSView[];
|
|
22
|
+
/**
|
|
23
|
+
* Custom additional views created by the developer, added to the admin
|
|
24
|
+
* navigation
|
|
25
|
+
*/
|
|
26
|
+
adminViews?: CMSView[];
|
|
21
27
|
/**
|
|
22
28
|
* Configuration for the views that should be displayed at the top
|
|
23
29
|
* level of the navigation (e.g. in the home page or the navigation
|
|
@@ -41,15 +47,15 @@ export type NavigationController = {
|
|
|
41
47
|
* Get the collection configuration for a given path.
|
|
42
48
|
* The collection is resolved from the given path or alias.
|
|
43
49
|
*/
|
|
44
|
-
getCollection:
|
|
50
|
+
getCollection: (pathOrId: string, includeUserOverride?: boolean) => EC | undefined;
|
|
45
51
|
/**
|
|
46
|
-
* Get the collection configuration from its parent
|
|
52
|
+
* Get the collection configuration from its parent ids.
|
|
47
53
|
*/
|
|
48
|
-
getCollectionFromIds:
|
|
54
|
+
getCollectionFromIds: (ids: string[]) => EC | undefined;
|
|
49
55
|
/**
|
|
50
56
|
* Get the collection configuration from its parent path segments.
|
|
51
57
|
*/
|
|
52
|
-
getCollectionFromPaths:
|
|
58
|
+
getCollectionFromPaths: (pathSegments: string[]) => EC | undefined;
|
|
53
59
|
/**
|
|
54
60
|
* Default path under the navigation routes of the CMS will be created
|
|
55
61
|
*/
|
|
@@ -95,12 +101,6 @@ export type NavigationController = {
|
|
|
95
101
|
* @param pathWithAliases
|
|
96
102
|
*/
|
|
97
103
|
resolveAliasesFrom: (pathWithAliases: string) => string;
|
|
98
|
-
/**
|
|
99
|
-
* Location used as the base for routes.
|
|
100
|
-
* This is the location that will be used underneath, when the url changes while
|
|
101
|
-
* opening a side dialog
|
|
102
|
-
*/
|
|
103
|
-
baseLocation: string;
|
|
104
104
|
/**
|
|
105
105
|
* Call this method to recalculate the navigation
|
|
106
106
|
*/
|
|
@@ -144,6 +144,7 @@ export interface CMSView {
|
|
|
144
144
|
* You can use any of the icons in the Material specs:
|
|
145
145
|
* https://fonts.google.com/icons
|
|
146
146
|
* e.g. 'account_tree' or 'person'
|
|
147
|
+
* Find all the icons in https://firecms.co/docs/icons
|
|
147
148
|
*/
|
|
148
149
|
icon?: string;
|
|
149
150
|
/**
|
|
@@ -159,6 +160,7 @@ export interface CMSView {
|
|
|
159
160
|
/**
|
|
160
161
|
* Optional field used to group top level navigation entries under a
|
|
161
162
|
* navigation view.
|
|
163
|
+
* This prop is ignored for admin views.
|
|
162
164
|
*/
|
|
163
165
|
group?: string;
|
|
164
166
|
}
|
|
@@ -166,11 +168,11 @@ export interface TopNavigationEntry {
|
|
|
166
168
|
url: string;
|
|
167
169
|
name: string;
|
|
168
170
|
path: string;
|
|
169
|
-
type: "collection" | "view";
|
|
171
|
+
type: "collection" | "view" | "admin";
|
|
170
172
|
collection?: EntityCollection;
|
|
171
|
-
view
|
|
173
|
+
view?: CMSView;
|
|
172
174
|
description?: string;
|
|
173
|
-
group
|
|
175
|
+
group: string;
|
|
174
176
|
}
|
|
175
177
|
export type TopNavigationResult = {
|
|
176
178
|
navigationEntries: TopNavigationEntry[];
|
|
@@ -38,6 +38,10 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
38
38
|
* in a collection, the entity will be null.
|
|
39
39
|
*/
|
|
40
40
|
entity: Entity<M> | null;
|
|
41
|
+
/**
|
|
42
|
+
* Path of the collection e.g. 'products/12345/locales'
|
|
43
|
+
*/
|
|
44
|
+
path: string;
|
|
41
45
|
/**
|
|
42
46
|
* Path segments of the collection e.g. ['products', 'locales']
|
|
43
47
|
*/
|
|
@@ -60,4 +64,4 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
|
|
|
60
64
|
* based on the logged user or collection.
|
|
61
65
|
* @group Models
|
|
62
66
|
*/
|
|
63
|
-
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, UserType extends User = User, M extends object = InferCollectionType<EC>> = (({ pathSegments, user, collection, authController }: PermissionsBuilderProps<EC, UserType, M>) => Permissions);
|
|
67
|
+
export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, UserType extends User = User, M extends object = InferCollectionType<EC>> = (({ pathSegments, user, collection, authController }: PermissionsBuilderProps<EC, UserType, M>) => Permissions | undefined);
|
package/dist/types/plugins.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from "react";
|
|
2
2
|
import { FireCMSContext } from "./firecms_context";
|
|
3
|
-
import { CollectionActionsProps, EntityCollection } from "./collections";
|
|
3
|
+
import { CollectionActionsProps, EntityCollection, EntityTableController } from "./collections";
|
|
4
4
|
import { User } from "./user";
|
|
5
5
|
import { FieldProps, FormContext } from "./fields";
|
|
6
6
|
import { CMSType, Property } from "./properties";
|
|
@@ -11,41 +11,16 @@ import { ResolvedProperty } from "./resolved_entities";
|
|
|
11
11
|
* NOTE: This is a work in progress and the API is not stable yet.
|
|
12
12
|
* @group Core
|
|
13
13
|
*/
|
|
14
|
-
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
|
|
14
|
+
export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any, COL_ACTIONS_START__PROPS = any> = {
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Key of the plugin. This is used to identify the plugin in the CMS.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
key: string;
|
|
19
19
|
/**
|
|
20
20
|
* If this flag is set to true, no content will be shown in the CMS
|
|
21
21
|
* until the plugin is fully loaded.
|
|
22
22
|
*/
|
|
23
23
|
loading?: boolean;
|
|
24
|
-
collections?: {
|
|
25
|
-
/**
|
|
26
|
-
* Use this method to inject collections to the CMS.
|
|
27
|
-
* You receive the current collections as a parameter, and you can return
|
|
28
|
-
* a new list of collections.
|
|
29
|
-
* @see {@link joinCollectionLists}
|
|
30
|
-
* @param collections
|
|
31
|
-
*/
|
|
32
|
-
injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
|
|
33
|
-
/**
|
|
34
|
-
* Use this component to add custom actions to the entity collections
|
|
35
|
-
* toolbar.
|
|
36
|
-
*/
|
|
37
|
-
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
38
|
-
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
39
|
-
};
|
|
40
|
-
form?: {
|
|
41
|
-
provider?: {
|
|
42
|
-
Component: React.ComponentType<PropsWithChildren<FORM_PROPS & PluginFormActionProps<any, EC>>>;
|
|
43
|
-
props?: FORM_PROPS;
|
|
44
|
-
};
|
|
45
|
-
Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
46
|
-
fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
|
|
47
|
-
fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
|
|
48
|
-
};
|
|
49
24
|
/**
|
|
50
25
|
* You can use this prop to add higher order components to the CMS.
|
|
51
26
|
* The components will be added to the root of the CMS, so any component
|
|
@@ -97,6 +72,20 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
97
72
|
};
|
|
98
73
|
};
|
|
99
74
|
collectionView?: {
|
|
75
|
+
/**
|
|
76
|
+
* Use this component to add custom actions to the entity collections
|
|
77
|
+
* toolbar.
|
|
78
|
+
*/
|
|
79
|
+
CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
|
|
80
|
+
collectionActionsProps?: COL_ACTIONS_PROPS;
|
|
81
|
+
CollectionActionsStart?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS>[];
|
|
82
|
+
collectionActionsStartProps?: COL_ACTIONS_START__PROPS;
|
|
83
|
+
blockSearch?: (props: {
|
|
84
|
+
context: FireCMSContext;
|
|
85
|
+
path: string;
|
|
86
|
+
collection: EC;
|
|
87
|
+
parentCollectionIds?: string[];
|
|
88
|
+
}) => boolean;
|
|
100
89
|
showTextSearchBar?: (props: {
|
|
101
90
|
context: FireCMSContext;
|
|
102
91
|
path: string;
|
|
@@ -120,6 +109,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
120
109
|
parentCollectionIds: string[];
|
|
121
110
|
onHover: boolean;
|
|
122
111
|
collection: EC;
|
|
112
|
+
tableController: EntityTableController;
|
|
123
113
|
}>;
|
|
124
114
|
/**
|
|
125
115
|
* If you add this callback to your plugin, an add button will be added to the collection table.
|
|
@@ -129,8 +119,18 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
|
|
|
129
119
|
fullPath: string;
|
|
130
120
|
parentCollectionIds: string[];
|
|
131
121
|
collection: EC;
|
|
122
|
+
tableController: EntityTableController;
|
|
132
123
|
}>;
|
|
133
124
|
};
|
|
125
|
+
form?: {
|
|
126
|
+
provider?: {
|
|
127
|
+
Component: React.ComponentType<PropsWithChildren<FORM_PROPS & PluginFormActionProps<any, EC>>>;
|
|
128
|
+
props?: FORM_PROPS;
|
|
129
|
+
};
|
|
130
|
+
Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
|
|
131
|
+
fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
|
|
132
|
+
fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
|
|
133
|
+
};
|
|
134
134
|
};
|
|
135
135
|
/**
|
|
136
136
|
* Props passed to the {@link FireCMSPlugin.homePage.CollectionActions} method.
|
|
@@ -169,8 +169,8 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
|
|
|
169
169
|
property: Property<T> | ResolvedProperty<T>;
|
|
170
170
|
Field: React.ComponentType<FieldProps<T, any, M>>;
|
|
171
171
|
plugin: FireCMSPlugin;
|
|
172
|
-
path
|
|
173
|
-
collection
|
|
172
|
+
path?: string;
|
|
173
|
+
collection?: EC;
|
|
174
174
|
};
|
|
175
175
|
export interface PluginGenericProps<UserType extends User = User> {
|
|
176
176
|
context: FireCMSContext<UserType>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FieldProps } from "./fields";
|
|
3
3
|
import { PropertyPreviewProps } from "../preview";
|
|
4
|
-
import { EntityReference, EntityValues, GeoPoint } from "./entities";
|
|
4
|
+
import { EntityReference, EntityValues, GeoPoint, Vector } from "./entities";
|
|
5
5
|
import { ResolvedArrayProperty, ResolvedStringProperty } from "./resolved_entities";
|
|
6
6
|
import { FilterValues } from "./collections";
|
|
7
7
|
import { ChipColorKey, ChipColorScheme } from "@firecms/ui";
|
|
8
8
|
/**
|
|
9
9
|
* @group Entity properties
|
|
10
10
|
*/
|
|
11
|
-
export type DataType<T extends CMSType = CMSType> = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends Date ? "date" : T extends GeoPoint ? "geopoint" : T extends EntityReference ? "reference" : T extends Array<
|
|
11
|
+
export type DataType<T extends CMSType = CMSType> = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends Date ? "date" : T extends GeoPoint ? "geopoint" : T extends Vector ? "vector" : T extends EntityReference ? "reference" : T extends Array<any> ? "array" : T extends Record<string, any> ? "map" : never;
|
|
12
12
|
/**
|
|
13
13
|
* @group Entity properties
|
|
14
14
|
*/
|
|
@@ -20,7 +20,7 @@ export type AnyProperty = StringProperty | NumberProperty | BooleanProperty | Da
|
|
|
20
20
|
/**
|
|
21
21
|
* @group Entity properties
|
|
22
22
|
*/
|
|
23
|
-
export type Property<T extends CMSType =
|
|
23
|
+
export type Property<T extends CMSType = any> = T extends string ? StringProperty : T extends number ? NumberProperty : T extends boolean ? BooleanProperty : T extends Date ? DateProperty : T extends GeoPoint ? GeopointProperty : T extends EntityReference ? ReferenceProperty : T extends Array<CMSType> ? ArrayProperty<T> : T extends Record<string, any> ? MapProperty<T> : AnyProperty;
|
|
24
24
|
/**
|
|
25
25
|
* Interface including all common properties of a CMS property
|
|
26
26
|
* @group Entity properties
|
|
@@ -97,7 +97,7 @@ export interface BaseProperty<T extends CMSType, CustomProps = any> {
|
|
|
97
97
|
/**
|
|
98
98
|
* This value will be set by default for new entities.
|
|
99
99
|
*/
|
|
100
|
-
defaultValue?: T;
|
|
100
|
+
defaultValue?: T | null;
|
|
101
101
|
/**
|
|
102
102
|
* Should this property be editable. If set to true, the user will be able to modify the property and
|
|
103
103
|
* save the new config. The saved config will then become the source of truth.
|
|
@@ -207,7 +207,7 @@ export type PropertyBuilderProps<M extends Record<string, any> = any> = {
|
|
|
207
207
|
* current value of the property, as well as the path and entity ID.
|
|
208
208
|
* @group Entity properties
|
|
209
209
|
*/
|
|
210
|
-
export type PropertyBuilder<T extends CMSType = any, M extends Record<string, any> = any> = ({ values, previousValues, propertyValue, path, entityId }: PropertyBuilderProps<M>) => Property<T> | null;
|
|
210
|
+
export type PropertyBuilder<T extends CMSType = any, M extends Record<string, any> = any> = ({ values, previousValues, propertyValue, index, path, entityId }: PropertyBuilderProps<M>) => Property<T> | null;
|
|
211
211
|
/**
|
|
212
212
|
* @group Entity properties
|
|
213
213
|
*/
|
|
@@ -306,7 +306,7 @@ export interface StringProperty extends BaseProperty<string> {
|
|
|
306
306
|
/**
|
|
307
307
|
* @group Entity properties
|
|
308
308
|
*/
|
|
309
|
-
export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType =
|
|
309
|
+
export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = any> extends BaseProperty<T> {
|
|
310
310
|
dataType: "array";
|
|
311
311
|
/**
|
|
312
312
|
* The property of this array.
|
|
@@ -474,6 +474,14 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
|
|
|
474
474
|
* specified values are considered.
|
|
475
475
|
*/
|
|
476
476
|
previewProperties?: string[];
|
|
477
|
+
/**
|
|
478
|
+
* Should the reference include the ID of the entity. Defaults to `true`
|
|
479
|
+
*/
|
|
480
|
+
includeId?: boolean;
|
|
481
|
+
/**
|
|
482
|
+
* Should the reference include a link to the entity (open the entity details). Defaults to `true`
|
|
483
|
+
*/
|
|
484
|
+
includeEntityLink?: boolean;
|
|
477
485
|
}
|
|
478
486
|
/**
|
|
479
487
|
* Rules to validate any property. Some properties have specific rules
|
|
@@ -552,7 +560,7 @@ export interface ArrayPropertyValidationSchema extends PropertyValidationSchema
|
|
|
552
560
|
* Additional configuration related to Storage related fields
|
|
553
561
|
* @group Entity properties
|
|
554
562
|
*/
|
|
555
|
-
export
|
|
563
|
+
export type StorageConfig = {
|
|
556
564
|
/**
|
|
557
565
|
* File MIME types that can be uploaded to this reference. Don't specify for
|
|
558
566
|
* all.
|
|
@@ -575,13 +583,13 @@ export interface StorageConfig {
|
|
|
575
583
|
* You can use this prop to customize the uploaded filename.
|
|
576
584
|
* You can use a function as a callback or a string where you
|
|
577
585
|
* specify some placeholders that get replaced with the corresponding values.
|
|
578
|
-
* - {file} - Full file name
|
|
579
|
-
* - {file.name} - Name of the file without extension
|
|
580
|
-
* - {file.ext} - Extension of the file
|
|
581
|
-
* - {rand} - Random value used to avoid name collisions
|
|
582
|
-
* - {entityId} - ID of the entity
|
|
583
|
-
* - {propertyKey} - ID of this property
|
|
584
|
-
* - {path} - Path of this entity
|
|
586
|
+
* - `{file}` - Full file name
|
|
587
|
+
* - `{file.name}` - Name of the file without extension
|
|
588
|
+
* - `{file.ext}` - Extension of the file
|
|
589
|
+
* - `{rand}` - Random value used to avoid name collisions
|
|
590
|
+
* - `{entityId}` - ID of the entity
|
|
591
|
+
* - `{propertyKey}` - ID of this property
|
|
592
|
+
* - `{path}` - Path of this entity
|
|
585
593
|
*
|
|
586
594
|
* @param context
|
|
587
595
|
*/
|
|
@@ -591,13 +599,13 @@ export interface StorageConfig {
|
|
|
591
599
|
*
|
|
592
600
|
* You can use a function as a callback or a string where you
|
|
593
601
|
* specify some placeholders that get replaced with the corresponding values.
|
|
594
|
-
* - {file} - Full file name
|
|
595
|
-
* - {file.name} - Name of the file without extension
|
|
596
|
-
* - {file.ext} - Extension of the file
|
|
597
|
-
* - {rand} - Random value used to avoid name collisions
|
|
598
|
-
* - {entityId} - ID of the entity
|
|
599
|
-
* - {propertyKey} - ID of this property
|
|
600
|
-
* - {path} - Path of this entity
|
|
602
|
+
* - `{file}` - Full file name
|
|
603
|
+
* - `{file.name}` - Name of the file without extension
|
|
604
|
+
* - `{file.ext}` - Extension of the file
|
|
605
|
+
* - `{rand}` - Random value used to avoid name collisions
|
|
606
|
+
* - `{entityId}` - ID of the entity
|
|
607
|
+
* - `{propertyKey}` - ID of this property
|
|
608
|
+
* - `{path}` - Path of this entity
|
|
601
609
|
*/
|
|
602
610
|
storagePath: string | ((context: UploadedFileContext) => string);
|
|
603
611
|
/**
|
|
@@ -620,7 +628,12 @@ export interface StorageConfig {
|
|
|
620
628
|
* after it has been resolved.
|
|
621
629
|
*/
|
|
622
630
|
postProcess?: (pathOrUrl: string) => Promise<string>;
|
|
623
|
-
|
|
631
|
+
/**
|
|
632
|
+
* You can use this prop in order to provide a custom preview URL.
|
|
633
|
+
* Useful when the file's path is different from the original field value
|
|
634
|
+
*/
|
|
635
|
+
previewUrl?: (fileName: string) => string;
|
|
636
|
+
};
|
|
624
637
|
/**
|
|
625
638
|
* @group Entity properties
|
|
626
639
|
*/
|
|
@@ -644,7 +657,7 @@ export interface UploadedFileContext {
|
|
|
644
657
|
/**
|
|
645
658
|
* Entity path. E.g. `products/PID/locales`
|
|
646
659
|
*/
|
|
647
|
-
path
|
|
660
|
+
path?: string;
|
|
648
661
|
/**
|
|
649
662
|
* Values of the current entity
|
|
650
663
|
*/
|
|
@@ -9,7 +9,7 @@ export type PropertyConfig<T extends CMSType = any> = {
|
|
|
9
9
|
/**
|
|
10
10
|
* Key used to identify this property config.
|
|
11
11
|
*/
|
|
12
|
-
key: string;
|
|
12
|
+
key: PropertyConfigId | string;
|
|
13
13
|
/**
|
|
14
14
|
* Name of this field type.
|
|
15
15
|
* This is not the name of the property.
|
|
@@ -39,4 +39,4 @@ export type PropertyConfig<T extends CMSType = any> = {
|
|
|
39
39
|
*/
|
|
40
40
|
description?: string;
|
|
41
41
|
};
|
|
42
|
-
export type
|
|
42
|
+
export type PropertyConfigId = "text_field" | "multiline" | "markdown" | "url" | "email" | "select" | "multi_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "group" | "key_value" | "reference" | "multi_references" | "switch" | "date_time" | "repeat" | "custom_array" | "block";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Permissions } from "../index";
|
|
2
|
+
export type Role = {
|
|
3
|
+
/**
|
|
4
|
+
* ID of the role
|
|
5
|
+
*/
|
|
6
|
+
id: string;
|
|
7
|
+
/**
|
|
8
|
+
* Name of the role
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* If this flag is true, the user can perform any action
|
|
13
|
+
*/
|
|
14
|
+
isAdmin?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Default permissions for all collections for this role.
|
|
17
|
+
* You can override this values at the collection level using
|
|
18
|
+
* {@link collectionPermissions}
|
|
19
|
+
*/
|
|
20
|
+
defaultPermissions?: Permissions;
|
|
21
|
+
/**
|
|
22
|
+
* Record of stripped collection ids to their permissions.
|
|
23
|
+
* @see stripCollectionPath
|
|
24
|
+
*/
|
|
25
|
+
collectionPermissions?: Record<string, Permissions>;
|
|
26
|
+
config?: {
|
|
27
|
+
createCollections?: boolean;
|
|
28
|
+
editCollections?: boolean | "own";
|
|
29
|
+
deleteCollections?: boolean | "own";
|
|
30
|
+
};
|
|
31
|
+
};
|