@rebasepro/admin 0.7.0 → 0.9.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 +20 -20
- package/dist/{CollectionEditorDialog-iGgS4rLX.js → CollectionEditorDialog-B-7uW3iJ.js} +15 -15
- package/dist/CollectionEditorDialog-B-7uW3iJ.js.map +1 -0
- package/dist/{PropertyEditView-C9yhLyja.js → PropertyEditView-7KMTcrqi.js} +140 -106
- package/dist/PropertyEditView-7KMTcrqi.js.map +1 -0
- package/dist/{RouterCollectionsStudioView-Dqx27GD8.js → RouterCollectionsStudioView-epqIbZrJ.js} +4 -4
- package/dist/{RouterCollectionsStudioView-Dqx27GD8.js.map → RouterCollectionsStudioView-epqIbZrJ.js.map} +1 -1
- package/dist/collection_editor/_cms_internals.d.ts +4 -4
- package/dist/collection_editor/api/generateCollectionApi.d.ts +7 -6
- package/dist/collection_editor/extensibility_types.d.ts +3 -3
- package/dist/collection_editor/index.d.ts +2 -2
- package/dist/collection_editor/pgColumnToProperty.d.ts +3 -3
- package/dist/collection_editor/serializable_types.d.ts +12 -16
- package/dist/collection_editor/serializable_utils.d.ts +8 -8
- package/dist/collection_editor/types/collection_editor_controller.d.ts +5 -5
- package/dist/collection_editor/types/collection_inference.d.ts +2 -2
- package/dist/collection_editor/types/config_controller.d.ts +7 -7
- package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +2 -2
- package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +2 -2
- package/dist/collection_editor/ui/KanbanSetupAction.d.ts +2 -2
- package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +3 -3
- package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +4 -5
- package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +4 -4
- package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +4 -4
- package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -3
- package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -2
- package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +2 -2
- package/dist/collection_editor/validateCollectionJson.d.ts +2 -2
- package/dist/collection_editor_ui.js +4 -4
- package/dist/components/CollectionPanel.d.ts +4 -4
- package/dist/components/{EntityCollectionTable/EntityCollectionRowActions.d.ts → CollectionTableBinding/CollectionRowActions.d.ts} +3 -3
- package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +28 -0
- package/dist/components/{EntityCollectionTable/EntityCollectionTableProps.d.ts → CollectionTableBinding/CollectionTableBindingProps.d.ts} +1 -1
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.d.ts +2 -2
- package/dist/components/CollectionTableBinding/index.d.ts +6 -0
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +2 -2
- package/dist/components/{EntityCollectionView/EntityBoardCard.d.ts → CollectionViewBinding/BoardCardBinding.d.ts} +8 -8
- package/dist/components/{EntityCollectionView/EntityCollectionBoardView.d.ts → CollectionViewBinding/CollectionBoardViewBinding.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionCardView.d.ts → CollectionViewBinding/CollectionCardViewBinding.d.ts} +5 -5
- package/dist/components/{EntityCollectionView/EntityCollectionListView.d.ts → CollectionViewBinding/CollectionListViewBinding.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionViewActions.d.ts → CollectionViewBinding/CollectionViewActions.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionView.d.ts → CollectionViewBinding/CollectionViewBinding.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionViewStartActions.d.ts → CollectionViewBinding/CollectionViewStartActions.d.ts} +4 -4
- package/dist/components/CollectionViewBinding/EntityCardBinding.d.ts +21 -0
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.d.ts +3 -3
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.d.ts +2 -2
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.d.ts +2 -2
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.d.ts +2 -2
- package/dist/components/{EntityCollectionView/useEntityPreviewSlots.d.ts → CollectionViewBinding/usePreviewSlots.d.ts} +5 -5
- package/dist/components/DeleteEntityDialog.d.ts +4 -4
- package/dist/components/{EntityDetailView.d.ts → DetailViewBinding.d.ts} +5 -5
- package/dist/components/EditFormActions.d.ts +3 -0
- package/dist/components/{EntityEditView.d.ts → EditViewBinding.d.ts} +9 -9
- package/dist/components/{EntityPreview.d.ts → EntityPreviewBinding.d.ts} +13 -13
- package/dist/components/EntityViewBinding.d.ts +13 -0
- package/dist/components/{EntityJsonPreview.d.ts → JsonPreviewBinding.d.ts} +1 -1
- package/dist/components/RebaseCMS.d.ts +1 -1
- package/dist/components/RebaseNavigation.d.ts +1 -1
- package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +5 -5
- package/dist/components/SelectableTable/SelectableTable.d.ts +5 -5
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
- package/dist/components/SelectableTable/SelectionStore.d.ts +13 -22
- package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +6 -1
- package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +7 -1
- package/dist/components/SelectableTable/filters/FilterFieldBinding.d.ts +40 -0
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +7 -1
- package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +7 -1
- package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +7 -1
- package/dist/components/SideDialogs.d.ts +1 -1
- package/dist/components/SidePanelBinding.d.ts +11 -0
- package/dist/components/{SideEntityProvider.d.ts → SidePanelProvider.d.ts} +7 -7
- package/dist/components/field_configs.d.ts +1 -1
- package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
- package/dist/components/history/LastEditedByIndicator.d.ts +2 -2
- package/dist/components/index.d.ts +14 -13
- package/dist/contexts/SidePanelControllerContext.d.ts +3 -0
- package/dist/data_export/export/ExportCollectionAction.d.ts +3 -3
- package/dist/data_import/components/ImportSaveInProgress.d.ts +2 -2
- package/dist/editor/editor.d.ts +0 -6
- package/dist/editor.js +1 -3
- package/dist/editor.js.map +1 -1
- package/dist/form/EntityForm.d.ts +1 -1
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/StorageUploadProgress.d.ts +6 -1
- package/dist/form/form_utils.d.ts +2 -2
- package/dist/form/index.d.ts +0 -1
- package/dist/{history-ChHgyyvM.js → history-7X5bON_n.js} +4 -4
- package/dist/history-7X5bON_n.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +2 -2
- package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +5 -5
- package/dist/hooks/navigation/useNavigationResolution.d.ts +4 -4
- package/dist/hooks/navigation/useResolvedCollections.d.ts +7 -7
- package/dist/hooks/navigation/useTopLevelNavigation.d.ts +2 -2
- package/dist/hooks/navigation/utils.d.ts +5 -5
- package/dist/hooks/useBuildSidePanel.d.ts +6 -0
- package/dist/hooks/useCMSContext.d.ts +2 -2
- package/dist/hooks/{useEntityHistory.d.ts → useHistory.d.ts} +1 -1
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/{useEntitySelectionDialog.d.ts → useSelectionDialog.d.ts} +2 -2
- package/dist/hooks/useSideDialogsController.d.ts +1 -1
- package/dist/hooks/useSidePanel.d.ts +11 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/preview/components/StorageThumbnail.d.ts +3 -1
- package/dist/{src-DOX2nOyh.js → src-sUZfe29F.js} +904 -1096
- package/dist/src-sUZfe29F.js.map +1 -0
- package/dist/types/components/EntityFormActionsProps.d.ts +2 -2
- package/dist/types/components/EntityFormProps.d.ts +3 -3
- package/dist/types/components/PropertyPreviewProps.d.ts +2 -1
- package/dist/types/fields.d.ts +6 -8
- package/dist/util/dataControllerAdapter.d.ts +2 -5
- package/dist/util/navigation_utils.d.ts +6 -6
- package/dist/util/previews.d.ts +3 -3
- package/dist/util/property_utils.d.ts +2 -2
- package/dist/util/{entity_view_constants.d.ts → view_constants.d.ts} +1 -1
- package/package.json +18 -18
- package/src/collection_editor/ConfigControllerProvider.tsx +10 -10
- package/src/collection_editor/_cms_internals.ts +4 -4
- package/src/collection_editor/api/generateCollectionApi.ts +7 -6
- package/src/collection_editor/extensibility_types.ts +3 -3
- package/src/collection_editor/index.ts +3 -3
- package/src/collection_editor/pgColumnToProperty.ts +4 -4
- package/src/collection_editor/serializable_types.ts +22 -35
- package/src/collection_editor/serializable_utils.ts +40 -52
- package/src/collection_editor/types/collection_editor_controller.tsx +5 -5
- package/src/collection_editor/types/collection_inference.ts +2 -2
- package/src/collection_editor/types/config_controller.tsx +7 -7
- package/src/collection_editor/ui/AddKanbanColumnAction.tsx +2 -2
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +2 -2
- package/src/collection_editor/ui/EditorCollectionAction.tsx +2 -2
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +2 -2
- package/src/collection_editor/ui/EditorEntityAction.tsx +2 -2
- package/src/collection_editor/ui/KanbanSetupAction.tsx +2 -2
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +63 -46
- package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +8 -8
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +7 -16
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +45 -36
- package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +35 -1
- package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +3 -3
- package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +2 -2
- package/src/collection_editor/ui/collection_editor/templates/products_template.ts +2 -2
- package/src/collection_editor/ui/collection_editor/templates/users_template.ts +2 -2
- package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -1
- package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +7 -29
- package/src/collection_editor/useJsonCollectionsConfigController.tsx +14 -14
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +4 -4
- package/src/collection_editor/validateCollectionJson.ts +3 -3
- package/src/components/CollectionPanel.tsx +14 -17
- package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +6 -6
- package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +19 -17
- package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +7 -6
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +7 -6
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +23 -20
- package/src/components/CollectionTableBinding/index.tsx +14 -0
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +24 -44
- package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +15 -15
- package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +15 -14
- package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +8 -8
- package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +24 -13
- package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +5 -5
- package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +112 -114
- package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +5 -5
- package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +9 -9
- package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +31 -72
- package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +9 -9
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +6 -6
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +4 -4
- package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +28 -50
- package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +11 -11
- package/src/components/DefaultDrawer.tsx +1 -1
- package/src/components/DeleteEntityDialog.tsx +6 -6
- package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +28 -31
- package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +15 -15
- package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +31 -34
- package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +27 -27
- package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +5 -5
- package/src/components/HomePage/ContentHomePage.tsx +1 -1
- package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
- package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +1 -1
- package/src/components/RebaseCMS.tsx +4 -4
- package/src/components/RebaseNavigation.tsx +20 -10
- package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +22 -19
- package/src/components/ReferenceWidget.tsx +4 -4
- package/src/components/RelationSelector.tsx +16 -14
- package/src/components/SelectableTable/SelectableTable.tsx +44 -89
- package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
- package/src/components/SelectableTable/SelectionStore.ts +22 -52
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +9 -1
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +33 -12
- package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +21 -7
- package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +66 -12
- package/src/components/SideDialogs.tsx +3 -3
- package/src/components/{EntitySidePanel.tsx → SidePanelBinding.tsx} +19 -19
- package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +16 -16
- package/src/components/common/default_entity_actions.tsx +24 -13
- package/src/components/field_configs.tsx +0 -14
- package/src/components/history/EntityHistoryEntry.tsx +2 -2
- package/src/components/history/EntityHistoryView.tsx +3 -3
- package/src/components/history/LastEditedByIndicator.tsx +2 -2
- package/src/components/index.ts +15 -14
- package/src/contexts/SidePanelControllerContext.tsx +5 -0
- package/src/data_export/export/ExportCollectionAction.tsx +4 -4
- package/src/data_import/components/ImportSaveInProgress.tsx +3 -3
- package/src/data_import/import/ImportCollectionAction.tsx +4 -4
- package/src/data_import/utils/data.ts +2 -2
- package/src/editor/editor.tsx +4 -7
- package/src/form/EntityForm.tsx +2 -2
- package/src/form/EntityFormActions.tsx +4 -4
- package/src/form/EntityFormBinding.tsx +7 -7
- package/src/form/PropertyFieldBinding.tsx +4 -4
- package/src/form/components/StorageUploadProgress.tsx +9 -2
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -19
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +12 -1
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +6 -6
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -5
- package/src/form/field_bindings/RelationFieldBinding.tsx +8 -10
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +19 -15
- package/src/form/form_utils.ts +2 -2
- package/src/form/index.tsx +0 -1
- package/src/hooks/index.ts +4 -4
- package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +2 -2
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +11 -11
- package/src/hooks/navigation/useBuildNavigationStateController.tsx +5 -5
- package/src/hooks/navigation/useNavigationResolution.ts +10 -10
- package/src/hooks/navigation/useResolvedCollections.ts +8 -8
- package/src/hooks/navigation/useTopLevelNavigation.ts +2 -2
- package/src/hooks/navigation/utils.ts +5 -5
- package/src/hooks/{useBuildSideEntityController.tsx → useBuildSidePanel.tsx} +28 -28
- package/src/hooks/useCMSContext.tsx +6 -6
- package/src/hooks/{useEntityHistory.ts → useHistory.ts} +1 -1
- package/src/hooks/useResolvedNavigationFrom.tsx +8 -5
- package/src/hooks/{useEntitySelectionDialog.tsx → useSelectionDialog.tsx} +7 -7
- package/src/hooks/useSideDialogsController.tsx +1 -1
- package/src/hooks/useSidePanel.tsx +13 -0
- package/src/index.ts +13 -13
- package/src/preview/PropertyPreview.tsx +1 -16
- package/src/preview/components/ReferencePreview.tsx +10 -10
- package/src/preview/components/RelationPreview.tsx +13 -12
- package/src/preview/components/StorageThumbnail.tsx +24 -7
- package/src/routes/RebaseRoute.tsx +10 -10
- package/src/types/components/EntityFormActionsProps.tsx +2 -2
- package/src/types/components/EntityFormProps.tsx +3 -3
- package/src/types/components/PropertyPreviewProps.tsx +1 -1
- package/src/types/fields.tsx +4 -9
- package/src/util/dataControllerAdapter.ts +9 -15
- package/src/util/navigation_utils.ts +7 -7
- package/src/util/previews.ts +23 -3
- package/src/util/propertyConfigMapper.ts +3 -3
- package/src/util/property_utils.tsx +2 -3
- package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
- package/dist/CollectionEditorDialog-iGgS4rLX.js.map +0 -1
- package/dist/PropertyEditView-C9yhLyja.js.map +0 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
- package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +0 -12
- package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +0 -10
- package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +0 -9
- package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +0 -8
- package/dist/components/EntityCollectionTable/index.d.ts +0 -6
- package/dist/components/EntityCollectionView/EntityCard.d.ts +0 -21
- package/dist/components/EntityEditViewFormActions.d.ts +0 -3
- package/dist/components/EntitySidePanel.d.ts +0 -11
- package/dist/components/EntityView.d.ts +0 -13
- package/dist/contexts/SideEntityControllerContext.d.ts +0 -3
- package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +0 -11
- package/dist/history-ChHgyyvM.js.map +0 -1
- package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
- package/dist/hooks/useSideEntityController.d.ts +0 -11
- package/dist/src-DOX2nOyh.js.map +0 -1
- package/src/components/EntityCollectionTable/fields/VirtualTableDateField.tsx +0 -39
- package/src/components/EntityCollectionTable/fields/VirtualTableInput.tsx +0 -90
- package/src/components/EntityCollectionTable/fields/VirtualTableNumberInput.tsx +0 -83
- package/src/components/EntityCollectionTable/fields/VirtualTableSwitch.tsx +0 -32
- package/src/components/EntityCollectionTable/index.tsx +0 -14
- package/src/contexts/SideEntityControllerContext.tsx +0 -5
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +0 -141
- package/src/hooks/useSideEntityController.tsx +0 -13
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/utils.d.ts +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
|
@@ -4,7 +4,7 @@ import { useSideDialogsController } from "../hooks";
|
|
|
4
4
|
import { Sheet, Dialog } from "@rebasepro/ui";
|
|
5
5
|
import { useUnsavedChangesDialog, UnsavedChangesDialog } from "@rebasepro/core";
|
|
6
6
|
import { ErrorBoundary } from "@rebasepro/ui";
|
|
7
|
-
import type {
|
|
7
|
+
import type { SidePanelBindingProps } from "@rebasepro/types";
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
export type SideDialogController = {
|
|
@@ -41,7 +41,7 @@ export const useSideDialogContext = () => useContext<SideDialogController>(SideD
|
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
43
|
* This is the component in charge of rendering the side dialogs used
|
|
44
|
-
* for editing entities. Use the {@link
|
|
44
|
+
* for editing entities. Use the {@link useSidePanel} to open
|
|
45
45
|
* and control the dialogs.
|
|
46
46
|
* This component needs a parent {@link Rebase}
|
|
47
47
|
* {@link useSideDialogsController}
|
|
@@ -146,7 +146,7 @@ function SideDialogView({
|
|
|
146
146
|
setPendingClose
|
|
147
147
|
}), [blocked, setBlockedNavigationMessage, width, onCloseRequest, pendingClose]);
|
|
148
148
|
|
|
149
|
-
const additionalProps = panel?.additional as
|
|
149
|
+
const additionalProps = panel?.additional as SidePanelBindingProps | undefined;
|
|
150
150
|
const isDialogMode = additionalProps?.collection?.openEntityMode === "dialog";
|
|
151
151
|
|
|
152
152
|
return (
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
|
+
import type { SidePanelBindingProps } from "@rebasepro/types";
|
|
3
3
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
|
|
5
5
|
import type { OnUpdateParams } from "../types/components/EntityFormProps";
|
|
6
6
|
import { ErrorBoundary } from "@rebasepro/ui";
|
|
7
7
|
import { IconButton, Maximize2Icon, XIcon } from "@rebasepro/ui";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { EditViewBinding } from "./EditViewBinding";
|
|
9
|
+
import { DetailViewBinding } from "./DetailViewBinding";
|
|
10
10
|
import { useSideDialogContext } from "./SideDialogs";
|
|
11
11
|
import { useNavigate } from "react-router-dom";
|
|
12
12
|
import { saveEntityToMemoryCache, useComponentOverride } from "@rebasepro/core";
|
|
13
|
-
import { useCollectionRegistryController,
|
|
13
|
+
import { useCollectionRegistryController, useSidePanel } from "../index";
|
|
14
14
|
import { useUrlController } from "../index";
|
|
15
15
|
import { resolveDefaultSelectedView } from "@rebasepro/common";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* This is the component in charge of rendering the side dialog used
|
|
19
|
-
* for editing entities. Use the {@link
|
|
19
|
+
* for editing entities. Use the {@link useSidePanel} to open
|
|
20
20
|
* and control the dialogs.
|
|
21
21
|
* This component needs a parent {@link Rebase}
|
|
22
|
-
* {@link
|
|
22
|
+
* {@link useSidePanel}
|
|
23
23
|
* @group Components
|
|
24
24
|
*/
|
|
25
|
-
export function
|
|
25
|
+
export function SidePanelBinding(props: SidePanelBindingProps) {
|
|
26
26
|
|
|
27
27
|
const {
|
|
28
28
|
allowFullScreen = true,
|
|
@@ -32,7 +32,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
32
32
|
formProps
|
|
33
33
|
} = props;
|
|
34
34
|
|
|
35
|
-
const ResolvedDetailView = useComponentOverride("
|
|
35
|
+
const ResolvedDetailView = useComponentOverride("DetailView", DetailViewBinding);
|
|
36
36
|
|
|
37
37
|
const {
|
|
38
38
|
blocked,
|
|
@@ -43,7 +43,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
43
43
|
|
|
44
44
|
const navigate = useNavigate();
|
|
45
45
|
|
|
46
|
-
const
|
|
46
|
+
const sidePanelController = useSidePanel();
|
|
47
47
|
const collectionRegistryController = useCollectionRegistryController();
|
|
48
48
|
const sideDialogsController = useSideDialogContext();
|
|
49
49
|
const urlController = useUrlController();
|
|
@@ -63,7 +63,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
63
63
|
}
|
|
64
64
|
setShowEditInPanel(false);
|
|
65
65
|
if (params.status !== "existing") {
|
|
66
|
-
|
|
66
|
+
sidePanelController.replace({
|
|
67
67
|
path: params.path,
|
|
68
68
|
entityId: params.entityId,
|
|
69
69
|
selectedTab: params.selectedTab,
|
|
@@ -102,7 +102,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
|
|
|
102
102
|
// defaultSelectedView, update the panel width and URL to match.
|
|
103
103
|
// This handles cases where defaultSelectedView is set via the collection
|
|
104
104
|
// editor / Studio and is not available on the collection object the
|
|
105
|
-
// caller passed to
|
|
105
|
+
// caller passed to sidePanelController.open().
|
|
106
106
|
const hasCorrectedDefaultView = useRef(false);
|
|
107
107
|
useEffect(() => {
|
|
108
108
|
hasCorrectedDefaultView.current = false;
|
|
@@ -119,7 +119,7 @@ entityId }
|
|
|
119
119
|
);
|
|
120
120
|
if (effectiveDefault && effectiveDefault !== "edit") {
|
|
121
121
|
hasCorrectedDefaultView.current = true;
|
|
122
|
-
|
|
122
|
+
sidePanelController.replace({
|
|
123
123
|
path,
|
|
124
124
|
entityId,
|
|
125
125
|
selectedTab: effectiveDefault,
|
|
@@ -127,7 +127,7 @@ entityId }
|
|
|
127
127
|
collection
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
|
-
}, [selectedTab, entityId, collection, path,
|
|
130
|
+
}, [selectedTab, entityId, collection, path, sidePanelController]);
|
|
131
131
|
|
|
132
132
|
// Note: beforeunload is handled by useUnsavedChangesDialog in SideDialogView,
|
|
133
133
|
// which listens to the same `blocked` state via SideDialogContext.
|
|
@@ -150,7 +150,7 @@ entityId }
|
|
|
150
150
|
? <ResolvedDetailView
|
|
151
151
|
path={path}
|
|
152
152
|
layout={collection?.openEntityMode === "dialog" ? "dialog" : "side_panel"}
|
|
153
|
-
collection={collection as
|
|
153
|
+
collection={collection as CollectionConfig}
|
|
154
154
|
entityId={entityId!}
|
|
155
155
|
parentCollectionSlugs={parentCollectionSlugs}
|
|
156
156
|
parentEntityIds={parentEntityIds}
|
|
@@ -186,7 +186,7 @@ entityId }
|
|
|
186
186
|
return;
|
|
187
187
|
}
|
|
188
188
|
if (tabEntityId) {
|
|
189
|
-
|
|
189
|
+
sidePanelController.replace({
|
|
190
190
|
path,
|
|
191
191
|
entityId: tabEntityId,
|
|
192
192
|
selectedTab,
|
|
@@ -196,10 +196,10 @@ entityId }
|
|
|
196
196
|
}
|
|
197
197
|
}}
|
|
198
198
|
/>
|
|
199
|
-
: <
|
|
199
|
+
: <EditViewBinding
|
|
200
200
|
{...props}
|
|
201
201
|
layout={collection?.openEntityMode === "dialog" ? "dialog" : "side_panel"}
|
|
202
|
-
collection={collection as
|
|
202
|
+
collection={collection as CollectionConfig}
|
|
203
203
|
parentCollectionSlugs={parentCollectionSlugs} parentEntityIds={parentEntityIds}
|
|
204
204
|
onValuesModified={onValuesModified}
|
|
205
205
|
onSaved={onUpdate}
|
|
@@ -242,7 +242,7 @@ entityId }
|
|
|
242
242
|
return;
|
|
243
243
|
}
|
|
244
244
|
if (tabEntityId) {
|
|
245
|
-
|
|
245
|
+
sidePanelController.replace({
|
|
246
246
|
path,
|
|
247
247
|
entityId: tabEntityId,
|
|
248
248
|
selectedTab,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SidePanelController } from "@rebasepro/types";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { useBuildSidePanel } from "../hooks/useBuildSidePanel";
|
|
4
4
|
import { useBuildSideDialogsController } from "../hooks/useBuildSideDialogsController";
|
|
5
|
-
import {
|
|
5
|
+
import { SidePanelControllerContext } from "../hooks/useSidePanel";
|
|
6
6
|
import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
|
|
7
7
|
import { BreadcrumbsProvider } from "../contexts/BreacrumbsContext";
|
|
8
8
|
import { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
|
|
@@ -11,13 +11,13 @@ import { useNavigationStateController } from "../index";
|
|
|
11
11
|
import { useAuthController, useBridgeRegistration } from "@rebasepro/core";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Provider that builds the
|
|
15
|
-
* via the
|
|
14
|
+
* Provider that builds the SidePanelController and makes it available
|
|
15
|
+
* via the SidePanelControllerContext from @rebasepro/core.
|
|
16
16
|
*
|
|
17
|
-
* After the CMS extraction refactor, `
|
|
17
|
+
* After the CMS extraction refactor, `useBuildSidePanel` lives
|
|
18
18
|
* in the CMS package while the context it feeds into lives in core.
|
|
19
19
|
* This provider bridges the two: place it inside the `<Rebase>` tree and
|
|
20
|
-
* above any component that calls `
|
|
20
|
+
* above any component that calls `useSidePanel()`.
|
|
21
21
|
*
|
|
22
22
|
* Also auto-registers the side entity controller and breadcrumbs into the
|
|
23
23
|
* self-assembling Studio bridge (when a StudioBridgeRegistryProvider is
|
|
@@ -27,25 +27,25 @@ import { useAuthController, useBridgeRegistration } from "@rebasepro/core";
|
|
|
27
27
|
* ```tsx
|
|
28
28
|
* <Rebase ...>
|
|
29
29
|
* {({ loading }) => (
|
|
30
|
-
* <
|
|
30
|
+
* <SidePanelProvider>
|
|
31
31
|
* <RebaseRoutes>
|
|
32
32
|
* ...
|
|
33
33
|
* </RebaseRoutes>
|
|
34
|
-
* </
|
|
34
|
+
* </SidePanelProvider>
|
|
35
35
|
* )}
|
|
36
36
|
* </Rebase>
|
|
37
37
|
* ```
|
|
38
38
|
*
|
|
39
39
|
* @group Components
|
|
40
40
|
*/
|
|
41
|
-
export function
|
|
41
|
+
export function SidePanelProvider({ children }: { children: React.ReactNode }) {
|
|
42
42
|
const collectionRegistryController = useCollectionRegistryController();
|
|
43
43
|
const urlController = useUrlController();
|
|
44
44
|
const navigationStateController = useNavigationStateController();
|
|
45
45
|
const sideDialogsController = useBuildSideDialogsController();
|
|
46
46
|
const authController = useAuthController();
|
|
47
47
|
|
|
48
|
-
const
|
|
48
|
+
const sidePanelController = useBuildSidePanel(
|
|
49
49
|
collectionRegistryController,
|
|
50
50
|
urlController,
|
|
51
51
|
navigationStateController,
|
|
@@ -56,10 +56,10 @@ export function SideEntityProvider({ children }: { children: React.ReactNode })
|
|
|
56
56
|
return (
|
|
57
57
|
<BreadcrumbsProvider>
|
|
58
58
|
<SideDialogsControllerContext.Provider value={sideDialogsController}>
|
|
59
|
-
<
|
|
60
|
-
<BridgeAutoRegistrar
|
|
59
|
+
<SidePanelControllerContext.Provider value={sidePanelController}>
|
|
60
|
+
<BridgeAutoRegistrar sidePanelController={sidePanelController}/>
|
|
61
61
|
{children}
|
|
62
|
-
</
|
|
62
|
+
</SidePanelControllerContext.Provider>
|
|
63
63
|
</SideDialogsControllerContext.Provider>
|
|
64
64
|
</BreadcrumbsProvider>
|
|
65
65
|
);
|
|
@@ -69,9 +69,9 @@ export function SideEntityProvider({ children }: { children: React.ReactNode })
|
|
|
69
69
|
* Internal component that auto-registers side entity and breadcrumbs
|
|
70
70
|
* into the Studio bridge. Must be a child of BreadcrumbsProvider.
|
|
71
71
|
*/
|
|
72
|
-
function BridgeAutoRegistrar({
|
|
72
|
+
function BridgeAutoRegistrar({ sidePanelController }: { sidePanelController: SidePanelController }) {
|
|
73
73
|
const breadcrumbs = useBreadcrumbsController();
|
|
74
|
-
useBridgeRegistration("
|
|
74
|
+
useBridgeRegistration("sidePanelController", sidePanelController);
|
|
75
75
|
useBridgeRegistration("breadcrumbs", breadcrumbs);
|
|
76
76
|
return null;
|
|
77
77
|
}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { CopyIcon, iconSize, KeyRoundIcon, PencilIcon, Trash2Icon } from "@rebasepro/ui";
|
|
2
2
|
import type { EntityAction, User, UserCreationResult } from "@rebasepro/types";
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
ConfirmationDialog,
|
|
5
|
+
useAuthController,
|
|
6
|
+
useRebaseClient,
|
|
7
|
+
useSnackbarController,
|
|
8
|
+
useTranslation
|
|
9
|
+
} from "@rebasepro/core";
|
|
4
10
|
import { DeleteEntityDialog } from "../DeleteEntityDialog";
|
|
5
|
-
import { addRecentId } from "../
|
|
11
|
+
import { addRecentId } from "../CollectionViewBinding/utils";
|
|
6
12
|
import { navigateToEntity } from "../../util/navigation_utils";
|
|
7
13
|
import { resolveDefaultSelectedView } from "@rebasepro/common";
|
|
8
14
|
import { CreationResultDialog } from "../admin/CreationResultDialog";
|
|
9
15
|
import React, { useState } from "react";
|
|
10
16
|
|
|
11
|
-
|
|
12
17
|
export const editEntityAction: EntityAction = {
|
|
13
18
|
icon: <PencilIcon size={iconSize.smallest}/>,
|
|
14
19
|
key: "edit",
|
|
@@ -20,7 +25,7 @@ export const editEntityAction: EntityAction = {
|
|
|
20
25
|
collection,
|
|
21
26
|
path,
|
|
22
27
|
context,
|
|
23
|
-
|
|
28
|
+
sidePanelController,
|
|
24
29
|
highlightEntity,
|
|
25
30
|
unhighlightEntity,
|
|
26
31
|
openEntityMode
|
|
@@ -30,8 +35,8 @@ export const editEntityAction: EntityAction = {
|
|
|
30
35
|
throw new Error("INTERNAL: editEntityAction: Entity is undefined");
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
if (!
|
|
34
|
-
throw new Error("INTERNAL: editEntityAction:
|
|
38
|
+
if (!sidePanelController) {
|
|
39
|
+
throw new Error("INTERNAL: editEntityAction: sidePanelController is undefined");
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
highlightEntity?.(entity);
|
|
@@ -55,14 +60,17 @@ export const editEntityAction: EntityAction = {
|
|
|
55
60
|
entityId: entity.id
|
|
56
61
|
}
|
|
57
62
|
);
|
|
63
|
+
if (!context?.urlController) {
|
|
64
|
+
throw new Error("INTERNAL: editEntityAction: urlController is undefined");
|
|
65
|
+
}
|
|
58
66
|
navigateToEntity({
|
|
59
67
|
openEntityMode,
|
|
60
68
|
collection,
|
|
61
69
|
entityId: entity.id,
|
|
62
70
|
path: newFullIdPath,
|
|
63
|
-
|
|
71
|
+
sidePanelController,
|
|
64
72
|
onClose: () => unhighlightEntity?.(entity),
|
|
65
|
-
navigation: context
|
|
73
|
+
navigation: context.urlController,
|
|
66
74
|
selectedTab: defaultSelectedView
|
|
67
75
|
});
|
|
68
76
|
|
|
@@ -80,7 +88,7 @@ export const copyEntityAction: EntityAction = {
|
|
|
80
88
|
collection,
|
|
81
89
|
context,
|
|
82
90
|
path,
|
|
83
|
-
|
|
91
|
+
sidePanelController,
|
|
84
92
|
highlightEntity,
|
|
85
93
|
unhighlightEntity,
|
|
86
94
|
openEntityMode
|
|
@@ -88,8 +96,8 @@ export const copyEntityAction: EntityAction = {
|
|
|
88
96
|
if (!entity) {
|
|
89
97
|
throw new Error("INTERNAL: copyEntityAction: Entity is undefined");
|
|
90
98
|
}
|
|
91
|
-
if (!
|
|
92
|
-
throw new Error("INTERNAL: copyEntityAction:
|
|
99
|
+
if (!sidePanelController) {
|
|
100
|
+
throw new Error("INTERNAL: copyEntityAction: sidePanelController is undefined");
|
|
93
101
|
}
|
|
94
102
|
highlightEntity?.(entity);
|
|
95
103
|
context?.analyticsController?.onAnalyticsEvent?.("copy_entity_click", {
|
|
@@ -98,15 +106,18 @@ export const copyEntityAction: EntityAction = {
|
|
|
98
106
|
});
|
|
99
107
|
|
|
100
108
|
const usedPath = path ?? collection?.slug ?? entity.path;
|
|
109
|
+
if (!context?.urlController) {
|
|
110
|
+
throw new Error("INTERNAL: copyEntityAction: urlController is undefined");
|
|
111
|
+
}
|
|
101
112
|
navigateToEntity({
|
|
102
113
|
openEntityMode,
|
|
103
114
|
collection,
|
|
104
115
|
entityId: entity.id,
|
|
105
116
|
path: usedPath,
|
|
106
117
|
copy: true,
|
|
107
|
-
|
|
118
|
+
sidePanelController,
|
|
108
119
|
onClose: () => unhighlightEntity?.(entity),
|
|
109
|
-
navigation: context
|
|
120
|
+
navigation: context.urlController
|
|
110
121
|
});
|
|
111
122
|
|
|
112
123
|
return Promise.resolve(undefined);
|
|
@@ -9,7 +9,6 @@ import { KeyValueFieldBinding } from "../form/field_bindings/KeyValueFieldBindin
|
|
|
9
9
|
import { MapFieldBinding } from "../form/field_bindings/MapFieldBinding";
|
|
10
10
|
import { MarkdownEditorFieldBinding } from "../form/field_bindings/MarkdownEditorFieldBinding";
|
|
11
11
|
import { MultiSelectFieldBinding } from "../form/field_bindings/MultiSelectFieldBinding";
|
|
12
|
-
import { ReferenceAsStringFieldBinding } from "../form/field_bindings/ReferenceAsStringFieldBinding";
|
|
13
12
|
import { ReferenceFieldBinding } from "../form/field_bindings/ReferenceFieldBinding";
|
|
14
13
|
import { RepeatFieldBinding } from "../form/field_bindings/RepeatFieldBinding";
|
|
15
14
|
import { SelectFieldBinding } from "../form/field_bindings/SelectFieldBinding";
|
|
@@ -220,17 +219,6 @@ Field: TextFieldBinding }
|
|
|
220
219
|
ui: { Field: StorageUploadFieldBinding }
|
|
221
220
|
}
|
|
222
221
|
},
|
|
223
|
-
reference_as_string: {
|
|
224
|
-
key: "reference_as_string",
|
|
225
|
-
name: "Reference (as string)",
|
|
226
|
-
description: "The value refers to a different collection (it is saved as a string)",
|
|
227
|
-
Icon: LinkIcon,
|
|
228
|
-
color: "#154fb3",
|
|
229
|
-
property: {
|
|
230
|
-
type: "string",
|
|
231
|
-
ui: { Field: ReferenceAsStringFieldBinding }
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
222
|
reference: {
|
|
235
223
|
key: "reference",
|
|
236
224
|
name: "Reference",
|
|
@@ -393,8 +381,6 @@ export function getDefaultFieldId(property: Property) {
|
|
|
393
381
|
return "select";
|
|
394
382
|
} else if (property.userSelect) {
|
|
395
383
|
return "user_select";
|
|
396
|
-
} else if ((property as StringProperty).reference) {
|
|
397
|
-
return "reference_as_string";
|
|
398
384
|
} else {
|
|
399
385
|
return "text_field";
|
|
400
386
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import type { Property } from "@rebasepro/types";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
@@ -39,7 +39,7 @@ function deepEqual(a: unknown, b: unknown): boolean {
|
|
|
39
39
|
export type EntityHistoryEntryProps = {
|
|
40
40
|
size: PreviewSize;
|
|
41
41
|
actions?: React.ReactNode;
|
|
42
|
-
collection?:
|
|
42
|
+
collection?: CollectionConfig;
|
|
43
43
|
hover?: boolean;
|
|
44
44
|
entry: HistoryEntryData;
|
|
45
45
|
onClick?: (e: React.SyntheticEvent) => void;
|
|
@@ -7,7 +7,7 @@ import { EntityHistoryEntry } from "./EntityHistoryEntry";
|
|
|
7
7
|
import { useSnackbarController, useAuthController } from "@rebasepro/core";
|
|
8
8
|
import { ConfirmationDialog } from "@rebasepro/core";
|
|
9
9
|
import { useState } from "react";
|
|
10
|
-
import {
|
|
10
|
+
import { useHistory } from "../../index";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Entity history tab view. Shows a paginated list of entity revisions
|
|
@@ -32,7 +32,7 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
|
|
|
32
32
|
hasMore,
|
|
33
33
|
loadMore,
|
|
34
34
|
revert
|
|
35
|
-
} =
|
|
35
|
+
} = useHistory({
|
|
36
36
|
slug,
|
|
37
37
|
entityId,
|
|
38
38
|
enabled: !!entityId,
|
|
@@ -136,7 +136,7 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
|
|
|
136
136
|
No history available
|
|
137
137
|
</Label>
|
|
138
138
|
<Typography variant={"caption"} className={"ml-4"}>
|
|
139
|
-
When you save
|
|
139
|
+
When you save a entity, a new version is created and stored in the history.
|
|
140
140
|
</Typography>
|
|
141
141
|
</>}
|
|
142
142
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import React, { useEffect, useState, useCallback } from "react";
|
|
3
3
|
;
|
|
4
4
|
import { useApiConfig } from "@rebasepro/core";
|
|
@@ -31,7 +31,7 @@ export function LastEditedByIndicator({
|
|
|
31
31
|
}: {
|
|
32
32
|
path: string;
|
|
33
33
|
entityId: string;
|
|
34
|
-
collection:
|
|
34
|
+
collection: CollectionConfig;
|
|
35
35
|
}) {
|
|
36
36
|
const apiConfig = useApiConfig();
|
|
37
37
|
const authController = useAuthController();
|
package/src/components/index.ts
CHANGED
|
@@ -1,36 +1,37 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
export {
|
|
1
|
+
export type { EntityViewBindingProps } from "./EntityViewBinding";
|
|
2
|
+
export { EntityViewBinding } from "./EntityViewBinding";
|
|
3
3
|
|
|
4
|
-
export * from "./
|
|
4
|
+
export * from "./DetailViewBinding";
|
|
5
5
|
|
|
6
|
-
export type {
|
|
7
|
-
export {
|
|
6
|
+
export type { SelectionProps } from "./ReferenceTable/SelectionTableBinding";
|
|
7
|
+
export { SelectionTableBinding } from "./ReferenceTable/SelectionTableBinding";
|
|
8
8
|
|
|
9
9
|
export * from "./SelectableTable/SelectableTable";
|
|
10
10
|
export * from "./SelectableTable/SelectableTableContext";
|
|
11
|
-
export * from "./
|
|
12
|
-
export * from "./
|
|
13
|
-
export * from "./
|
|
14
|
-
export * from "./
|
|
15
|
-
export * from "./
|
|
11
|
+
export * from "./SelectableTable/filters/FilterFieldBinding";
|
|
12
|
+
export * from "./CollectionViewBinding/CollectionViewBinding";
|
|
13
|
+
export * from "./CollectionViewBinding/CollectionViewActions";
|
|
14
|
+
export * from "./CollectionViewBinding/CollectionCardViewBinding";
|
|
15
|
+
export * from "./CollectionViewBinding/EntityCardBinding";
|
|
16
|
+
export * from "./CollectionViewBinding/useSelectionController";
|
|
16
17
|
|
|
17
18
|
export * from "./PropertyConfigBadge";
|
|
18
19
|
export * from "./PropertyIdCopyTooltip";
|
|
19
20
|
|
|
20
|
-
export * from "./
|
|
21
|
+
export * from "./CollectionTableBinding";
|
|
21
22
|
// VirtualTable is exported from @rebasepro/ui
|
|
22
23
|
export * from "./ArrayContainer";
|
|
23
24
|
export * from "./ReferenceWidget";
|
|
24
25
|
export * from "./SearchIconsView";
|
|
25
26
|
export * from "./FieldCaption";
|
|
26
|
-
export * from "./
|
|
27
|
+
export * from "./EntityPreviewBinding";
|
|
27
28
|
|
|
28
|
-
// history is lazy-loaded by
|
|
29
|
+
// history is lazy-loaded by EditViewBinding and resolutions.ts
|
|
29
30
|
// export * from "./history";
|
|
30
31
|
export * from "./common";
|
|
31
32
|
export * from "./field_configs";
|
|
32
33
|
|
|
33
|
-
export * from "./
|
|
34
|
+
export * from "./SidePanelProvider";
|
|
34
35
|
export * from "./AdminModeSyncer";
|
|
35
36
|
// Admin views: only CreationResultDialog remains (used by resetPasswordAction)
|
|
36
37
|
export * from "./app/AppBar";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
useTranslation
|
|
9
9
|
} from "@rebasepro/core";
|
|
10
10
|
import { useCMSContext } from "../../hooks";
|
|
11
|
-
import { CollectionActionsProps, Entity,
|
|
11
|
+
import { CollectionActionsProps, Entity, CollectionConfig, ExportConfig, RebaseContext, User } from "@rebasepro/types";
|
|
12
12
|
import { getDefaultValuesFor } from "@rebasepro/common";
|
|
13
13
|
import {
|
|
14
14
|
Alert,
|
|
@@ -38,8 +38,8 @@ export function ExportCollectionAction<M extends Record<string, unknown>, USER e
|
|
|
38
38
|
onAnalyticsEvent,
|
|
39
39
|
exportAllowed,
|
|
40
40
|
notAllowedView
|
|
41
|
-
}: CollectionActionsProps<M, USER,
|
|
42
|
-
exportAllowed?: (props: { collectionEntitiesCount: number, path: string, collection:
|
|
41
|
+
}: CollectionActionsProps<M, USER, CollectionConfig<M>> & {
|
|
42
|
+
exportAllowed?: (props: { collectionEntitiesCount: number, path: string, collection: CollectionConfig }) => boolean;
|
|
43
43
|
notAllowedView?: React.ReactNode;
|
|
44
44
|
onAnalyticsEvent?: (event: string, params?: any) => void;
|
|
45
45
|
}) {
|
|
@@ -115,7 +115,7 @@ export function ExportCollectionAction<M extends Record<string, unknown>, USER e
|
|
|
115
115
|
return [...resolvedExportColumnsValues, ...resolvedColumnsValues];
|
|
116
116
|
}, [exportConfig?.additionalFields]);
|
|
117
117
|
|
|
118
|
-
const doDownload = useCallback(async (collection:
|
|
118
|
+
const doDownload = useCallback(async (collection: CollectionConfig<M>,
|
|
119
119
|
exportConfig: ExportConfig<any> | undefined) => {
|
|
120
120
|
|
|
121
121
|
onAnalyticsEvent?.("export_collection", {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useData } from "@rebasepro/core";
|
|
2
|
-
import { Entity,
|
|
2
|
+
import { Entity, CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import { RebaseData } from "@rebasepro/types";
|
|
4
4
|
import { Button, CenteredView, CircularProgress, Typography } from "@rebasepro/ui";
|
|
5
5
|
import { useEffect, useRef, useState } from "react";
|
|
6
6
|
import { ImportConfig } from "../types";
|
|
7
7
|
|
|
8
|
-
export function ImportSaveInProgress<C extends
|
|
8
|
+
export function ImportSaveInProgress<C extends CollectionConfig<any>>
|
|
9
9
|
({
|
|
10
10
|
path,
|
|
11
11
|
importConfig,
|
|
@@ -95,7 +95,7 @@ export function ImportSaveInProgress<C extends EntityCollection<any>>
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
function saveDataBatch(dataClient: RebaseData,
|
|
98
|
-
collection:
|
|
98
|
+
collection: CollectionConfig,
|
|
99
99
|
path: string,
|
|
100
100
|
data: Partial<Entity<any>>[],
|
|
101
101
|
offset = 0,
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
useSnackbarController
|
|
6
6
|
} from "@rebasepro/core";
|
|
7
7
|
import { getPropertiesWithPropertiesOrder, getPropertyInPath } from "../../util";
|
|
8
|
-
import { CollectionActionsProps, Properties, Property, User,
|
|
8
|
+
import { CollectionActionsProps, Properties, Property, User, CollectionConfig } from "@rebasepro/types";
|
|
9
9
|
import {
|
|
10
10
|
getFieldConfig,
|
|
11
11
|
PropertyConfigBadge,
|
|
12
12
|
useSelectionController
|
|
13
13
|
} from "../../components";
|
|
14
|
-
import {
|
|
14
|
+
import { CollectionTableBinding } from "../../components/CollectionTableBinding/CollectionTableBinding";
|
|
15
15
|
import { useCollectionRegistryController } from "../../hooks";
|
|
16
16
|
import {
|
|
17
17
|
Button,
|
|
@@ -176,7 +176,7 @@ export function ImportCollectionAction<M extends Record<string, unknown>, USER e
|
|
|
176
176
|
|
|
177
177
|
{step === "import_data_saving" && importConfig &&
|
|
178
178
|
<ImportSaveInProgress importConfig={importConfig}
|
|
179
|
-
collection={collection as
|
|
179
|
+
collection={collection as CollectionConfig}
|
|
180
180
|
path={path}
|
|
181
181
|
onImportSuccess={(importedCollection) => {
|
|
182
182
|
handleClose();
|
|
@@ -396,7 +396,7 @@ export function ImportDataPreview<M extends Record<string, unknown>>({
|
|
|
396
396
|
|
|
397
397
|
const selectionController = useSelectionController();
|
|
398
398
|
|
|
399
|
-
return <
|
|
399
|
+
return <CollectionTableBinding
|
|
400
400
|
title={<div>
|
|
401
401
|
<Typography variant={"subtitle2"}>Imported data preview</Typography>
|
|
402
402
|
<Typography variant={"caption"}>Entities with the same id will be overwritten</Typography>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getPropertyInPath } from "../../util";
|
|
2
|
-
import { AuthController, Entity,
|
|
2
|
+
import { AuthController, Entity, CollectionConfig, EntityReference, CollectionRegistryController, Properties, Property, Vector } from "@rebasepro/types";
|
|
3
3
|
import { isPropertyBuilder } from "@rebasepro/common";
|
|
4
4
|
import { unflattenObject } from "./file_to_json";
|
|
5
5
|
import { getIn } from "@rebasepro/formex";
|
|
@@ -148,7 +148,7 @@ export function processValueMapping(authController: AuthController, value: any,
|
|
|
148
148
|
|
|
149
149
|
// If no explicit database was provided in the string, try to get it from the collection
|
|
150
150
|
if (databaseId === undefined) {
|
|
151
|
-
const targetCollection:
|
|
151
|
+
const targetCollection: CollectionConfig<any> | undefined = navigation.getCollection(path);
|
|
152
152
|
databaseId = targetCollection?.databaseId;
|
|
153
153
|
}
|
|
154
154
|
|
package/src/editor/editor.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React, { useEffect, useState, useRef, useMemo } from "react";
|
|
3
3
|
import { EditorState, Selection } from "prosemirror-state";
|
|
4
|
-
import { cls, defaultBorderMixin, Separator,
|
|
4
|
+
import { cls, defaultBorderMixin, Separator, TextareaAutosize, useInjectStyles } from "@rebasepro/ui";
|
|
5
5
|
import { useTranslation } from "@rebasepro/core";
|
|
6
6
|
import { EditorBubble, ImageBubble, SlashCommandMenu, TableBubble, type JSONContent } from "./components";
|
|
7
7
|
import { NodeSelector } from "./selectors/node-selector";
|
|
@@ -26,8 +26,7 @@ export interface MarkdownEditorConfig {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export type RichTextEditorTextSize = "sm" | "base" | "lg";
|
|
29
|
-
|
|
30
|
-
export type RebaseEditorTextSize = RichTextEditorTextSize;
|
|
29
|
+
|
|
31
30
|
|
|
32
31
|
export type RichTextEditorProps = {
|
|
33
32
|
content?: JSONContent | string,
|
|
@@ -43,8 +42,7 @@ export type RichTextEditorProps = {
|
|
|
43
42
|
disabled?: boolean;
|
|
44
43
|
markdownConfig?: MarkdownEditorConfig;
|
|
45
44
|
};
|
|
46
|
-
|
|
47
|
-
export type RebaseEditorProps = RichTextEditorProps;
|
|
45
|
+
|
|
48
46
|
|
|
49
47
|
const proseClasses = {
|
|
50
48
|
"sm": "prose-sm",
|
|
@@ -324,8 +322,7 @@ view }), [state, view])}>
|
|
|
324
322
|
</div>
|
|
325
323
|
);
|
|
326
324
|
};
|
|
327
|
-
|
|
328
|
-
export const RebaseEditor = RichTextEditor;
|
|
325
|
+
|
|
329
326
|
|
|
330
327
|
const cssStyles = `
|
|
331
328
|
.ProseMirror {
|