@rebasepro/core 0.0.1-canary.0
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/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/app/AppBar.d.ts +12 -0
- package/dist/app/Drawer.d.ts +19 -0
- package/dist/app/Scaffold.d.ts +34 -0
- package/dist/app/index.d.ts +4 -0
- package/dist/app/useApp.d.ts +17 -0
- package/dist/components/AIIcon.d.ts +16 -0
- package/dist/components/AdminModeSyncer.d.ts +17 -0
- package/dist/components/ArrayContainer.d.ts +59 -0
- package/dist/components/CircularProgressCenter.d.ts +11 -0
- package/dist/components/ClearFilterSortButton.d.ts +5 -0
- package/dist/components/ConfirmationDialog.d.ts +9 -0
- package/dist/components/Debug/UIReferenceView.d.ts +1 -0
- package/dist/components/Debug/UIStyleGuide.d.ts +1 -0
- package/dist/components/DeleteEntityDialog.d.ts +12 -0
- package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +37 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +27 -0
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +128 -0
- package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +25 -0
- package/dist/components/EntityCollectionTable/column_utils.d.ts +15 -0
- package/dist/components/EntityCollectionTable/fields/TableMultipleRelationField.d.ts +20 -0
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +21 -0
- package/dist/components/EntityCollectionTable/fields/TableRelationField.d.ts +21 -0
- package/dist/components/EntityCollectionTable/fields/TableRelationSelectorField.d.ts +20 -0
- package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +32 -0
- package/dist/components/EntityCollectionTable/index.d.ts +6 -0
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +16 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +32 -0
- package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
- package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +26 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
- package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
- package/dist/components/EntityCollectionView/Board.d.ts +2 -0
- package/dist/components/EntityCollectionView/BoardColumn.d.ts +42 -0
- package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +9 -0
- package/dist/components/EntityCollectionView/BoardSortableList.d.ts +14 -0
- package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +26 -0
- package/dist/components/EntityCollectionView/EntityCard.d.ts +19 -0
- package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +20 -0
- package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +31 -0
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +54 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +15 -0
- package/dist/components/EntityCollectionView/FiltersDialog.d.ts +14 -0
- package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +44 -0
- package/dist/components/EntityCollectionView/board_types.d.ts +105 -0
- package/dist/components/EntityCollectionView/useBoardDataController.d.ts +60 -0
- package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
- package/dist/components/EntityCollectionView/utils.d.ts +3 -0
- package/dist/components/EntityJsonPreview.d.ts +3 -0
- package/dist/components/EntityPreview.d.ts +54 -0
- package/dist/components/EntityView.d.ts +11 -0
- package/dist/components/ErrorBoundary.d.ts +11 -0
- package/dist/components/ErrorTooltip.d.ts +2 -0
- package/dist/components/ErrorView.d.ts +21 -0
- package/dist/components/FieldCaption.d.ts +5 -0
- package/dist/components/HomePage/ContentHomePage.d.ts +11 -0
- package/dist/components/HomePage/FavouritesView.d.ts +3 -0
- package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
- package/dist/components/HomePage/NavigationCard.d.ts +10 -0
- package/dist/components/HomePage/NavigationCardBinding.d.ts +18 -0
- package/dist/components/HomePage/NavigationGroup.d.ts +11 -0
- package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
- package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
- package/dist/components/HomePage/StudioHomePage.d.ts +9 -0
- package/dist/components/HomePage/index.d.ts +5 -0
- package/dist/components/NotFoundPage.d.ts +1 -0
- package/dist/components/PropertyCollectionView.d.ts +22 -0
- package/dist/components/PropertyConfigBadge.d.ts +6 -0
- package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
- package/dist/components/RebaseLogo.d.ts +7 -0
- package/dist/components/ReferenceTable/EntitySelectionTable.d.ts +58 -0
- package/dist/components/ReferenceWidget.d.ts +29 -0
- package/dist/components/RelationSelector.d.ts +32 -0
- package/dist/components/SearchIconsView.d.ts +5 -0
- package/dist/components/SelectableTable/SelectableTable.d.ts +89 -0
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
- package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +9 -0
- package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +12 -0
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +15 -0
- package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +12 -0
- package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +13 -0
- package/dist/components/UnsavedChangesDialog.d.ts +9 -0
- package/dist/components/UserDisplay.d.ts +7 -0
- package/dist/components/UserSettingsView.d.ts +1 -0
- package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
- package/dist/components/VirtualTable/VirtualTableCell.d.ts +20 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +29 -0
- package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
- package/dist/components/VirtualTable/VirtualTableProps.d.ts +239 -0
- package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
- package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +12 -0
- package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +9 -0
- package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
- package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
- package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
- package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
- package/dist/components/VirtualTable/index.d.ts +3 -0
- package/dist/components/VirtualTable/types.d.ts +37 -0
- package/dist/components/admin/RoleChip.d.ts +4 -0
- package/dist/components/admin/RolesView.d.ts +4 -0
- package/dist/components/admin/UsersView.d.ts +4 -0
- package/dist/components/admin/index.d.ts +3 -0
- package/dist/components/common/default_entity_actions.d.ts +4 -0
- package/dist/components/common/index.d.ts +6 -0
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +58 -0
- package/dist/components/common/useColumnsIds.d.ts +6 -0
- package/dist/components/common/useDataSourceTableController.d.ts +44 -0
- package/dist/components/common/useDebouncedCallback.d.ts +1 -0
- package/dist/components/common/useDebouncedData.d.ts +9 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/common/useTableSearchHelper.d.ts +11 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/contexts/AdminModeController.d.ts +4 -0
- package/dist/contexts/AnalyticsContext.d.ts +3 -0
- package/dist/contexts/AuthControllerContext.d.ts +3 -0
- package/dist/contexts/BreacrumbsContext.d.ts +8 -0
- package/dist/contexts/CustomizationControllerContext.d.ts +3 -0
- package/dist/contexts/DataSourceContext.d.ts +3 -0
- package/dist/contexts/DialogsProvider.d.ts +4 -0
- package/dist/contexts/EffectiveRoleController.d.ts +4 -0
- package/dist/contexts/InternalUserManagementContext.d.ts +3 -0
- package/dist/contexts/ModeController.d.ts +4 -0
- package/dist/contexts/NavigationContext.d.ts +3 -0
- package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
- package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
- package/dist/contexts/SnackbarProvider.d.ts +2 -0
- package/dist/contexts/StorageSourceContext.d.ts +3 -0
- package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/dist/contexts/index.d.ts +15 -0
- package/dist/core/DefaultAppBar.d.ts +29 -0
- package/dist/core/DefaultDrawer.d.ts +29 -0
- package/dist/core/DrawerNavigationGroup.d.ts +45 -0
- package/dist/core/DrawerNavigationItem.d.ts +10 -0
- package/dist/core/EntityEditView.d.ts +47 -0
- package/dist/core/EntityEditViewFormActions.d.ts +2 -0
- package/dist/core/EntitySidePanel.d.ts +10 -0
- package/dist/core/Rebase.d.ts +13 -0
- package/dist/core/RebaseRouter.d.ts +4 -0
- package/dist/core/RebaseRoutes.d.ts +17 -0
- package/dist/core/SideDialogs.d.ts +25 -0
- package/dist/core/field_configs.d.ts +6 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/form/EntityForm.d.ts +7 -0
- package/dist/form/EntityFormActions.d.ts +2 -0
- package/dist/form/PropertyFieldBinding.d.ts +30 -0
- package/dist/form/components/ErrorFocus.d.ts +4 -0
- package/dist/form/components/FieldHelperText.d.ts +12 -0
- package/dist/form/components/FormEntry.d.ts +6 -0
- package/dist/form/components/FormLayout.d.ts +5 -0
- package/dist/form/components/LabelWithIcon.d.ts +14 -0
- package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
- package/dist/form/components/LocalChangesMenu.d.ts +11 -0
- package/dist/form/components/StorageItemPreview.d.ts +13 -0
- package/dist/form/components/StorageUploadProgress.d.ts +10 -0
- package/dist/form/components/index.d.ts +5 -0
- package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
- package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
- package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/MultipleRelationFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/RelationFieldBinding.d.ts +2 -0
- package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/SelectFieldBinding.d.ts +10 -0
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +19 -0
- package/dist/form/field_bindings/SwitchFieldBinding.d.ts +9 -0
- package/dist/form/field_bindings/TextFieldBinding.d.ts +8 -0
- package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
- package/dist/form/index.d.ts +20 -0
- package/dist/form/useClearRestoreValue.d.ts +13 -0
- package/dist/form/validation.d.ts +26 -0
- package/dist/hooks/ApiConfigContext.d.ts +24 -0
- package/dist/hooks/data/delete.d.ts +33 -0
- package/dist/hooks/data/save.d.ts +37 -0
- package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
- package/dist/hooks/data/useDataOrder.d.ts +12 -0
- package/dist/hooks/data/useDataSource.d.ts +6 -0
- package/dist/hooks/data/useEntityFetch.d.ts +29 -0
- package/dist/hooks/data/useRelationSelector.d.ts +45 -0
- package/dist/hooks/index.d.ts +41 -0
- package/dist/hooks/navigation/contexts/CMSUrlContext.d.ts +4 -0
- package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +4 -0
- package/dist/hooks/navigation/contexts/NavigationStateContext.d.ts +4 -0
- package/dist/hooks/navigation/contexts/index.d.ts +3 -0
- package/dist/hooks/navigation/useBuildCMSUrlController.d.ts +6 -0
- package/dist/hooks/navigation/useBuildCollectionRegistryController.d.ts +7 -0
- package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +32 -0
- package/dist/hooks/navigation/useNavigationRegistry.d.ts +10 -0
- package/dist/hooks/navigation/useNavigationResolution.d.ts +5 -0
- package/dist/hooks/navigation/useNavigationURLs.d.ts +11 -0
- package/dist/hooks/navigation/useResolvedCollections.d.ts +26 -0
- package/dist/hooks/navigation/useResolvedViews.d.ts +28 -0
- package/dist/hooks/navigation/useTopLevelNavigation.d.ts +26 -0
- package/dist/hooks/navigation/utils.d.ts +12 -0
- package/dist/hooks/useAdminModeController.d.ts +19 -0
- package/dist/hooks/useAnalyticsController.d.ts +5 -0
- package/dist/hooks/useAuthController.d.ts +11 -0
- package/dist/hooks/useBackendStorageSource.d.ts +30 -0
- package/dist/hooks/useBreadcrumbsController.d.ts +42 -0
- package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/dist/hooks/useBuildAdminModeController.d.ts +6 -0
- package/dist/hooks/useBuildEffectiveRoleController.d.ts +8 -0
- package/dist/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/dist/hooks/useBuildModeController.d.ts +6 -0
- package/dist/hooks/useBuildNavigationController.d.ts +16 -0
- package/dist/hooks/useClipboard.d.ts +57 -0
- package/dist/hooks/useCollapsedGroups.d.ts +12 -0
- package/dist/hooks/useCustomizationController.d.ts +11 -0
- package/dist/hooks/useDialogsController.d.ts +11 -0
- package/dist/hooks/useEffectiveRoleController.d.ts +7 -0
- package/dist/hooks/useEntitySelectionDialog.d.ts +18 -0
- package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
- package/dist/hooks/useLargeLayout.d.ts +1 -0
- package/dist/hooks/useModeController.d.ts +19 -0
- package/dist/hooks/usePermissions.d.ts +11 -0
- package/dist/hooks/useRebaseContext.d.ts +11 -0
- package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
- package/dist/hooks/useSideDialogsController.d.ts +18 -0
- package/dist/hooks/useSideEntityController.d.ts +12 -0
- package/dist/hooks/useSnackbarController.d.ts +20 -0
- package/dist/hooks/useStorageSource.d.ts +6 -0
- package/dist/hooks/useUnsavedChangesDialog.d.ts +12 -0
- package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/dist/hooks/useValidateAuthenticator.d.ts +21 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.es.js +34745 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.umd.js +34751 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/internal/common.d.ts +3 -0
- package/dist/internal/useBuildDataSource.d.ts +12 -0
- package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
- package/dist/internal/useBuildSideEntityController.d.ts +4 -0
- package/dist/internal/useRestoreScroll.d.ts +6 -0
- package/dist/preview/PropertyPreview.d.ts +6 -0
- package/dist/preview/components/ArrayEnumPreview.d.ts +10 -0
- package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
- package/dist/preview/components/BooleanPreview.d.ts +10 -0
- package/dist/preview/components/DatePreview.d.ts +17 -0
- package/dist/preview/components/EmptyValue.d.ts +6 -0
- package/dist/preview/components/EnumValuesChip.d.ts +13 -0
- package/dist/preview/components/ImagePreview.d.ts +16 -0
- package/dist/preview/components/ReferencePreview.d.ts +16 -0
- package/dist/preview/components/RelationPreview.d.ts +16 -0
- package/dist/preview/components/StorageThumbnail.d.ts +15 -0
- package/dist/preview/components/UrlComponentPreview.d.ts +13 -0
- package/dist/preview/components/UserPreview.d.ts +8 -0
- package/dist/preview/index.d.ts +24 -0
- package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfRelationsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
- package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
- package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
- package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
- package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +13 -0
- package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
- package/dist/preview/util.d.ts +6 -0
- package/dist/routes/CustomCMSRoute.d.ts +4 -0
- package/dist/routes/RebaseRoute.d.ts +1 -0
- package/dist/routes/index.d.ts +2 -0
- package/dist/util/createFormexStub.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +27 -0
- package/dist/util/enums.d.ts +5 -0
- package/dist/util/icon_list.d.ts +5 -0
- package/dist/util/icon_synonyms.d.ts +1853 -0
- package/dist/util/icons.d.ts +16 -0
- package/dist/util/index.d.ts +11 -0
- package/dist/util/previews.d.ts +3 -0
- package/dist/util/property_utils.d.ts +23 -0
- package/dist/util/useDebouncedCallback.d.ts +1 -0
- package/dist/util/useStorageUploadController.d.ts +36 -0
- package/dist/util/useTraceUpdate.d.ts +2 -0
- package/dist/vitePlugin.d.ts +16 -0
- package/package.json +165 -0
- package/src/app/AppBar.tsx +18 -0
- package/src/app/Drawer.tsx +30 -0
- package/src/app/Scaffold.tsx +238 -0
- package/src/app/index.ts +4 -0
- package/src/app/useApp.tsx +36 -0
- package/src/components/AIIcon.tsx +39 -0
- package/src/components/AdminModeSyncer.tsx +47 -0
- package/src/components/ArrayContainer.tsx +549 -0
- package/src/components/CircularProgressCenter.tsx +26 -0
- package/src/components/ClearFilterSortButton.tsx +44 -0
- package/src/components/ConfirmationDialog.tsx +46 -0
- package/src/components/Debug/UIReferenceView.tsx +710 -0
- package/src/components/Debug/UIStyleGuide.tsx +164 -0
- package/src/components/DeleteEntityDialog.tsx +181 -0
- package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +225 -0
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +383 -0
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +180 -0
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +561 -0
- package/src/components/EntityCollectionTable/column_utils.tsx +74 -0
- package/src/components/EntityCollectionTable/fields/TableMultipleRelationField.tsx +122 -0
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +169 -0
- package/src/components/EntityCollectionTable/fields/TableRelationField.tsx +177 -0
- package/src/components/EntityCollectionTable/fields/TableRelationSelectorField.tsx +42 -0
- package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +315 -0
- package/src/components/EntityCollectionTable/index.tsx +12 -0
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +90 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +311 -0
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +82 -0
- package/src/components/EntityCollectionTable/internal/common.tsx +72 -0
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +425 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +96 -0
- package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
- package/src/components/EntityCollectionView/Board.tsx +324 -0
- package/src/components/EntityCollectionView/BoardColumn.tsx +158 -0
- package/src/components/EntityCollectionView/BoardColumnTitle.tsx +45 -0
- package/src/components/EntityCollectionView/BoardSortableList.tsx +172 -0
- package/src/components/EntityCollectionView/EntityBoardCard.tsx +200 -0
- package/src/components/EntityCollectionView/EntityCard.tsx +225 -0
- package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +746 -0
- package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +254 -0
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +1220 -0
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +142 -0
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +131 -0
- package/src/components/EntityCollectionView/FiltersDialog.tsx +249 -0
- package/src/components/EntityCollectionView/ViewModeToggle.tsx +194 -0
- package/src/components/EntityCollectionView/board_types.ts +113 -0
- package/src/components/EntityCollectionView/useBoardDataController.tsx +490 -0
- package/src/components/EntityCollectionView/useSelectionController.tsx +43 -0
- package/src/components/EntityCollectionView/utils.ts +19 -0
- package/src/components/EntityJsonPreview.tsx +66 -0
- package/src/components/EntityPreview.tsx +367 -0
- package/src/components/EntityView.tsx +66 -0
- package/src/components/ErrorBoundary.tsx +40 -0
- package/src/components/ErrorTooltip.tsx +12 -0
- package/src/components/ErrorView.tsx +69 -0
- package/src/components/FieldCaption.tsx +14 -0
- package/src/components/HomePage/ContentHomePage.tsx +634 -0
- package/src/components/HomePage/FavouritesView.tsx +59 -0
- package/src/components/HomePage/HomePageDnD.tsx +702 -0
- package/src/components/HomePage/NavigationCard.tsx +80 -0
- package/src/components/HomePage/NavigationCardBinding.tsx +111 -0
- package/src/components/HomePage/NavigationGroup.tsx +154 -0
- package/src/components/HomePage/RenameGroupDialog.tsx +121 -0
- package/src/components/HomePage/SmallNavigationCard.tsx +45 -0
- package/src/components/HomePage/StudioHomePage.tsx +231 -0
- package/src/components/HomePage/index.tsx +6 -0
- package/src/components/NotFoundPage.tsx +25 -0
- package/src/components/PropertyCollectionView.tsx +333 -0
- package/src/components/PropertyConfigBadge.tsx +27 -0
- package/src/components/PropertyIdCopyTooltip.tsx +47 -0
- package/src/components/RebaseLogo.tsx +29 -0
- package/src/components/ReferenceTable/EntitySelectionTable.tsx +371 -0
- package/src/components/ReferenceWidget.tsx +152 -0
- package/src/components/RelationSelector.tsx +518 -0
- package/src/components/SearchIconsView.tsx +78 -0
- package/src/components/SelectableTable/SelectableTable.tsx +344 -0
- package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +49 -0
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +126 -0
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +203 -0
- package/src/components/SelectableTable/filters/RelationFilterField.tsx +138 -0
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +217 -0
- package/src/components/UnsavedChangesDialog.tsx +45 -0
- package/src/components/UserDisplay.tsx +55 -0
- package/src/components/UserSettingsView.tsx +220 -0
- package/src/components/VirtualTable/VirtualTable.performance.test.tsx +386 -0
- package/src/components/VirtualTable/VirtualTable.tsx +625 -0
- package/src/components/VirtualTable/VirtualTableCell.tsx +58 -0
- package/src/components/VirtualTable/VirtualTableHeader.tsx +275 -0
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +249 -0
- package/src/components/VirtualTable/VirtualTableProps.tsx +298 -0
- package/src/components/VirtualTable/VirtualTableRow.tsx +52 -0
- package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +39 -0
- package/src/components/VirtualTable/fields/VirtualTableInput.tsx +93 -0
- package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +83 -0
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +133 -0
- package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
- package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +111 -0
- package/src/components/VirtualTable/index.tsx +3 -0
- package/src/components/VirtualTable/types.tsx +46 -0
- package/src/components/admin/RoleChip.tsx +23 -0
- package/src/components/admin/RolesView.tsx +408 -0
- package/src/components/admin/UsersView.tsx +353 -0
- package/src/components/admin/index.ts +3 -0
- package/src/components/common/default_entity_actions.tsx +144 -0
- package/src/components/common/index.ts +6 -0
- package/src/components/common/table_height.tsx +21 -0
- package/src/components/common/types.tsx +61 -0
- package/src/components/common/useColumnsIds.tsx +210 -0
- package/src/components/common/useDataSourceTableController.tsx +480 -0
- package/src/components/common/useDebouncedCallback.tsx +20 -0
- package/src/components/common/useDebouncedData.ts +49 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/common/useTableSearchHelper.ts +75 -0
- package/src/components/index.tsx +49 -0
- package/src/contexts/AdminModeController.tsx +11 -0
- package/src/contexts/AnalyticsContext.tsx +4 -0
- package/src/contexts/AuthControllerContext.tsx +4 -0
- package/src/contexts/BreacrumbsContext.tsx +45 -0
- package/src/contexts/CustomizationControllerContext.tsx +4 -0
- package/src/contexts/DataSourceContext.tsx +4 -0
- package/src/contexts/DialogsProvider.tsx +53 -0
- package/src/contexts/EffectiveRoleController.tsx +11 -0
- package/src/contexts/InternalUserManagementContext.tsx +4 -0
- package/src/contexts/ModeController.tsx +11 -0
- package/src/contexts/NavigationContext.tsx +4 -0
- package/src/contexts/SideDialogsControllerContext.tsx +4 -0
- package/src/contexts/SideEntityControllerContext.tsx +4 -0
- package/src/contexts/SnackbarProvider.tsx +14 -0
- package/src/contexts/StorageSourceContext.tsx +4 -0
- package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
- package/src/contexts/index.ts +15 -0
- package/src/core/DefaultAppBar.tsx +274 -0
- package/src/core/DefaultDrawer.tsx +267 -0
- package/src/core/DrawerNavigationGroup.tsx +117 -0
- package/src/core/DrawerNavigationItem.tsx +65 -0
- package/src/core/EntityEditView.tsx +590 -0
- package/src/core/EntityEditViewFormActions.tsx +343 -0
- package/src/core/EntitySidePanel.tsx +173 -0
- package/src/core/Rebase.tsx +229 -0
- package/src/core/RebaseRouter.tsx +17 -0
- package/src/core/RebaseRoutes.tsx +47 -0
- package/src/core/SideDialogs.tsx +200 -0
- package/src/core/field_configs.tsx +443 -0
- package/src/core/index.tsx +14 -0
- package/src/form/EntityForm.tsx +820 -0
- package/src/form/EntityFormActions.tsx +201 -0
- package/src/form/PropertyFieldBinding.tsx +348 -0
- package/src/form/components/ErrorFocus.tsx +44 -0
- package/src/form/components/FieldHelperText.tsx +45 -0
- package/src/form/components/FormEntry.tsx +22 -0
- package/src/form/components/FormLayout.tsx +16 -0
- package/src/form/components/LabelWithIcon.tsx +43 -0
- package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
- package/src/form/components/LocalChangesMenu.tsx +144 -0
- package/src/form/components/StorageItemPreview.tsx +79 -0
- package/src/form/components/StorageUploadProgress.tsx +105 -0
- package/src/form/components/index.tsx +5 -0
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +105 -0
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +163 -0
- package/src/form/field_bindings/BlockFieldBinding.tsx +268 -0
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +70 -0
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +567 -0
- package/src/form/field_bindings/MapFieldBinding.tsx +156 -0
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +146 -0
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +120 -0
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +151 -0
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +64 -0
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +134 -0
- package/src/form/field_bindings/RelationFieldBinding.tsx +176 -0
- package/src/form/field_bindings/RepeatFieldBinding.tsx +136 -0
- package/src/form/field_bindings/SelectFieldBinding.tsx +107 -0
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +490 -0
- package/src/form/field_bindings/SwitchFieldBinding.tsx +64 -0
- package/src/form/field_bindings/TextFieldBinding.tsx +153 -0
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +96 -0
- package/src/form/index.tsx +27 -0
- package/src/form/useClearRestoreValue.tsx +35 -0
- package/src/form/validation.ts +532 -0
- package/src/hooks/ApiConfigContext.tsx +40 -0
- package/src/hooks/data/delete.ts +77 -0
- package/src/hooks/data/save.ts +75 -0
- package/src/hooks/data/useCollectionFetch.tsx +148 -0
- package/src/hooks/data/useDataOrder.ts +26 -0
- package/src/hooks/data/useDataSource.tsx +22 -0
- package/src/hooks/data/useEntityFetch.tsx +121 -0
- package/src/hooks/data/useRelationSelector.tsx +205 -0
- package/src/hooks/index.tsx +51 -0
- package/src/hooks/navigation/contexts/CMSUrlContext.tsx +24 -0
- package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +19 -0
- package/src/hooks/navigation/contexts/NavigationStateContext.tsx +15 -0
- package/src/hooks/navigation/contexts/index.ts +14 -0
- package/src/hooks/navigation/useBuildCMSUrlController.tsx +68 -0
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +150 -0
- package/src/hooks/navigation/useBuildNavigationStateController.tsx +135 -0
- package/src/hooks/navigation/useNavigationRegistry.ts +142 -0
- package/src/hooks/navigation/useNavigationResolution.ts +98 -0
- package/src/hooks/navigation/useNavigationURLs.ts +56 -0
- package/src/hooks/navigation/useResolvedCollections.ts +139 -0
- package/src/hooks/navigation/useResolvedViews.tsx +204 -0
- package/src/hooks/navigation/useTopLevelNavigation.ts +265 -0
- package/src/hooks/navigation/utils.ts +177 -0
- package/src/hooks/useAdminModeController.tsx +23 -0
- package/src/hooks/useAnalyticsController.tsx +8 -0
- package/src/hooks/useAuthController.tsx +14 -0
- package/src/hooks/useBackendStorageSource.ts +276 -0
- package/src/hooks/useBreadcrumbsController.tsx +49 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
- package/src/hooks/useBuildAdminModeController.tsx +24 -0
- package/src/hooks/useBuildEffectiveRoleController.tsx +30 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +65 -0
- package/src/hooks/useBuildModeController.tsx +71 -0
- package/src/hooks/useBuildNavigationController.tsx +341 -0
- package/src/hooks/useClipboard.tsx +158 -0
- package/src/hooks/useCollapsedGroups.ts +72 -0
- package/src/hooks/useCustomizationController.tsx +14 -0
- package/src/hooks/useDialogsController.tsx +14 -0
- package/src/hooks/useEffectiveRoleController.tsx +10 -0
- package/src/hooks/useEntitySelectionDialog.tsx +56 -0
- package/src/hooks/useInternalUserManagementController.tsx +17 -0
- package/src/hooks/useLargeLayout.tsx +65 -0
- package/src/hooks/useModeController.tsx +23 -0
- package/src/hooks/usePermissions.ts +43 -0
- package/src/hooks/useRebaseContext.tsx +86 -0
- package/src/hooks/useResolvedNavigationFrom.tsx +158 -0
- package/src/hooks/useSideDialogsController.tsx +21 -0
- package/src/hooks/useSideEntityController.tsx +15 -0
- package/src/hooks/useSnackbarController.tsx +52 -0
- package/src/hooks/useStorageSource.tsx +14 -0
- package/src/hooks/useUnsavedChangesDialog.tsx +62 -0
- package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
- package/src/hooks/useValidateAuthenticator.tsx +115 -0
- package/src/index.ts +17 -0
- package/src/internal/common.tsx +5 -0
- package/src/internal/useBuildDataSource.ts +380 -0
- package/src/internal/useBuildSideDialogsController.tsx +135 -0
- package/src/internal/useBuildSideEntityController.tsx +309 -0
- package/src/internal/useRestoreScroll.tsx +60 -0
- package/src/preview/PropertyPreview.tsx +308 -0
- package/src/preview/components/ArrayEnumPreview.tsx +38 -0
- package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
- package/src/preview/components/BooleanPreview.tsx +25 -0
- package/src/preview/components/DatePreview.tsx +94 -0
- package/src/preview/components/EmptyValue.tsx +10 -0
- package/src/preview/components/EnumValuesChip.tsx +39 -0
- package/src/preview/components/ImagePreview.tsx +111 -0
- package/src/preview/components/ReferencePreview.tsx +162 -0
- package/src/preview/components/RelationPreview.tsx +153 -0
- package/src/preview/components/StorageThumbnail.tsx +91 -0
- package/src/preview/components/UrlComponentPreview.tsx +113 -0
- package/src/preview/components/UserPreview.tsx +27 -0
- package/src/preview/index.ts +26 -0
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +72 -0
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +43 -0
- package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +52 -0
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +49 -0
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +44 -0
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +34 -0
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +69 -0
- package/src/preview/property_previews/MapPropertyPreview.tsx +145 -0
- package/src/preview/property_previews/NumberPropertyPreview.tsx +28 -0
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +275 -0
- package/src/preview/property_previews/StringPropertyPreview.tsx +57 -0
- package/src/preview/util.ts +30 -0
- package/src/routes/CustomCMSRoute.tsx +21 -0
- package/src/routes/RebaseRoute.tsx +255 -0
- package/src/routes/index.ts +2 -0
- package/src/util/createFormexStub.tsx +66 -0
- package/src/util/entity_cache.ts +267 -0
- package/src/util/enums.ts +32 -0
- package/src/util/icon_list.ts +23 -0
- package/src/util/icon_synonyms.ts +1853 -0
- package/src/util/icons.tsx +87 -0
- package/src/util/index.ts +11 -0
- package/src/util/previews.ts +50 -0
- package/src/util/property_utils.tsx +152 -0
- package/src/util/useDebouncedCallback.ts +25 -0
- package/src/util/useStorageUploadController.tsx +342 -0
- package/src/util/useTraceUpdate.tsx +24 -0
- package/src/vitePlugin.ts +47 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Rebase
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://rebase.pro/img/dark_mode.webp" alt="Intro video" style="max-width: 100%;"/>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://rebase.pro">
|
|
7
|
+
<img src="https://rebase.pro/img/logo_small.png" width="240px" alt="Rebase logo" />
|
|
8
|
+
</a>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<h1 align="center">Rebase</h1>
|
|
12
|
+
<h3 align="center">Awesome Firebase/MongoDB-based headless CMS</h3>
|
|
13
|
+
<p align="center"><a href="https://demo.rebase.pro">Live demo</a></p>
|
|
14
|
+
|
|
15
|
+
<br />
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
[](https://www.npmjs.com/package/rebase) [](https://standardjs.com)
|
|
19
|
+
|
|
20
|
+
Designed by developers for developers, Rebase is a headless CMS and admin panel
|
|
21
|
+
that seamlessly integrates with **Firebase and Firestore** by default, but is
|
|
22
|
+
also
|
|
23
|
+
compatible with any backend.
|
|
24
|
+
|
|
25
|
+
Effortlessly generate **CRUD views** based on your configuration. Rebase is
|
|
26
|
+
simple
|
|
27
|
+
to set up for standard cases and easy to extend and customize for more specific
|
|
28
|
+
needs.
|
|
29
|
+
|
|
30
|
+
Built to produce collection and form views that naturally align with the
|
|
31
|
+
collection/document model, Rebase covers a wide range of basic and advanced use
|
|
32
|
+
cases. With extensibility in mind, it's easy to create your own views or modify
|
|
33
|
+
existing ones.
|
|
34
|
+
|
|
35
|
+
Rebase does **not impose any data structure** restrictions, ensuring a smooth,
|
|
36
|
+
out-of-the-box experience for any project.
|
|
37
|
+
|
|
38
|
+
### Core technologies
|
|
39
|
+
|
|
40
|
+
Rebase is based on this great technologies:
|
|
41
|
+
|
|
42
|
+
- Typescript
|
|
43
|
+
- Tailwind CSS
|
|
44
|
+
- Firebase SDK 10
|
|
45
|
+
- React + React Router 6
|
|
46
|
+
|
|
47
|
+
### Quickstart
|
|
48
|
+
|
|
49
|
+
The easiest way to get going is to check our quickstart guide! You will just
|
|
50
|
+
need to follow some quick steps:
|
|
51
|
+
|
|
52
|
+
https://rebase.pro/docs
|
|
53
|
+
|
|
54
|
+
### Demo
|
|
55
|
+
|
|
56
|
+
Check the demo with all the core functionalities.
|
|
57
|
+
|
|
58
|
+
https://demo.rebase.pro
|
|
59
|
+
|
|
60
|
+
> You can modify the data, but it gets periodically restored.
|
|
61
|
+
|
|
62
|
+
### Changelog
|
|
63
|
+
|
|
64
|
+
https://rebase.pro/docs/changelog
|
|
65
|
+
|
|
66
|
+
## Features
|
|
67
|
+
|
|
68
|
+
Rebase has been meticulously crafted to make it incredibly easy for developers
|
|
69
|
+
to build a CMS/admin tool while offering an excellent data editing experience
|
|
70
|
+
and a user-friendly interface for marketers and content managers.
|
|
71
|
+
|
|
72
|
+
### 🏓 Exceptional Spreadsheet View
|
|
73
|
+
|
|
74
|
+
We've developed a highly efficient windowed **spreadsheet view** for
|
|
75
|
+
collections, allowing inline editing for most common fields, as well as popup
|
|
76
|
+
views for other cases and your custom field implementations.
|
|
77
|
+
|
|
78
|
+
Featuring **real-time** support, Rebase is perfect for apps that require
|
|
79
|
+
constant updates. It also supports **text search** (through an external provider
|
|
80
|
+
like Algolia, if using Firestore), **filtering and sorting**, and **exporting**
|
|
81
|
+
data.
|
|
82
|
+
|
|
83
|
+
### ✨ Robust Forms
|
|
84
|
+
|
|
85
|
+

|
|
86
|
+
|
|
87
|
+
When editing an entity, Rebase offers a nested system of side dialogs for
|
|
88
|
+
navigating through **subcollections** and accessing custom views (such as custom
|
|
89
|
+
forms or blog previews). This functionality can also be accessed
|
|
90
|
+
programmatically using the `useSideEntityController` hook.
|
|
91
|
+
|
|
92
|
+
Rebase includes **over 20 built-in fields** with numerous customization and
|
|
93
|
+
validation options. The components have been carefully designed for an
|
|
94
|
+
outstanding user experience, including advanced features like **references** to
|
|
95
|
+
other collections, **markdown**, and **array reordering**.
|
|
96
|
+
|
|
97
|
+
For unsupported use cases, create your own **custom field** as a React
|
|
98
|
+
component.
|
|
99
|
+
|
|
100
|
+
Rebase also supports **conditional fields** in forms, allowing you to define
|
|
101
|
+
rules for active fields based on your logic.
|
|
102
|
+
|
|
103
|
+
### 👮 Authentication, Permissions, and Role System
|
|
104
|
+
|
|
105
|
+
Define which navigation views users can see and the operations (create, edit,
|
|
106
|
+
delete) they can perform based on your role system. You can even configure this
|
|
107
|
+
on a per-entity or collection level.
|
|
108
|
+
|
|
109
|
+
By default, Rebase supports all Firebase authorization mechanisms, but you can
|
|
110
|
+
implement your own.
|
|
111
|
+
|
|
112
|
+
### 🏹 Relational Support
|
|
113
|
+
|
|
114
|
+
Define references to entities in other collections and benefit from the
|
|
115
|
+
integrated reference fields and shortcuts.
|
|
116
|
+
|
|
117
|
+
You can also define subcollections at the entity level for nesting data in a
|
|
118
|
+
collection/document/collection model.
|
|
119
|
+
|
|
120
|
+
### 🆒 Real-Time Data
|
|
121
|
+
|
|
122
|
+
Every view in the CMS supports real-time data, making it suitable for displaying
|
|
123
|
+
constantly updated information.
|
|
124
|
+
|
|
125
|
+
Forms also support this feature, with any modified value in the database being
|
|
126
|
+
updated in any open form view as long as it hasn't been touched by the user.
|
|
127
|
+
This enables advanced cases where a Cloud Function is triggered after saving an
|
|
128
|
+
entity, modifying some values, and requiring real-time updates.
|
|
129
|
+
|
|
130
|
+
### 🗂️ File Storage
|
|
131
|
+
|
|
132
|
+
Rebase supports uploading files to Firebase Storage out of the box and provides
|
|
133
|
+
specific fields for handling single and multiple file uploads, as well as
|
|
134
|
+
reordering.
|
|
135
|
+
|
|
136
|
+
You can replace the Firebase Storage implementation with your own.
|
|
137
|
+
|
|
138
|
+
## Included example
|
|
139
|
+
|
|
140
|
+
You can access the code for the demo project under
|
|
141
|
+
[`example`](https://github.com/Rebaseco/rebase/tree/master/example). It includes
|
|
142
|
+
every feature provided by this CMS.
|
|
143
|
+
|
|
144
|
+
Keep in mind you need to update the dependencies in that project if you want to
|
|
145
|
+
use it as it is, without linking it to the library source code. More details in
|
|
146
|
+
its README
|
|
147
|
+
|
|
148
|
+
## Contact and support
|
|
149
|
+
|
|
150
|
+
If you need general support, you can open a GitHub issue.
|
|
151
|
+
|
|
152
|
+
Do you need consulting setting up your Firestore-based CMS in no time? We are
|
|
153
|
+
happy to help!
|
|
154
|
+
`hello@rebase.pro`
|
|
155
|
+
|
|
156
|
+
## Development
|
|
157
|
+
|
|
158
|
+
If you would like to make changes to the source, feel free to submit a PR!
|
|
159
|
+
|
|
160
|
+
When developing, the core library can be found under `lib`.
|
|
161
|
+
There is an example project in the folder `example`.
|
|
162
|
+
|
|
163
|
+
In order to run the project, you need to create a file
|
|
164
|
+
called `firebase_config.ts`
|
|
165
|
+
in `example/src`.
|
|
166
|
+
|
|
167
|
+
That file needs to export a valid Firebase config, that you can get
|
|
168
|
+
from your Firebase console when creating a webapp for your project.
|
|
169
|
+
|
|
170
|
+
Then simply run `npm install` and `npm run dev` (or `yarn` and `yarn dev`)
|
|
171
|
+
|
|
172
|
+
## License
|
|
173
|
+
|
|
174
|
+
MIT © [Rebase](https://github.com/Rebaseco)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DefaultAppBarProps } from "../core/DefaultAppBar";
|
|
2
|
+
/**
|
|
3
|
+
* This component renders the main app bar of Rebase.
|
|
4
|
+
*/
|
|
5
|
+
export declare function AppBar({ children, ...props }: {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
} & DefaultAppBarProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare namespace AppBar {
|
|
11
|
+
var componentType: string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This component is in charge of rendering the drawer.
|
|
3
|
+
* If you add this component under your {@link Scaffold}, it will be rendered
|
|
4
|
+
* as a drawer, and the open and close functionality will be handled automatically.
|
|
5
|
+
* If you want to customise the drawer, you can create your own component and pass it as a child.
|
|
6
|
+
* For custom drawers, you can use the {@link useApp} to open and close the drawer.
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
export declare function Drawer({ children, title, logo, logoDestination, className, style }: {
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
title?: React.ReactNode;
|
|
12
|
+
logo?: string;
|
|
13
|
+
logoDestination?: string;
|
|
14
|
+
className?: string;
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare namespace Drawer {
|
|
18
|
+
var componentType: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const DRAWER_WIDTH = 280;
|
|
3
|
+
/**
|
|
4
|
+
* @group Core
|
|
5
|
+
*/
|
|
6
|
+
export interface ScaffoldProps {
|
|
7
|
+
/**
|
|
8
|
+
* Open the drawer on hover
|
|
9
|
+
*/
|
|
10
|
+
autoOpenDrawer?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Logo to be displayed in the top bar and drawer.
|
|
13
|
+
* Note that this has no effect if you are using a custom AppBar or Drawer.
|
|
14
|
+
*/
|
|
15
|
+
logo?: string;
|
|
16
|
+
/**
|
|
17
|
+
* If true, the main content will be padded in large layouts. Defaults to true.
|
|
18
|
+
*/
|
|
19
|
+
padding?: boolean;
|
|
20
|
+
className?: string;
|
|
21
|
+
style?: React.CSSProperties;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* This view acts as a scaffold for Rebase.
|
|
25
|
+
*
|
|
26
|
+
* It is in charge of displaying the navigation drawer, top bar and main
|
|
27
|
+
* collection views.
|
|
28
|
+
* This component needs a parent {@link Rebase}
|
|
29
|
+
*
|
|
30
|
+
* @param props
|
|
31
|
+
|
|
32
|
+
* @group Core
|
|
33
|
+
*/
|
|
34
|
+
export declare const Scaffold: React.NamedExoticComponent<React.PropsWithChildren<ScaffoldProps>>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* This context represents the state of the app in terms of layout.
|
|
4
|
+
* @group Core
|
|
5
|
+
*/
|
|
6
|
+
export type AppState = {
|
|
7
|
+
hasDrawer: boolean;
|
|
8
|
+
drawerHovered: boolean;
|
|
9
|
+
drawerOpen: boolean;
|
|
10
|
+
openDrawer: () => void;
|
|
11
|
+
closeDrawer: () => void;
|
|
12
|
+
closeHover: () => void;
|
|
13
|
+
autoOpenDrawer?: boolean;
|
|
14
|
+
logo?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const AppContext: React.Context<AppState>;
|
|
17
|
+
export declare function useApp(): AppState;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface AIIconProps {
|
|
2
|
+
size?: "smallest" | "small" | "medium" | "large";
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* AI-styled AutoAwesome icon with gradient coloring.
|
|
7
|
+
* Used consistently across AI features for visual identification.
|
|
8
|
+
*/
|
|
9
|
+
export declare function AIIcon({ size, className }: AIIconProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* Small animated dot indicator for AI-modified elements.
|
|
12
|
+
* Shows a pulsing gradient dot.
|
|
13
|
+
*/
|
|
14
|
+
export declare function AIModifiedIndicator({ className }: {
|
|
15
|
+
className?: string;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CMSView } from "@rebasepro/types";
|
|
2
|
+
export interface AdminModeSyncerProps {
|
|
3
|
+
/**
|
|
4
|
+
* Map of views designated as 'Studio' views.
|
|
5
|
+
* Navigating to any of these views will automatically flag the admin mode as "studio".
|
|
6
|
+
*/
|
|
7
|
+
devViews?: CMSView[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A highly customizable utility component that observes react-router routes and
|
|
11
|
+
* actively shifts the internal Rebase `adminModeController` context to match
|
|
12
|
+
* the user's active window segment (e.g., Content vs Studio mode).
|
|
13
|
+
*
|
|
14
|
+
* Placing this anywhere safely inside the Rebase layout automatically triggers
|
|
15
|
+
* UI mode synchronization.
|
|
16
|
+
*/
|
|
17
|
+
export declare function AdminModeSyncer({ devViews }: AdminModeSyncerProps): null;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type ArrayEntryParams = {
|
|
3
|
+
index: number;
|
|
4
|
+
internalId: number;
|
|
5
|
+
isDragging: boolean;
|
|
6
|
+
storedProps?: object;
|
|
7
|
+
storeProps: (props: object) => void;
|
|
8
|
+
};
|
|
9
|
+
export type ArrayEntryBuilder = (params: ArrayEntryParams) => React.ReactNode;
|
|
10
|
+
export interface ArrayContainerProps<T> {
|
|
11
|
+
droppableId: string;
|
|
12
|
+
value: T[];
|
|
13
|
+
addLabel: string;
|
|
14
|
+
buildEntry: ArrayEntryBuilder;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
size?: "small" | "medium";
|
|
17
|
+
onInternalIdAdded?: (id: number) => void;
|
|
18
|
+
includeAddButton?: boolean;
|
|
19
|
+
canAddElements?: boolean;
|
|
20
|
+
sortable?: boolean;
|
|
21
|
+
newDefaultEntry: T;
|
|
22
|
+
onValueChange: (value: T[]) => void;
|
|
23
|
+
className?: string;
|
|
24
|
+
min?: number;
|
|
25
|
+
max?: number;
|
|
26
|
+
}
|
|
27
|
+
type ArrayContainerItemProps = {
|
|
28
|
+
nodeRef: (node: HTMLElement | null) => void;
|
|
29
|
+
style: React.CSSProperties;
|
|
30
|
+
dragHandleProps: any;
|
|
31
|
+
index: number;
|
|
32
|
+
internalId: number;
|
|
33
|
+
size?: "small" | "medium";
|
|
34
|
+
disabled: boolean;
|
|
35
|
+
buildEntry: ArrayEntryBuilder;
|
|
36
|
+
remove: (index: number) => void;
|
|
37
|
+
copy: (index: number) => void;
|
|
38
|
+
addInIndex?: (index: number) => void;
|
|
39
|
+
canAddElements?: boolean;
|
|
40
|
+
sortable: boolean;
|
|
41
|
+
isDragging: boolean;
|
|
42
|
+
storedProps?: object;
|
|
43
|
+
updateItemCustomProps: (internalId: number, props: object) => void;
|
|
44
|
+
};
|
|
45
|
+
export declare function ArrayContainerItem({ nodeRef, style, dragHandleProps, index, internalId, size, disabled, buildEntry, remove, copy, addInIndex, canAddElements, sortable, isDragging, storedProps, updateItemCustomProps }: ArrayContainerItemProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export declare function ArrayItemOptions({ dragHandleProps, direction, disabled, remove, index, copy, canAddElements, sortable, addInIndex, }: {
|
|
47
|
+
dragHandleProps: any;
|
|
48
|
+
direction?: "row" | "column";
|
|
49
|
+
disabled: boolean;
|
|
50
|
+
remove: (index: number) => void;
|
|
51
|
+
index: number;
|
|
52
|
+
copy: (index: number) => void;
|
|
53
|
+
sortable: boolean;
|
|
54
|
+
canAddElements?: boolean;
|
|
55
|
+
addInIndex?: (index: number) => void;
|
|
56
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
export declare function ArrayContainer<T>({ droppableId, addLabel, value, disabled, buildEntry, size, onInternalIdAdded, includeAddButton: deprecatedIncludeAddButton, canAddElements: canAddElementsProp, sortable, newDefaultEntry, onValueChange, className, min, max }: ArrayContainerProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
export declare function getRandomId(): number;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CircularProgressProps } from "@rebasepro/ui";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param text
|
|
5
|
+
* @param props
|
|
6
|
+
|
|
7
|
+
* @ignore
|
|
8
|
+
*/
|
|
9
|
+
export declare function CircularProgressCenter({ text, ...props }: CircularProgressProps & {
|
|
10
|
+
text?: string;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare function ConfirmationDialog({ open, onAccept, onCancel, title, loading, body }: {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onAccept: () => void;
|
|
5
|
+
onCancel: () => void;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
title: React.ReactNode;
|
|
8
|
+
body?: React.ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function UIReferenceView(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UIStyleGuide: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Entity, EntityCallbacks, EntityCollection } from "@rebasepro/types";
|
|
2
|
+
export interface DeleteEntityDialogProps<M extends Record<string, any>> {
|
|
3
|
+
entityOrEntitiesToDelete?: Entity<M> | Entity<M>[];
|
|
4
|
+
path: string;
|
|
5
|
+
collection: EntityCollection<M>;
|
|
6
|
+
open: boolean;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
callbacks?: EntityCallbacks<M>;
|
|
9
|
+
onEntityDelete?(path: string, entity: Entity<M>): void;
|
|
10
|
+
onMultipleEntitiesDelete?(path: string, entities: Entity<M>[]): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function DeleteEntityDialog<M extends Record<string, any>>({ entityOrEntitiesToDelete, collection, onClose, open, callbacks, onEntityDelete, onMultipleEntitiesDelete, path }: DeleteEntityDialogProps<M>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CollectionSize, Entity, EntityAction, EntityCollection, SelectionController } from "@rebasepro/types";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param entity
|
|
6
|
+
* @param width
|
|
7
|
+
* @param frozen
|
|
8
|
+
* @param isSelected
|
|
9
|
+
* @param selectionEnabled
|
|
10
|
+
* @param size
|
|
11
|
+
* @param toggleEntitySelection
|
|
12
|
+
* @param hideId
|
|
13
|
+
*
|
|
14
|
+
* @group Collection components
|
|
15
|
+
*/
|
|
16
|
+
export declare const EntityCollectionRowActions: ({ entity, collection, path, width, frozen, isSelected, selectionEnabled, size, highlightEntity, onCollectionChange, unhighlightEntity, actions, hideId, selectionController, openEntityMode, sortableNodeRef, sortableStyle, sortableAttributes, isDragging, isDraggable }: {
|
|
17
|
+
entity: Entity<any>;
|
|
18
|
+
collection?: EntityCollection<any>;
|
|
19
|
+
path?: string;
|
|
20
|
+
width: number;
|
|
21
|
+
frozen?: boolean;
|
|
22
|
+
size: CollectionSize;
|
|
23
|
+
isSelected?: boolean;
|
|
24
|
+
selectionEnabled?: boolean;
|
|
25
|
+
actions?: EntityAction[];
|
|
26
|
+
hideId?: boolean;
|
|
27
|
+
onCollectionChange?: () => void;
|
|
28
|
+
selectionController?: SelectionController;
|
|
29
|
+
highlightEntity?: (entity: Entity<any>) => void;
|
|
30
|
+
unhighlightEntity?: (entity: Entity<any>) => void;
|
|
31
|
+
openEntityMode: "side_panel" | "full_screen";
|
|
32
|
+
sortableNodeRef?: (node: HTMLElement | null) => void;
|
|
33
|
+
sortableStyle?: React.CSSProperties;
|
|
34
|
+
sortableAttributes?: Record<string, any>;
|
|
35
|
+
isDragging?: boolean;
|
|
36
|
+
isDraggable?: boolean;
|
|
37
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { User } from "@rebasepro/types";
|
|
2
|
+
import { EntityCollectionTableProps } from "./EntityCollectionTableProps";
|
|
3
|
+
/**
|
|
4
|
+
* This component is in charge of rendering a collection table with a high
|
|
5
|
+
* degree of customization.
|
|
6
|
+
*
|
|
7
|
+
* This component is used internally by {@link EntityCollectionView} and
|
|
8
|
+
* {@link useReferenceDialog}
|
|
9
|
+
*
|
|
10
|
+
* Please note that you only need to use this component if you are building
|
|
11
|
+
* a custom view. If you just need to create a default view you can do it
|
|
12
|
+
* exclusively with config options.
|
|
13
|
+
*
|
|
14
|
+
* If you want to bind a {@link EntityCollection} to a table with the default
|
|
15
|
+
* options you see in collections in the top level navigation, you can
|
|
16
|
+
* check {@link EntityCollectionView}.
|
|
17
|
+
*
|
|
18
|
+
* The data displayed in the table is managed by a {@link EntityTableController}.
|
|
19
|
+
* You can build the default, bound to a path in the datasource, by using the hook
|
|
20
|
+
* {@link useDataSourceTableController}
|
|
21
|
+
*
|
|
22
|
+
* @see EntityCollectionTableProps
|
|
23
|
+
* @see EntityCollectionView
|
|
24
|
+
* @see VirtualTable
|
|
25
|
+
* @group Components
|
|
26
|
+
*/
|
|
27
|
+
export declare const EntityCollectionTable: <M extends Record<string, any> = any, USER extends User = any>({ className, style, forceFilter, actionsStart, actions, viewModeToggle, title, tableRowActionsBuilder, uniqueFieldValidator, getPropertyFor, onValueChange, selectionController, highlightedEntities, onEntityClick, onColumnResize, initialScroll, onScroll, onSizeChanged, hoverRow, inlineEditing, additionalFields, displayedColumnIds, defaultSize, properties, tableController, filterable, sortable, endAdornment, AddColumnComponent, AdditionalHeaderWidget, additionalIDHeaderWidget, emptyComponent, getIdColumnWidth, onTextSearchClick, textSearchLoading, enablePopupIcon, openEntityMode, onColumnsOrderChange, hideToolbar }: EntityCollectionTableProps<M>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdditionalFieldDelegate, CollectionSize, Entity, EntityTableController, FilterValues, Properties, Property, SelectionController, User } from "@rebasepro/types";
|
|
3
|
+
import { OnCellValueChange, OnColumnResizeParams, UniqueFieldValidator } from "../common/types";
|
|
4
|
+
import { VirtualTableColumn } from "../VirtualTable";
|
|
5
|
+
/**
|
|
6
|
+
* @group Collection components
|
|
7
|
+
*/
|
|
8
|
+
export type EntityCollectionTableProps<M extends Record<string, any>, USER extends User = User> = {
|
|
9
|
+
className?: string;
|
|
10
|
+
style?: React.CSSProperties;
|
|
11
|
+
/**
|
|
12
|
+
* Display these entities as selected
|
|
13
|
+
*/
|
|
14
|
+
selectionController: SelectionController<M>;
|
|
15
|
+
/**
|
|
16
|
+
* List of entities that will be displayed as selected;
|
|
17
|
+
*/
|
|
18
|
+
highlightedEntities?: Entity<M>[];
|
|
19
|
+
/**
|
|
20
|
+
* Override the title in the toolbar
|
|
21
|
+
*/
|
|
22
|
+
title?: React.ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* Additional component that renders actions such as buttons in the
|
|
25
|
+
* collection toolbar, displayed on the left side
|
|
26
|
+
*/
|
|
27
|
+
actionsStart?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Callback when a cell value changes.
|
|
30
|
+
*/
|
|
31
|
+
onValueChange?: OnCellValueChange<any, M>;
|
|
32
|
+
uniqueFieldValidator?: UniqueFieldValidator;
|
|
33
|
+
/**
|
|
34
|
+
* Builder for creating the buttons in each row
|
|
35
|
+
* @param entity
|
|
36
|
+
* @param size
|
|
37
|
+
*/
|
|
38
|
+
tableRowActionsBuilder?: (params: {
|
|
39
|
+
entity: Entity<M>;
|
|
40
|
+
size: CollectionSize;
|
|
41
|
+
width: number;
|
|
42
|
+
frozen?: boolean;
|
|
43
|
+
}) => React.ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Callback when anywhere on the table is clicked
|
|
46
|
+
*/
|
|
47
|
+
onEntityClick?(entity: Entity<M>): void;
|
|
48
|
+
/**
|
|
49
|
+
* Callback when a column is resized
|
|
50
|
+
*/
|
|
51
|
+
onColumnResize?(params: OnColumnResizeParams): void;
|
|
52
|
+
/**
|
|
53
|
+
* Initial scroll position
|
|
54
|
+
*/
|
|
55
|
+
initialScroll?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Callback when the table is scrolled
|
|
58
|
+
* @param props
|
|
59
|
+
*/
|
|
60
|
+
onScroll?: (props: {
|
|
61
|
+
scrollDirection: "forward" | "backward";
|
|
62
|
+
scrollOffset: number;
|
|
63
|
+
scrollUpdateWasRequested: boolean;
|
|
64
|
+
}) => void;
|
|
65
|
+
/**
|
|
66
|
+
* Callback when the selected size of the table is changed
|
|
67
|
+
*/
|
|
68
|
+
onSizeChanged?(size: CollectionSize): void;
|
|
69
|
+
/**
|
|
70
|
+
* Should apply a different style to a row when hovering
|
|
71
|
+
*/
|
|
72
|
+
hoverRow?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Additional component that renders actions such as buttons in the
|
|
75
|
+
* collection toolbar, displayed on the right side
|
|
76
|
+
*/
|
|
77
|
+
actions?: React.ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* View mode toggle button, positioned left of the search bar.
|
|
80
|
+
*/
|
|
81
|
+
viewModeToggle?: React.ReactNode;
|
|
82
|
+
/**
|
|
83
|
+
* Controller holding the logic for the table
|
|
84
|
+
* {@link useDataSourceTableController}
|
|
85
|
+
* {@link EntityTableController}
|
|
86
|
+
*/
|
|
87
|
+
tableController: EntityTableController<M>;
|
|
88
|
+
displayedColumnIds?: PropertyColumnConfig[];
|
|
89
|
+
forceFilter?: FilterValues<Extract<keyof M, string>>;
|
|
90
|
+
inlineEditing?: boolean;
|
|
91
|
+
additionalFields?: AdditionalFieldDelegate<M, USER>[];
|
|
92
|
+
defaultSize?: CollectionSize;
|
|
93
|
+
properties: Properties;
|
|
94
|
+
getPropertyFor?: (props: GetPropertyForProps<M>) => Property | null;
|
|
95
|
+
filterable?: boolean;
|
|
96
|
+
sortable?: boolean;
|
|
97
|
+
endAdornment?: React.ReactNode;
|
|
98
|
+
AdditionalHeaderWidget?: React.ComponentType<{
|
|
99
|
+
property: Property;
|
|
100
|
+
propertyKey: string;
|
|
101
|
+
onHover: boolean;
|
|
102
|
+
}>;
|
|
103
|
+
AddColumnComponent?: React.ComponentType;
|
|
104
|
+
additionalIDHeaderWidget?: React.ReactNode;
|
|
105
|
+
emptyComponent?: React.ReactNode;
|
|
106
|
+
getIdColumnWidth?: () => number;
|
|
107
|
+
onTextSearchClick?: () => void;
|
|
108
|
+
textSearchLoading?: boolean;
|
|
109
|
+
enablePopupIcon: boolean;
|
|
110
|
+
openEntityMode?: "side_panel" | "full_screen";
|
|
111
|
+
/**
|
|
112
|
+
* Callback when columns are reordered via drag-and-drop
|
|
113
|
+
*/
|
|
114
|
+
onColumnsOrderChange?: (columns: VirtualTableColumn[]) => void;
|
|
115
|
+
/**
|
|
116
|
+
* If true, the internal toolbar will not be rendered.
|
|
117
|
+
* Used when the parent component renders its own toolbar.
|
|
118
|
+
*/
|
|
119
|
+
hideToolbar?: boolean;
|
|
120
|
+
};
|
|
121
|
+
export type GetPropertyForProps<M extends Record<string, any>> = {
|
|
122
|
+
propertyKey: string;
|
|
123
|
+
entity: Entity<M>;
|
|
124
|
+
};
|
|
125
|
+
export type PropertyColumnConfig = {
|
|
126
|
+
key: string;
|
|
127
|
+
disabled?: boolean;
|
|
128
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Entity, Property } from "@rebasepro/types";
|
|
3
|
+
import { CustomFieldValidator } from "../../form/validation";
|
|
4
|
+
export interface PropertyTableCellProps<T> {
|
|
5
|
+
propertyKey: string;
|
|
6
|
+
columnIndex: number;
|
|
7
|
+
align: "right" | "left" | "center";
|
|
8
|
+
customFieldValidator?: CustomFieldValidator;
|
|
9
|
+
value: T;
|
|
10
|
+
readonly: boolean;
|
|
11
|
+
property: Property;
|
|
12
|
+
height: number;
|
|
13
|
+
width: number;
|
|
14
|
+
entity: Entity<any>;
|
|
15
|
+
path: string;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
enablePopupIcon?: boolean;
|
|
18
|
+
sortableNodeRef?: (node: HTMLElement | null) => void;
|
|
19
|
+
sortableStyle?: React.CSSProperties;
|
|
20
|
+
sortableAttributes?: Record<string, any>;
|
|
21
|
+
isDragging?: boolean;
|
|
22
|
+
isDraggable?: boolean;
|
|
23
|
+
frozen?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const PropertyTableCell: React.FunctionComponent<PropertyTableCellProps<any>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FilterValues, Properties, Property } from "@rebasepro/types";
|
|
3
|
+
import { VirtualTableColumn } from "../VirtualTable";
|
|
4
|
+
export declare function buildIdColumn(largeLayout?: boolean): VirtualTableColumn;
|
|
5
|
+
export interface PropertiesToColumnsParams<M extends Record<string, any>> {
|
|
6
|
+
properties: Properties;
|
|
7
|
+
sortable?: boolean;
|
|
8
|
+
forceFilter?: FilterValues<keyof M extends string ? keyof M : never>;
|
|
9
|
+
AdditionalHeaderWidget?: React.ComponentType<{
|
|
10
|
+
property: Property;
|
|
11
|
+
propertyKey: string;
|
|
12
|
+
onHover: boolean;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare function propertiesToColumns<M extends Record<string, any>>({ properties, sortable, forceFilter, AdditionalHeaderWidget }: PropertiesToColumnsParams<M>): VirtualTableColumn[];
|