@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,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
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
useTranslation
|
|
9
9
|
} from "@rebasepro/core";
|
|
10
10
|
import { DeleteEntityDialog } from "../DeleteEntityDialog";
|
|
11
|
-
import { addRecentId } from "../
|
|
11
|
+
import { addRecentId } from "../CollectionViewBinding/utils";
|
|
12
12
|
import { navigateToEntity } from "../../util/navigation_utils";
|
|
13
13
|
import { resolveDefaultSelectedView } from "@rebasepro/common";
|
|
14
14
|
import { CreationResultDialog } from "../admin/CreationResultDialog";
|
|
@@ -25,7 +25,7 @@ export const editEntityAction: EntityAction = {
|
|
|
25
25
|
collection,
|
|
26
26
|
path,
|
|
27
27
|
context,
|
|
28
|
-
|
|
28
|
+
sidePanelController,
|
|
29
29
|
highlightEntity,
|
|
30
30
|
unhighlightEntity,
|
|
31
31
|
openEntityMode
|
|
@@ -35,8 +35,8 @@ export const editEntityAction: EntityAction = {
|
|
|
35
35
|
throw new Error("INTERNAL: editEntityAction: Entity is undefined");
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
if (!
|
|
39
|
-
throw new Error("INTERNAL: editEntityAction:
|
|
38
|
+
if (!sidePanelController) {
|
|
39
|
+
throw new Error("INTERNAL: editEntityAction: sidePanelController is undefined");
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
highlightEntity?.(entity);
|
|
@@ -68,7 +68,7 @@ export const editEntityAction: EntityAction = {
|
|
|
68
68
|
collection,
|
|
69
69
|
entityId: entity.id,
|
|
70
70
|
path: newFullIdPath,
|
|
71
|
-
|
|
71
|
+
sidePanelController,
|
|
72
72
|
onClose: () => unhighlightEntity?.(entity),
|
|
73
73
|
navigation: context.urlController,
|
|
74
74
|
selectedTab: defaultSelectedView
|
|
@@ -88,7 +88,7 @@ export const copyEntityAction: EntityAction = {
|
|
|
88
88
|
collection,
|
|
89
89
|
context,
|
|
90
90
|
path,
|
|
91
|
-
|
|
91
|
+
sidePanelController,
|
|
92
92
|
highlightEntity,
|
|
93
93
|
unhighlightEntity,
|
|
94
94
|
openEntityMode
|
|
@@ -96,8 +96,8 @@ export const copyEntityAction: EntityAction = {
|
|
|
96
96
|
if (!entity) {
|
|
97
97
|
throw new Error("INTERNAL: copyEntityAction: Entity is undefined");
|
|
98
98
|
}
|
|
99
|
-
if (!
|
|
100
|
-
throw new Error("INTERNAL: copyEntityAction:
|
|
99
|
+
if (!sidePanelController) {
|
|
100
|
+
throw new Error("INTERNAL: copyEntityAction: sidePanelController is undefined");
|
|
101
101
|
}
|
|
102
102
|
highlightEntity?.(entity);
|
|
103
103
|
context?.analyticsController?.onAnalyticsEvent?.("copy_entity_click", {
|
|
@@ -115,7 +115,7 @@ export const copyEntityAction: EntityAction = {
|
|
|
115
115
|
entityId: entity.id,
|
|
116
116
|
path: usedPath,
|
|
117
117
|
copy: true,
|
|
118
|
-
|
|
118
|
+
sidePanelController,
|
|
119
119
|
onClose: () => unhighlightEntity?.(entity),
|
|
120
120
|
navigation: context.urlController
|
|
121
121
|
});
|
|
@@ -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/form/EntityForm.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, EntityCustomViewParams, AdditionalFieldDelegateProps } from "@rebasepro/types";
|
|
2
2
|
import type { FormContext, PropertyFieldBindingProps } from "../types/fields";
|
|
3
3
|
import type { PropertyConfig } from "@rebasepro/types";
|
|
4
4
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
/**
|
|
34
34
|
* Headless entity form component.
|
|
35
35
|
*
|
|
36
|
-
* Renders a form for
|
|
36
|
+
* Renders a form for a entity collection without any CMS or backend dependencies.
|
|
37
37
|
* All backend concerns (save, caching, analytics, plugin slots) are provided via
|
|
38
38
|
* callback props. For CMS-connected usage, use {@link EntityFormBinding} instead.
|
|
39
39
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import { type
|
|
2
|
+
import { type CollectionConfig, getCollectionDataPath } from "@rebasepro/types";
|
|
3
3
|
import type { FormContext } from "../types/fields";
|
|
4
4
|
import type { EntityAction } from "@rebasepro/types";
|
|
5
5
|
import React from "react";
|
|
@@ -81,7 +81,7 @@ type ActionsViewProps<M extends Record<string, unknown>> = {
|
|
|
81
81
|
savingError: Error | undefined,
|
|
82
82
|
entity: Entity<M> | undefined,
|
|
83
83
|
formActions?: EntityAction[],
|
|
84
|
-
collection:
|
|
84
|
+
collection: CollectionConfig,
|
|
85
85
|
disabled: boolean,
|
|
86
86
|
status: "new" | "existing" | "copy",
|
|
87
87
|
pluginActions?: React.ReactNode[],
|
|
@@ -130,7 +130,7 @@ function buildBottomActions<M extends Record<string, unknown>>({
|
|
|
130
130
|
path: path ?? getCollectionDataPath(collection),
|
|
131
131
|
collection: collection,
|
|
132
132
|
context: undefined,
|
|
133
|
-
|
|
133
|
+
sidePanelController: undefined,
|
|
134
134
|
openEntityMode: openEntityMode,
|
|
135
135
|
navigateBack,
|
|
136
136
|
formContext
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, PluginFormActionProps } from "@rebasepro/types";
|
|
2
2
|
import type { FormContext } from "../types/fields";
|
|
3
3
|
import React, { useCallback, useMemo, useState } from "react";
|
|
4
4
|
import { AnalyticsEvent, Entity, EntityStatus, EntityValues } from "@rebasepro/types";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
saveEntityToCache
|
|
27
27
|
} from "@rebasepro/core";
|
|
28
28
|
|
|
29
|
-
import { useCollectionRegistryController,
|
|
29
|
+
import { useCollectionRegistryController, useSidePanel, useCMSContext } from "../index";
|
|
30
30
|
import { EntityForm } from "./EntityForm";
|
|
31
31
|
import {
|
|
32
32
|
extractTouchedValues,
|
|
@@ -92,7 +92,7 @@ export function EntityFormBinding<M extends Record<string, unknown>>({
|
|
|
92
92
|
}: EntityFormBindingProps<M>) {
|
|
93
93
|
|
|
94
94
|
const { t } = useTranslation();
|
|
95
|
-
const
|
|
95
|
+
const sidePanelController = useSidePanel();
|
|
96
96
|
const collectionRegistryController = useCollectionRegistryController();
|
|
97
97
|
const authController = useAuthController();
|
|
98
98
|
const dataClient = useData();
|
|
@@ -153,11 +153,11 @@ export function EntityFormBinding<M extends Record<string, unknown>>({
|
|
|
153
153
|
return;
|
|
154
154
|
}
|
|
155
155
|
if (openEntityMode === "side_panel" || openEntityMode === "dialog") {
|
|
156
|
-
|
|
156
|
+
sidePanelController.close();
|
|
157
157
|
} else {
|
|
158
158
|
window.history.back();
|
|
159
159
|
}
|
|
160
|
-
}, [navigateBackProp, openEntityMode,
|
|
160
|
+
}, [navigateBackProp, openEntityMode, sidePanelController]);
|
|
161
161
|
|
|
162
162
|
// --- Cache operations ---
|
|
163
163
|
const clearDirtyCache = useCallback(() => {
|
|
@@ -276,7 +276,7 @@ export function EntityFormBinding<M extends Record<string, unknown>>({
|
|
|
276
276
|
parentEntityIds,
|
|
277
277
|
path,
|
|
278
278
|
status,
|
|
279
|
-
collection: collection as
|
|
279
|
+
collection: collection as CollectionConfig,
|
|
280
280
|
context,
|
|
281
281
|
formContext: undefined as unknown as FormContext<Record<string, unknown>>,
|
|
282
282
|
openEntityMode,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, FieldProps as CoreFieldProps } from "@rebasepro/types";
|
|
2
2
|
import type { FieldProps, PropertyFieldBindingProps } from "../types/fields";
|
|
3
3
|
import type { RebasePlugin, PluginFieldBuilderParams, Property } from "@rebasepro/types";
|
|
4
4
|
import React, { ComponentType, ReactElement, Suspense, useCallback, useRef } from "react";
|
|
@@ -29,7 +29,7 @@ import { ErrorBoundary } from "@rebasepro/ui";
|
|
|
29
29
|
*
|
|
30
30
|
* Please note that if you build a custom field in a component, the
|
|
31
31
|
* **validation** passed in the property will have no effect. You need to set
|
|
32
|
-
* the validation in the `
|
|
32
|
+
* the validation in the `CollectionConfig` definition.
|
|
33
33
|
*
|
|
34
34
|
* @param propertyKey You can use nested names such as `address.street` or `friends[2]`
|
|
35
35
|
* @param property
|
|
@@ -292,7 +292,7 @@ const shouldPropertyReRender = (property: Property, plugins?: RebasePlugin[]): b
|
|
|
292
292
|
|
|
293
293
|
interface UseWrappedComponentParams<M extends Record<string, unknown> = Record<string, unknown>> {
|
|
294
294
|
path?: string,
|
|
295
|
-
collection?:
|
|
295
|
+
collection?: CollectionConfig<M>,
|
|
296
296
|
propertyKey: string,
|
|
297
297
|
property: Property,
|
|
298
298
|
Component: ComponentType<FieldProps<Property, unknown, M>>,
|
|
@@ -323,7 +323,7 @@ function useWrappedComponent<T, M extends Record<string, unknown> = Record<strin
|
|
|
323
323
|
Field: Component as unknown as ComponentType<CoreFieldProps<Property, unknown, Record<string, unknown>>>,
|
|
324
324
|
plugin,
|
|
325
325
|
path,
|
|
326
|
-
collection: collection as
|
|
326
|
+
collection: collection as CollectionConfig | undefined
|
|
327
327
|
};
|
|
328
328
|
const enabled = plugin.fieldBuilder.enabled?.(params);
|
|
329
329
|
if (enabled === undefined || enabled)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { useSelectionDialog } from "../../hooks/useSelectionDialog";
|
|
2
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import type { FieldProps } from "../../types/fields";
|
|
4
4
|
import type { ArrayProperty, Property } from "@rebasepro/types";
|
|
5
5
|
import React, { useCallback, useMemo } from "react";
|
|
@@ -56,7 +56,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
const collectionRegistryController = useCollectionRegistryController();
|
|
59
|
-
const collection:
|
|
59
|
+
const collection: CollectionConfig | undefined = useMemo(() => {
|
|
60
60
|
return ofProperty.path ? collectionRegistryController.getCollection(ofProperty.path) : undefined;
|
|
61
61
|
}, [ofProperty.path]);
|
|
62
62
|
|
|
@@ -69,7 +69,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
69
69
|
setValue(refs);
|
|
70
70
|
}, [setValue]);
|
|
71
71
|
|
|
72
|
-
const referenceDialogController =
|
|
72
|
+
const referenceDialogController = useSelectionDialog({
|
|
73
73
|
multiselect: true,
|
|
74
74
|
path: ofProperty.path,
|
|
75
75
|
collection,
|
|
@@ -134,13 +134,13 @@ function MapEditView<T extends Record<string, unknown>>({
|
|
|
134
134
|
setInternalState(newRowIds);
|
|
135
135
|
}, [value]);
|
|
136
136
|
|
|
137
|
-
const updatetype = (
|
|
138
|
-
if (!
|
|
137
|
+
const updatetype = (id: number, type: DataType) => {
|
|
138
|
+
if (!id) {
|
|
139
139
|
console.warn("No key selected for data type update");
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
142
|
setInternalState(internalState.map((row) => {
|
|
143
|
-
if (row[0] ===
|
|
143
|
+
if (row[0] === id) {
|
|
144
144
|
return [row[0], {
|
|
145
145
|
key: row[1].key,
|
|
146
146
|
type
|
|
@@ -150,27 +150,27 @@ function MapEditView<T extends Record<string, unknown>>({
|
|
|
150
150
|
}));
|
|
151
151
|
setValue({
|
|
152
152
|
...(value ?? {} as T),
|
|
153
|
-
[internalState.find((row) => row[0] ===
|
|
153
|
+
[internalState.find((row) => row[0] === id)?.[1].key ?? ""]: getDefaultValueFortype(type)
|
|
154
154
|
})
|
|
155
155
|
};
|
|
156
156
|
|
|
157
157
|
return <div className="py-1 flex flex-col gap-1">
|
|
158
158
|
{internalState
|
|
159
|
-
.map(([
|
|
159
|
+
.map(([id, {
|
|
160
160
|
key: fieldKey,
|
|
161
161
|
type
|
|
162
162
|
}], index) => {
|
|
163
163
|
const entryValue = fieldKey ? value?.[fieldKey] : "";
|
|
164
164
|
const onFieldKeyChange = (newKey: string) => {
|
|
165
165
|
|
|
166
|
-
setInternalState(internalState.map((
|
|
167
|
-
if (
|
|
168
|
-
return [
|
|
166
|
+
setInternalState(internalState.map((currentId) => {
|
|
167
|
+
if (currentId[0] === id) {
|
|
168
|
+
return [id, {
|
|
169
169
|
key: newKey ?? "",
|
|
170
|
-
type:
|
|
170
|
+
type: currentId[1].type
|
|
171
171
|
}];
|
|
172
172
|
}
|
|
173
|
-
return
|
|
173
|
+
return currentId;
|
|
174
174
|
}));
|
|
175
175
|
|
|
176
176
|
if (typeof value === "object" && newKey in value) {
|
|
@@ -189,8 +189,8 @@ function MapEditView<T extends Record<string, unknown>>({
|
|
|
189
189
|
[newKey ?? ""]: entryValue
|
|
190
190
|
});
|
|
191
191
|
};
|
|
192
|
-
return <MapKeyValueRow
|
|
193
|
-
key={
|
|
192
|
+
return <MapKeyValueRow id={id}
|
|
193
|
+
key={id}
|
|
194
194
|
fieldKey={fieldKey}
|
|
195
195
|
value={value ?? {} as T}
|
|
196
196
|
onDeleteClick={() => {
|
|
@@ -200,7 +200,7 @@ function MapEditView<T extends Record<string, unknown>>({
|
|
|
200
200
|
} else {
|
|
201
201
|
delete (newValue as Record<string, unknown>)[fieldKey];
|
|
202
202
|
}
|
|
203
|
-
setInternalState(internalState.filter((
|
|
203
|
+
setInternalState(internalState.filter((currentId) => currentId[0] !== id));
|
|
204
204
|
setValue({
|
|
205
205
|
...newValue
|
|
206
206
|
});
|
|
@@ -238,7 +238,7 @@ function MapEditView<T extends Record<string, unknown>>({
|
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
function MapKeyValueRow<T extends Record<string, unknown>>({
|
|
241
|
-
|
|
241
|
+
id,
|
|
242
242
|
fieldKey,
|
|
243
243
|
value,
|
|
244
244
|
onFieldKeyChange,
|
|
@@ -249,7 +249,7 @@ function MapKeyValueRow<T extends Record<string, unknown>>({
|
|
|
249
249
|
updatetype,
|
|
250
250
|
disabled
|
|
251
251
|
}: {
|
|
252
|
-
|
|
252
|
+
id: number,
|
|
253
253
|
fieldKey: string,
|
|
254
254
|
value: T,
|
|
255
255
|
onFieldKeyChange: (newKey: string) => void,
|
|
@@ -258,7 +258,7 @@ function MapKeyValueRow<T extends Record<string, unknown>>({
|
|
|
258
258
|
entryValue: unknown,
|
|
259
259
|
type: DataType,
|
|
260
260
|
disabled?: boolean,
|
|
261
|
-
updatetype: (
|
|
261
|
+
updatetype: (id: number, type: DataType) => void
|
|
262
262
|
}) {
|
|
263
263
|
|
|
264
264
|
const { locale } = useCustomizationController();
|
|
@@ -327,7 +327,7 @@ function MapKeyValueRow<T extends Record<string, unknown>>({
|
|
|
327
327
|
className={cls(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
|
|
328
328
|
<ArrayContainer value={arrayValue}
|
|
329
329
|
newDefaultEntry={""}
|
|
330
|
-
droppableId={
|
|
330
|
+
droppableId={id.toString()}
|
|
331
331
|
addLabel={fieldKey ? t("add_to_field", { fieldName: fieldKey }) : t("add")}
|
|
332
332
|
size={"small"}
|
|
333
333
|
disabled={disabled || !fieldKey}
|
|
@@ -379,11 +379,11 @@ function MapKeyValueRow<T extends Record<string, unknown>>({
|
|
|
379
379
|
}
|
|
380
380
|
|
|
381
381
|
function doUpdatetype(type: DataType) {
|
|
382
|
-
updatetype(
|
|
382
|
+
updatetype(id, type);
|
|
383
383
|
}
|
|
384
384
|
|
|
385
385
|
return (<>
|
|
386
|
-
<Typography key={
|
|
386
|
+
<Typography key={id.toString()}
|
|
387
387
|
component={"div"}
|
|
388
388
|
className="font-mono flex flex-row gap-1">
|
|
389
389
|
<div className="w-[300px] max-w-[30%]">
|