@rebasepro/admin 0.8.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/README.md +20 -20
- package/dist/{CollectionEditorDialog-BO_aQ-Z4.js → CollectionEditorDialog-B-7uW3iJ.js} +11 -11
- package/dist/CollectionEditorDialog-B-7uW3iJ.js.map +1 -0
- package/dist/{PropertyEditView-DKzOpMjR.js → PropertyEditView-7KMTcrqi.js} +78 -70
- package/dist/PropertyEditView-7KMTcrqi.js.map +1 -0
- package/dist/{RouterCollectionsStudioView-BQTIExjA.js → RouterCollectionsStudioView-epqIbZrJ.js} +4 -4
- package/dist/{RouterCollectionsStudioView-BQTIExjA.js.map → RouterCollectionsStudioView-epqIbZrJ.js.map} +1 -1
- package/dist/collection_editor/_cms_internals.d.ts +3 -3
- package/dist/collection_editor/api/generateCollectionApi.d.ts +4 -4
- 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 +7 -7
- 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 -4
- 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 +2 -2
- 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/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/form/EntityForm.d.ts +1 -1
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/form_utils.d.ts +2 -2
- package/dist/{history-B3cqBzEV.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 +2 -2
- package/dist/index.js +2 -2
- package/dist/{src-cxV1ODRG.js → src-sUZfe29F.js} +737 -647
- 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/fields.d.ts +2 -2
- 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 +8 -8
- package/src/collection_editor/ConfigControllerProvider.tsx +10 -10
- package/src/collection_editor/_cms_internals.ts +3 -3
- package/src/collection_editor/api/generateCollectionApi.ts +4 -4
- package/src/collection_editor/extensibility_types.ts +3 -3
- package/src/collection_editor/index.ts +3 -3
- package/src/collection_editor/pgColumnToProperty.ts +3 -3
- package/src/collection_editor/serializable_types.ts +8 -8
- package/src/collection_editor/serializable_utils.ts +17 -17
- 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 +26 -26
- 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 -7
- 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/templates/blog_template.ts +2 -2
- 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/useJsonCollectionsConfigController.tsx +13 -13
- 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} +10 -10
- package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +5 -5
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +5 -5
- 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/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +15 -15
- package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +14 -13
- package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +8 -8
- package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +12 -12
- package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +5 -5
- package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +106 -91
- 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 +5 -5
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +4 -4
- package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +16 -10
- package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +8 -8
- package/src/components/DeleteEntityDialog.tsx +6 -6
- package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +26 -29
- package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +12 -12
- package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +29 -32
- package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +27 -27
- package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +5 -5
- package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
- package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +1 -1
- package/src/components/RebaseCMS.tsx +4 -3
- package/src/components/RebaseNavigation.tsx +17 -8
- package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +22 -19
- package/src/components/ReferenceWidget.tsx +4 -4
- package/src/components/RelationSelector.tsx +14 -12
- package/src/components/SelectableTable/SelectableTable.tsx +34 -87
- package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
- package/src/components/SelectableTable/SelectionStore.ts +4 -4
- 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 +9 -9
- 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/form/EntityForm.tsx +2 -2
- package/src/form/EntityFormActions.tsx +3 -3
- package/src/form/EntityFormBinding.tsx +6 -6
- package/src/form/PropertyFieldBinding.tsx +4 -4
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -19
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +2 -2
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -5
- package/src/form/field_bindings/RelationFieldBinding.tsx +3 -3
- package/src/form/form_utils.ts +2 -2
- 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 +12 -12
- package/src/preview/components/ReferencePreview.tsx +10 -10
- package/src/preview/components/RelationPreview.tsx +13 -12
- 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/fields.tsx +2 -2
- package/src/util/dataControllerAdapter.ts +9 -15
- package/src/util/navigation_utils.ts +7 -7
- package/src/util/previews.ts +3 -3
- package/src/util/property_utils.tsx +2 -2
- package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
- package/dist/CollectionEditorDialog-BO_aQ-Z4.js.map +0 -1
- package/dist/PropertyEditView-DKzOpMjR.js.map +0 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
- 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/history-B3cqBzEV.js.map +0 -1
- package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
- package/dist/hooks/useSideEntityController.d.ts +0 -11
- package/dist/src-cxV1ODRG.js.map +0 -1
- package/src/components/EntityCollectionTable/index.tsx +0 -14
- package/src/contexts/SideEntityControllerContext.tsx +0 -5
- 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/TableStorageUpload.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/{EntityCollectionTable → CollectionTableBinding}/table_bindings.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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, EntityCustomView } from "@rebasepro/types";
|
|
2
2
|
import { Entity, RebaseContext, User } from "@rebasepro/types";
|
|
3
3
|
import { useEffect, useState, useMemo } from "react";
|
|
4
4
|
import { getNavigationEntriesFromPath } from "@rebasepro/common";
|
|
@@ -22,7 +22,7 @@ export interface ResolvedNavigationEntity<M extends Record<string, unknown>> {
|
|
|
22
22
|
entity: Entity<M>;
|
|
23
23
|
entityId: string | number;
|
|
24
24
|
path: string;
|
|
25
|
-
parentCollection:
|
|
25
|
+
parentCollection: CollectionConfig<M>;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -32,7 +32,7 @@ export interface ResolvedNavigationEntity<M extends Record<string, unknown>> {
|
|
|
32
32
|
export interface ResolvedNavigationCollection<M extends Record<string, unknown>> {
|
|
33
33
|
type: "collection";
|
|
34
34
|
path: string;
|
|
35
|
-
collection:
|
|
35
|
+
collection: CollectionConfig<M>;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -85,9 +85,12 @@ export function resolveNavigationFrom<M extends Record<string, unknown>, USER ex
|
|
|
85
85
|
if (!collection) {
|
|
86
86
|
throw Error(`No collection defined in the navigation for the entity with path ${entry.slug}`);
|
|
87
87
|
}
|
|
88
|
+
// `context.data` is the flat SDK layer; re-wrap the row into the
|
|
89
|
+
// Entity view-model the navigation entry expects.
|
|
88
90
|
return data.collection(entry.slug).findById(entry.entityId)
|
|
89
|
-
.then((
|
|
90
|
-
if (!
|
|
91
|
+
.then((row) => {
|
|
92
|
+
if (!row) return undefined;
|
|
93
|
+
const entity = { id: row.id, path: entry.slug, values: row };
|
|
91
94
|
return { ...entry,
|
|
92
95
|
entity };
|
|
93
96
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { SelectionProps, SelectionTableBinding } from "../components";
|
|
2
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import { useCallback, useMemo } from "react";
|
|
4
4
|
import { useSideDialogsController } from "../index";
|
|
5
5
|
import { useCollectionRegistryController } from "../index";
|
|
@@ -14,7 +14,7 @@ import { useCollectionRegistryController } from "../index";
|
|
|
14
14
|
* This is the same hook used internally when a reference property is defined.
|
|
15
15
|
* @group Hooks and utilities
|
|
16
16
|
*/
|
|
17
|
-
export function
|
|
17
|
+
export function useSelectionDialog<M extends Record<string, unknown>>(referenceDialogProps: Omit<SelectionProps<M>, "path"> & {
|
|
18
18
|
path?: string | false;
|
|
19
19
|
onClose?: () => void;
|
|
20
20
|
}): { open: () => void; close: () => void } {
|
|
@@ -26,15 +26,15 @@ export function useEntitySelectionDialog<M extends Record<string, unknown>>(refe
|
|
|
26
26
|
if (referenceDialogProps.path) {
|
|
27
27
|
let usedCollection = referenceDialogProps.collection;
|
|
28
28
|
if (!usedCollection)
|
|
29
|
-
usedCollection = navigation.getCollection(referenceDialogProps.path) as
|
|
29
|
+
usedCollection = navigation.getCollection(referenceDialogProps.path) as CollectionConfig<M> | undefined;
|
|
30
30
|
if (!usedCollection)
|
|
31
|
-
throw Error("Not able to resolve the collection in
|
|
31
|
+
throw Error("Not able to resolve the collection in useSelectionDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
|
|
32
32
|
sideDialogsController.open({
|
|
33
33
|
key: `reference_${referenceDialogProps.path}`,
|
|
34
34
|
component:
|
|
35
|
-
<
|
|
35
|
+
<SelectionTableBinding
|
|
36
36
|
collection={usedCollection}
|
|
37
|
-
{...referenceDialogProps as
|
|
37
|
+
{...referenceDialogProps as SelectionProps<M>}/>,
|
|
38
38
|
width: "90vw",
|
|
39
39
|
onClose: () => {
|
|
40
40
|
referenceDialogProps.onClose?.();
|
|
@@ -8,7 +8,7 @@ import { useContext } from "react";
|
|
|
8
8
|
* This hook allows you to open and close side dialogs. This is the mechanism
|
|
9
9
|
* used when open a side entity dialog, or when selecting a reference.
|
|
10
10
|
*
|
|
11
|
-
* If you want to open a side entity dialog, you can use the {@link
|
|
11
|
+
* If you want to open a side entity dialog, you can use the {@link useSidePanel}
|
|
12
12
|
* hook.
|
|
13
13
|
*
|
|
14
14
|
* If you want to select a reference, you can use the {@link useReferenceDialog}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SidePanelController } from "@rebasepro/types";
|
|
2
|
+
import React, { useContext } from "react";
|
|
3
|
+
|
|
4
|
+
export const SidePanelControllerContext = React.createContext<SidePanelController>({} as SidePanelController);
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Use this hook to retrieve a entity controller that allows you to open
|
|
8
|
+
* a side dialog to edit a entity.
|
|
9
|
+
*
|
|
10
|
+
* @see SidePanelController
|
|
11
|
+
* @group Hooks and utilities
|
|
12
|
+
*/
|
|
13
|
+
export const useSidePanel = (): SidePanelController => useContext(SidePanelControllerContext);
|
package/src/index.ts
CHANGED
|
@@ -9,26 +9,26 @@ export * from "./routes";
|
|
|
9
9
|
|
|
10
10
|
// Components — explicitly listed to avoid conflicts with ./types re-exports
|
|
11
11
|
export {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
EntityViewBinding,
|
|
13
|
+
SelectionTableBinding,
|
|
14
14
|
SelectableTable,
|
|
15
15
|
SelectableTableContext,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
CollectionViewBinding,
|
|
17
|
+
CollectionViewActions,
|
|
18
|
+
CollectionCardViewBinding,
|
|
19
|
+
EntityCardBinding,
|
|
20
20
|
useSelectionController,
|
|
21
21
|
PropertyConfigBadge,
|
|
22
22
|
PropertyIdCopyTooltip,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
CollectionTableBinding,
|
|
24
|
+
CollectionRowActions,
|
|
25
25
|
VirtualTableInput,
|
|
26
26
|
ArrayContainer,
|
|
27
27
|
type ArrayEntryParams,
|
|
28
28
|
ReferenceWidget,
|
|
29
29
|
SearchIconsView,
|
|
30
30
|
FieldCaption,
|
|
31
|
-
|
|
31
|
+
EntityPreviewBinding,
|
|
32
32
|
getFieldConfig,
|
|
33
33
|
getFieldId,
|
|
34
34
|
getDefaultFieldConfig,
|
|
@@ -38,7 +38,7 @@ export {
|
|
|
38
38
|
copyEntityAction,
|
|
39
39
|
deleteEntityAction,
|
|
40
40
|
resetPasswordAction,
|
|
41
|
-
|
|
41
|
+
SidePanelProvider,
|
|
42
42
|
Scaffold,
|
|
43
43
|
AppBar,
|
|
44
44
|
Drawer,
|
|
@@ -57,8 +57,8 @@ export {
|
|
|
57
57
|
CollectionPanel
|
|
58
58
|
} from "./components";
|
|
59
59
|
export type {
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
EntityViewBindingProps,
|
|
61
|
+
SelectionProps,
|
|
62
62
|
SelectableTableProps,
|
|
63
63
|
CollectionPanelProps
|
|
64
64
|
} from "./components";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
4
|
import { Entity, EntityReference } from "@rebasepro/types";
|
|
5
5
|
import type { PreviewSize } from "../../types/components/PropertyPreviewProps";
|
|
6
|
-
import { useCustomizationController,
|
|
6
|
+
import { useCustomizationController, useFetch, useComponentOverride, CollectionScopeProvider } from "@rebasepro/core";
|
|
7
7
|
import { Skeleton } from "@rebasepro/ui";
|
|
8
8
|
import { ErrorBoundary } from "@rebasepro/ui";
|
|
9
9
|
import { ErrorView } from "@rebasepro/core";
|
|
10
|
-
import {
|
|
10
|
+
import { EntityPreviewBinding, EntityPreviewContainer } from "../../components/EntityPreviewBinding";
|
|
11
11
|
import { useCollectionRegistryController } from "../../index";
|
|
12
12
|
import { getEntityTitlePropertyKey } from "../../util/previews";
|
|
13
13
|
import { getValueInPath } from "@rebasepro/utils";
|
|
@@ -59,7 +59,7 @@ function ReferencePreviewInternalInner({
|
|
|
59
59
|
includeId = true,
|
|
60
60
|
textOnly,
|
|
61
61
|
collection
|
|
62
|
-
}: ReferencePreviewProps & { collection?:
|
|
62
|
+
}: ReferencePreviewProps & { collection?: CollectionConfig }) {
|
|
63
63
|
const ResolvedMissingReference = useComponentOverride("Entity.MissingReference", DefaultMissingReference);
|
|
64
64
|
|
|
65
65
|
if (!collection) {
|
|
@@ -102,11 +102,11 @@ function ReferencePreviewInternal(props: ReferencePreviewProps) {
|
|
|
102
102
|
/>
|
|
103
103
|
);
|
|
104
104
|
|
|
105
|
-
if (collection
|
|
105
|
+
if (collection) {
|
|
106
106
|
return (
|
|
107
|
-
<
|
|
107
|
+
<CollectionScopeProvider collection={collection}>
|
|
108
108
|
{content}
|
|
109
|
-
</
|
|
109
|
+
</CollectionScopeProvider>
|
|
110
110
|
);
|
|
111
111
|
}
|
|
112
112
|
return content;
|
|
@@ -124,17 +124,17 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
|
|
|
124
124
|
hover,
|
|
125
125
|
textOnly
|
|
126
126
|
}: ReferencePreviewProps & {
|
|
127
|
-
collection:
|
|
127
|
+
collection: CollectionConfig<M>
|
|
128
128
|
}) {
|
|
129
129
|
|
|
130
|
-
const ResolvedEntityPreview = useComponentOverride("
|
|
130
|
+
const ResolvedEntityPreview = useComponentOverride("EntityPreview", EntityPreviewBinding);
|
|
131
131
|
const customizationController = useCustomizationController();
|
|
132
132
|
|
|
133
133
|
const {
|
|
134
134
|
entity,
|
|
135
135
|
dataLoading,
|
|
136
136
|
dataLoadingError
|
|
137
|
-
} =
|
|
137
|
+
} = useFetch({
|
|
138
138
|
path: reference.path,
|
|
139
139
|
entityId: reference.id,
|
|
140
140
|
collection,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
4
|
import { Entity, EntityRelation } from "@rebasepro/types";
|
|
5
5
|
import type { PreviewSize } from "../../types/components/PropertyPreviewProps";
|
|
6
|
-
import { useCustomizationController,
|
|
6
|
+
import { useCustomizationController, useFetch, ErrorView, useComponentOverride, CollectionScopeProvider } from "@rebasepro/core";
|
|
7
7
|
import { Skeleton } from "@rebasepro/ui";
|
|
8
|
-
import {
|
|
8
|
+
import { EntityPreviewBinding, EntityPreviewContainer } from "../../components";
|
|
9
9
|
import { useCollectionRegistryController } from "../../index";
|
|
10
10
|
import { getEntityTitlePropertyKey } from "../../util/previews";
|
|
11
11
|
import { getValueInPath } from "@rebasepro/utils";
|
|
@@ -31,7 +31,7 @@ function extractDisplayFromPlainObject(obj: unknown): string {
|
|
|
31
31
|
if (!obj || typeof obj !== "object") return "—";
|
|
32
32
|
const record = obj as Record<string, unknown>;
|
|
33
33
|
|
|
34
|
-
// Try data.values.{name,title,...} (EntityRelation.data is
|
|
34
|
+
// Try data.values.{name,title,...} (EntityRelation.data is a Entity with .values)
|
|
35
35
|
const data = record.data;
|
|
36
36
|
if (data && typeof data === "object") {
|
|
37
37
|
const dataRecord = data as Record<string, unknown>;
|
|
@@ -92,7 +92,7 @@ function RelationPreviewInternalInner({
|
|
|
92
92
|
includeId = true,
|
|
93
93
|
textOnly,
|
|
94
94
|
collection
|
|
95
|
-
}: RelationPreviewProps & { collection?:
|
|
95
|
+
}: RelationPreviewProps & { collection?: CollectionConfig }) {
|
|
96
96
|
const ResolvedMissingReference = useComponentOverride("Entity.MissingReference", DefaultMissingReference);
|
|
97
97
|
|
|
98
98
|
if (!collection) {
|
|
@@ -132,11 +132,11 @@ function RelationPreviewInternal(props: RelationPreviewProps) {
|
|
|
132
132
|
/>
|
|
133
133
|
);
|
|
134
134
|
|
|
135
|
-
if (collection
|
|
135
|
+
if (collection) {
|
|
136
136
|
return (
|
|
137
|
-
<
|
|
137
|
+
<CollectionScopeProvider collection={collection}>
|
|
138
138
|
{content}
|
|
139
|
-
</
|
|
139
|
+
</CollectionScopeProvider>
|
|
140
140
|
);
|
|
141
141
|
}
|
|
142
142
|
return content;
|
|
@@ -154,18 +154,19 @@ function RelationPreviewExisting<M extends Record<string, unknown> = Record<stri
|
|
|
154
154
|
hover,
|
|
155
155
|
textOnly
|
|
156
156
|
}: RelationPreviewProps & {
|
|
157
|
-
collection:
|
|
157
|
+
collection: CollectionConfig<M>
|
|
158
158
|
}) {
|
|
159
159
|
|
|
160
|
-
|
|
161
|
-
const
|
|
160
|
+
// CMS wire format embeds relation data as { id, path, values }
|
|
161
|
+
const passedEntity = relation.data as Entity<M> | undefined;
|
|
162
|
+
const ResolvedEntityPreview = useComponentOverride("EntityPreview", EntityPreviewBinding);
|
|
162
163
|
const customizationController = useCustomizationController();
|
|
163
164
|
|
|
164
165
|
const {
|
|
165
166
|
entity,
|
|
166
167
|
dataLoading,
|
|
167
168
|
dataLoadingError
|
|
168
|
-
} =
|
|
169
|
+
} = useFetch({
|
|
169
170
|
path: relation.path,
|
|
170
171
|
entityId: passedEntity ? undefined : relation.id,
|
|
171
172
|
collection,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, ViewMode } from "@rebasepro/types";
|
|
2
2
|
import { Blocker, useBlocker, useLocation } from "react-router-dom";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { EditViewBinding } from "../components/EditViewBinding";
|
|
4
|
+
import { DetailViewBinding } from "../components/DetailViewBinding";
|
|
5
5
|
import { useEffect, useRef, useState } from "react";
|
|
6
6
|
import { useNavigate } from "react-router-dom";
|
|
7
|
-
import {
|
|
7
|
+
import { CollectionViewBinding } from "../components";
|
|
8
8
|
import { NotFoundPage, useUserConfigurationPersistence, useComponentOverride } from "@rebasepro/core";
|
|
9
9
|
import { UnsavedChangesDialog } from "@rebasepro/core";
|
|
10
10
|
import { CircularProgressCenter } from "@rebasepro/ui";
|
|
@@ -20,7 +20,7 @@ export function RebaseRoute() {
|
|
|
20
20
|
const urlController = useUrlController();
|
|
21
21
|
const breadcrumbs = useBreadcrumbsController();
|
|
22
22
|
const userConfigPersistence = useUserConfigurationPersistence();
|
|
23
|
-
const ResolvedCollectionView = useComponentOverride("Collection.View",
|
|
23
|
+
const ResolvedCollectionView = useComponentOverride("Collection.View", CollectionViewBinding);
|
|
24
24
|
|
|
25
25
|
const hash = location.hash;
|
|
26
26
|
const isSidePanel = hash.includes("#side");
|
|
@@ -82,7 +82,7 @@ export function RebaseRoute() {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
if (navigationEntries.length === 1 && navigationEntries[0].type === "collection") {
|
|
85
|
-
let collection:
|
|
85
|
+
let collection: CollectionConfig<any> | undefined;
|
|
86
86
|
collection = collectionRegistry.getCollection(navigationEntries[0].id);
|
|
87
87
|
if (!collection)
|
|
88
88
|
collection = collectionRegistry.getCollection(navigationEntries[0].slug);
|
|
@@ -104,7 +104,7 @@ export function RebaseRoute() {
|
|
|
104
104
|
if (isSidePanel) {
|
|
105
105
|
const lastCollectionEntry = [...navigationEntries].reverse().find((entry) => entry.type === "collection");
|
|
106
106
|
if (lastCollectionEntry) {
|
|
107
|
-
let collection:
|
|
107
|
+
let collection: CollectionConfig<any> | undefined;
|
|
108
108
|
const firstEntry = navigationEntries[0] as NavigationViewCollectionInternal<any>;
|
|
109
109
|
collection = collectionRegistry.getCollection(firstEntry.id);
|
|
110
110
|
if (!collection)
|
|
@@ -140,7 +140,7 @@ export function RebaseRoute() {
|
|
|
140
140
|
lastEntityEntry?.type === "entity" &&
|
|
141
141
|
(navigationEntries.length === 2 || navigationEntries.length === 3)
|
|
142
142
|
) {
|
|
143
|
-
let collection:
|
|
143
|
+
let collection: CollectionConfig<any> | undefined;
|
|
144
144
|
collection = collectionRegistry.getCollection(firstCollectionEntry.id);
|
|
145
145
|
if (!collection)
|
|
146
146
|
collection = collectionRegistry.getCollection(firstCollectionEntry.slug);
|
|
@@ -345,7 +345,7 @@ function EntityFullScreenRoute({
|
|
|
345
345
|
|
|
346
346
|
if (isDetailMode) {
|
|
347
347
|
return <>
|
|
348
|
-
<
|
|
348
|
+
<DetailViewBinding
|
|
349
349
|
key={collection.slug + "_view_" + entityId}
|
|
350
350
|
entityId={entityId}
|
|
351
351
|
collection={collection}
|
|
@@ -372,7 +372,7 @@ function EntityFullScreenRoute({
|
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
return <>
|
|
375
|
-
<
|
|
375
|
+
<EditViewBinding
|
|
376
376
|
key={collection.slug + "_" + (isNew ? "new" : (isCopy ? entityId + "_copy" : entityId))}
|
|
377
377
|
entityId={isNew ? undefined : entityId}
|
|
378
378
|
collection={collection}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Entity } from "@rebasepro/types";
|
|
2
|
-
import {
|
|
2
|
+
import { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import { FormContext } from "../fields";
|
|
4
4
|
import { FormexController } from "./formex";
|
|
5
5
|
|
|
6
6
|
export interface EntityFormActionsProps {
|
|
7
7
|
path: string;
|
|
8
|
-
collection:
|
|
8
|
+
collection: CollectionConfig;
|
|
9
9
|
entity?: Entity;
|
|
10
10
|
layout: "bottom" | "side" | "responsive";
|
|
11
11
|
savingError?: Error;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Entity, EntityStatus } from "@rebasepro/types";
|
|
2
|
-
import {
|
|
2
|
+
import { CollectionConfig, EntityCustomViewParams } from "@rebasepro/types";
|
|
3
3
|
import { FormContext } from "../fields";
|
|
4
4
|
import { FormexController } from "./formex";
|
|
5
5
|
import { EntityFormActionsProps } from "./EntityFormActionsProps";
|
|
@@ -12,7 +12,7 @@ import { EntityFormActionsProps } from "./EntityFormActionsProps";
|
|
|
12
12
|
export type EntityFormProps<M extends Record<string, unknown>> = {
|
|
13
13
|
path: string;
|
|
14
14
|
fullIdPath?: string;
|
|
15
|
-
collection:
|
|
15
|
+
collection: CollectionConfig<M>;
|
|
16
16
|
entityId?: string | number;
|
|
17
17
|
entity?: Entity<M>;
|
|
18
18
|
databaseId?: string;
|
|
@@ -120,5 +120,5 @@ export type OnUpdateParams = {
|
|
|
120
120
|
path: string,
|
|
121
121
|
entityId?: string | number;
|
|
122
122
|
selectedTab?: string;
|
|
123
|
-
collection:
|
|
123
|
+
collection: CollectionConfig<Record<string, unknown>>
|
|
124
124
|
};
|
package/src/types/fields.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InferPropertyType } from "@rebasepro/types";
|
|
2
2
|
import { Entity } from "@rebasepro/types";
|
|
3
3
|
import { FormexController } from "./components/formex";
|
|
4
|
-
import {
|
|
4
|
+
import { CollectionConfig } from "@rebasepro/types";
|
|
5
5
|
import { Property } from "@rebasepro/types";
|
|
6
6
|
|
|
7
7
|
export type DefaultFieldConfig =
|
|
@@ -190,7 +190,7 @@ export interface FormContext<M extends Record<string, unknown> = Record<string,
|
|
|
190
190
|
/**
|
|
191
191
|
* Collection of the entity being modified
|
|
192
192
|
*/
|
|
193
|
-
collection?:
|
|
193
|
+
collection?: CollectionConfig<M>;
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
196
|
* Entity id, it can be undefined if it's a new entity
|
|
@@ -9,25 +9,19 @@ import type { Entity, EntityTableController } from "@rebasepro/types";
|
|
|
9
9
|
import type { CollectionDataController } from "@rebasepro/ui";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* The
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* The flattened row includes `id` and `path` at the top level,
|
|
17
|
-
* plus all values spread.
|
|
12
|
+
* Unwrap `Entity<M>` objects to flat rows for the headless view.
|
|
13
|
+
* The entity system uses `{ id, path, values: M }`; `values` is already the
|
|
14
|
+
* flat row `M` carrying its real primary key, so unwrapping is just `.values` —
|
|
15
|
+
* no `id`/`path` merge (those are view-model metadata, not row columns).
|
|
18
16
|
*/
|
|
19
17
|
function flattenEntities<M extends Record<string, unknown>>(
|
|
20
18
|
entities: Entity<M>[]
|
|
21
|
-
):
|
|
22
|
-
return entities.map(entity =>
|
|
23
|
-
id: entity.id,
|
|
24
|
-
path: entity.path,
|
|
25
|
-
...entity.values
|
|
26
|
-
}));
|
|
19
|
+
): M[] {
|
|
20
|
+
return entities.map(entity => entity.values);
|
|
27
21
|
}
|
|
28
22
|
|
|
29
23
|
/**
|
|
30
|
-
* React hook that adapts
|
|
24
|
+
* React hook that adapts a EntityTableController to a CollectionDataController.
|
|
31
25
|
*
|
|
32
26
|
* Usage:
|
|
33
27
|
* ```tsx
|
|
@@ -39,13 +33,13 @@ function flattenEntities<M extends Record<string, unknown>>(
|
|
|
39
33
|
*/
|
|
40
34
|
export function useCollectionDataController<M extends Record<string, unknown>>(
|
|
41
35
|
tableController: EntityTableController<M>
|
|
42
|
-
): CollectionDataController<M
|
|
36
|
+
): CollectionDataController<M> {
|
|
43
37
|
const flatData = useMemo(
|
|
44
38
|
() => flattenEntities(tableController.data),
|
|
45
39
|
[tableController.data]
|
|
46
40
|
);
|
|
47
41
|
|
|
48
|
-
return useMemo((): CollectionDataController<M
|
|
42
|
+
return useMemo((): CollectionDataController<M> => ({
|
|
49
43
|
data: flatData,
|
|
50
44
|
loading: tableController.dataLoading,
|
|
51
45
|
noMoreToLoad: tableController.noMoreToLoad,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, UrlController, SidePanelController, NavigateOptions } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
// Canonical path utilities — single source of truth in @rebasepro/common
|
|
4
4
|
export {
|
|
@@ -13,7 +13,7 @@ export {
|
|
|
13
13
|
} from "@rebasepro/common";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* Navigate to
|
|
16
|
+
* Navigate to a entity using either a side panel or full-screen mode.
|
|
17
17
|
* This is an admin-specific UI concern and lives here (not in common).
|
|
18
18
|
*/
|
|
19
19
|
export function navigateToEntity({
|
|
@@ -24,7 +24,7 @@ export function navigateToEntity({
|
|
|
24
24
|
path,
|
|
25
25
|
selectedTab,
|
|
26
26
|
defaultValues,
|
|
27
|
-
|
|
27
|
+
sidePanelController,
|
|
28
28
|
onClose,
|
|
29
29
|
navigation,
|
|
30
30
|
replace
|
|
@@ -32,7 +32,7 @@ export function navigateToEntity({
|
|
|
32
32
|
|
|
33
33
|
{
|
|
34
34
|
openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
|
|
35
|
-
collection?:
|
|
35
|
+
collection?: CollectionConfig;
|
|
36
36
|
entityId?: string | number;
|
|
37
37
|
selectedTab?: string;
|
|
38
38
|
copy?: boolean;
|
|
@@ -40,13 +40,13 @@ export function navigateToEntity({
|
|
|
40
40
|
* Pre-populate the new entity form with these values.
|
|
41
41
|
* Only applied when entityId is not set (i.e. "new" mode).
|
|
42
42
|
*
|
|
43
|
-
* Side panel: passed through
|
|
43
|
+
* Side panel: passed through SidePanelBindingProps → EditViewBinding.
|
|
44
44
|
* Full screen: carried via React Router location.state so the route
|
|
45
45
|
* component can read it on mount without polluting the URL.
|
|
46
46
|
*/
|
|
47
47
|
defaultValues?: Record<string, unknown>;
|
|
48
48
|
path: string;
|
|
49
|
-
|
|
49
|
+
sidePanelController: SidePanelController;
|
|
50
50
|
onClose?: () => void;
|
|
51
51
|
navigation: UrlController;
|
|
52
52
|
replace?: boolean;
|
|
@@ -55,7 +55,7 @@ export function navigateToEntity({
|
|
|
55
55
|
if (openEntityMode === "side_panel" || openEntityMode === "dialog") {
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
sidePanelController.open({
|
|
59
59
|
entityId,
|
|
60
60
|
path: path,
|
|
61
61
|
copy,
|
package/src/util/previews.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, Property, PropertyConfig } from "@rebasepro/types";
|
|
2
2
|
import { AuthController } from "@rebasepro/types";
|
|
3
3
|
import { isPropertyBuilder } from "@rebasepro/common";
|
|
4
4
|
import { isReferenceProperty, isRelationProperty } from "./property_utils";
|
|
@@ -29,7 +29,7 @@ function isStorageProperty(property: Property | undefined): boolean {
|
|
|
29
29
|
|
|
30
30
|
export function getEntityPreviewKeys(
|
|
31
31
|
authController: AuthController,
|
|
32
|
-
targetCollection:
|
|
32
|
+
targetCollection: CollectionConfig<any>,
|
|
33
33
|
fields: Record<string, PropertyConfig>,
|
|
34
34
|
previewProperties?: string[],
|
|
35
35
|
limit = 3) {
|
|
@@ -58,7 +58,7 @@ export function getEntityPreviewKeys(
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
export function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection:
|
|
61
|
+
export function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection: CollectionConfig<M>, propertyConfigs: Record<string, PropertyConfig>): string | undefined {
|
|
62
62
|
if (collection.titleProperty) {
|
|
63
63
|
return collection.titleProperty as string;
|
|
64
64
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import type { Properties } from "@rebasepro/types";
|
|
3
|
-
import type {
|
|
3
|
+
import type { CollectionConfig, MapProperty, Property, PropertyConfig } from "@rebasepro/types";
|
|
4
4
|
import React from "react";
|
|
5
5
|
|
|
6
6
|
import { isPropertyBuilder } from "@rebasepro/common";
|
|
@@ -224,7 +224,7 @@ export function getPropertiesWithPropertiesOrder(properties: Properties, propert
|
|
|
224
224
|
return result;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
export function getDefaultPropertiesOrder(collection:
|
|
227
|
+
export function getDefaultPropertiesOrder(collection: CollectionConfig): string[] {
|
|
228
228
|
if (collection.propertiesOrder) return collection.propertiesOrder;
|
|
229
229
|
return [...Object.keys(collection.properties), ...(collection.additionalFields ?? []).map(field => field.key)];
|
|
230
230
|
}
|