@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
|
@@ -4,7 +4,7 @@ import React, { useMemo, useState } from "react";
|
|
|
4
4
|
import { useCustomizationController } from "@rebasepro/core";
|
|
5
5
|
import { getFieldConfig } from "../../../components/field_configs";
|
|
6
6
|
import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
|
|
7
|
-
import {
|
|
7
|
+
import { CollectionConfig, Property } from "@rebasepro/types";
|
|
8
8
|
import {
|
|
9
9
|
BooleanSwitchWithLabel,
|
|
10
10
|
Button,
|
|
@@ -39,7 +39,7 @@ export function DisplaySettingsForm({
|
|
|
39
39
|
setFieldValue,
|
|
40
40
|
handleChange,
|
|
41
41
|
submitCount
|
|
42
|
-
} = useFormex<
|
|
42
|
+
} = useFormex<CollectionConfig>();
|
|
43
43
|
|
|
44
44
|
const [orderPropertyDialogOpen, setOrderPropertyDialogOpen] = useState(false);
|
|
45
45
|
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
useCustomizationController
|
|
6
6
|
} from "@rebasepro/core";
|
|
7
7
|
import { resolveEntityAction } from "../../_cms_internals";
|
|
8
|
-
import { type
|
|
8
|
+
import { type CollectionConfig } from "@rebasepro/types";
|
|
9
9
|
import { EntityAction } from "@rebasepro/types";
|
|
10
10
|
import {
|
|
11
11
|
Alert,
|
|
@@ -30,7 +30,7 @@ export function EntityActionsEditTab({
|
|
|
30
30
|
collection,
|
|
31
31
|
embedded = false
|
|
32
32
|
}: {
|
|
33
|
-
collection:
|
|
33
|
+
collection: CollectionConfig,
|
|
34
34
|
embedded?: boolean;
|
|
35
35
|
}) {
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ export function EntityActionsEditTab({
|
|
|
42
42
|
const {
|
|
43
43
|
values,
|
|
44
44
|
setFieldValue
|
|
45
|
-
} = useFormex<
|
|
45
|
+
} = useFormex<CollectionConfig>();
|
|
46
46
|
|
|
47
47
|
const resolvedEntityActions = ((values.entityActions ?? []) as (string | EntityAction<any>)[])
|
|
48
48
|
.filter((e): e is string => typeof e === "string")
|
|
@@ -4,7 +4,7 @@ import { FieldCaption } from "../../_cms_internals";
|
|
|
4
4
|
import React, { useState } from "react";
|
|
5
5
|
|
|
6
6
|
import { SearchIconsView } from "../../_cms_internals";
|
|
7
|
-
import type {
|
|
7
|
+
import type { CollectionConfig, PostgresCollectionConfig } from "@rebasepro/types";
|
|
8
8
|
import {
|
|
9
9
|
BooleanSwitchWithLabel,
|
|
10
10
|
Chip,
|
|
@@ -27,7 +27,7 @@ import { Field, getIn, useFormex } from "@rebasepro/formex";
|
|
|
27
27
|
import { useCollectionsConfigController } from "../../useCollectionsConfigController";
|
|
28
28
|
import { singular, toSnakeCase } from "@rebasepro/utils";
|
|
29
29
|
import type { ExtraCollectionFieldsParams } from "../../extensibility_types";
|
|
30
|
-
import {
|
|
30
|
+
import { toSerializableCollectionConfig } from "../../serializable_utils";
|
|
31
31
|
|
|
32
32
|
export function GeneralSettingsForm({
|
|
33
33
|
isNewCollection,
|
|
@@ -40,7 +40,7 @@ export function GeneralSettingsForm({
|
|
|
40
40
|
isNewCollection: boolean;
|
|
41
41
|
existingPaths?: string[];
|
|
42
42
|
existingIds?: string[];
|
|
43
|
-
parentCollection?:
|
|
43
|
+
parentCollection?: CollectionConfig;
|
|
44
44
|
renderExtraCollectionFields?: (params: ExtraCollectionFieldsParams) => React.ReactNode;
|
|
45
45
|
standalone?: boolean;
|
|
46
46
|
}) {
|
|
@@ -53,7 +53,7 @@ export function GeneralSettingsForm({
|
|
|
53
53
|
errors,
|
|
54
54
|
setFieldTouched,
|
|
55
55
|
submitCount
|
|
56
|
-
} = useFormex<
|
|
56
|
+
} = useFormex<PostgresCollectionConfig>();
|
|
57
57
|
|
|
58
58
|
const [iconDialogOpen, setIconDialogOpen] = useState(false);
|
|
59
59
|
|
|
@@ -255,7 +255,7 @@ export function GeneralSettingsForm({
|
|
|
255
255
|
onMetadataChange: (key: string, value: unknown) => {
|
|
256
256
|
setFieldValue(`metadata.${key}`, value);
|
|
257
257
|
},
|
|
258
|
-
collection:
|
|
258
|
+
collection: toSerializableCollectionConfig(values),
|
|
259
259
|
})}
|
|
260
260
|
</div>
|
|
261
261
|
)}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useSafeSnackbarController } from "../../useSafeSnackbarController";
|
|
2
|
-
import {
|
|
2
|
+
import { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import { Button, CopyIcon, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from "@rebasepro/ui";
|
|
4
4
|
import React from "react";
|
|
5
5
|
import JSON5 from "json5";
|
|
@@ -12,12 +12,12 @@ export function GetCodeDialog({
|
|
|
12
12
|
collection,
|
|
13
13
|
onOpenChange,
|
|
14
14
|
open
|
|
15
|
-
}: { onOpenChange: (open: boolean) => void, collection:
|
|
15
|
+
}: { onOpenChange: (open: boolean) => void, collection: CollectionConfig, open: boolean }) {
|
|
16
16
|
|
|
17
17
|
const snackbarController = useSafeSnackbarController();
|
|
18
18
|
|
|
19
19
|
const code = collection
|
|
20
|
-
? "import {
|
|
20
|
+
? "import { CollectionConfig } from \"@rebasepro/core\";\n\nconst " + (collection?.name ? camelCase(collection.name) : "my") + "Collection:CollectionConfig = " + JSON5.stringify(collectionToCode({ ...collection }), null, "\t")
|
|
21
21
|
: "No collection selected";
|
|
22
22
|
return <Dialog open={open}
|
|
23
23
|
onOpenChange={onOpenChange}
|
|
@@ -78,7 +78,7 @@ export function GetCodeDialog({
|
|
|
78
78
|
</Dialog>;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
function collectionToCode(collection:
|
|
81
|
+
function collectionToCode(collection: CollectionConfig): object {
|
|
82
82
|
|
|
83
83
|
const propertyCleanup = (value: unknown): unknown => {
|
|
84
84
|
if (value === undefined || value === null) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { FieldCaption } from "../../_cms_internals";
|
|
3
3
|
import React, { useMemo, useRef, useState } from "react";
|
|
4
4
|
import { useAuthController, useCustomizationController } from "@rebasepro/core";
|
|
5
|
-
import {
|
|
5
|
+
import { CollectionConfig, Property } from "@rebasepro/types";
|
|
6
6
|
import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
|
|
7
7
|
import { getFieldConfig } from "../../../components/field_configs";
|
|
8
8
|
import { Button, IconButton, iconSize, Select, SelectItem, Typography, XIcon } from "@rebasepro/ui";
|
|
@@ -19,7 +19,7 @@ export function KanbanConfigSection({
|
|
|
19
19
|
}) {
|
|
20
20
|
const authController = useAuthController();
|
|
21
21
|
const customizationController = useCustomizationController();
|
|
22
|
-
const { values, setFieldValue } = useFormex<
|
|
22
|
+
const { values, setFieldValue } = useFormex<CollectionConfig>();
|
|
23
23
|
const panelRef = useRef<HTMLDivElement>(null);
|
|
24
24
|
const [columnPropertyDialogOpen, setColumnPropertyDialogOpen] = useState(false);
|
|
25
25
|
|
|
@@ -6,10 +6,10 @@ import { Formex, FormexController, getIn, useCreateFormex } from "@rebasepro/for
|
|
|
6
6
|
import { ConfirmationDialog } from "@rebasepro/core";
|
|
7
7
|
import { DEFAULT_FIELD_CONFIGS, getFieldConfig, getFieldId } from "../../../components/field_configs";
|
|
8
8
|
import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
|
|
9
|
-
import {
|
|
9
|
+
import { CollectionConfig, Property, PropertyConfig, PropertyConfigId } from "@rebasepro/types";
|
|
10
10
|
import type { PropertyTypePreset, PropertyType } from "../../extensibility_types";
|
|
11
|
-
import { toSerializableProperty,
|
|
12
|
-
import type { SerializableProperty,
|
|
11
|
+
import { toSerializableProperty, toSerializableCollectionConfig } from "../../serializable_utils";
|
|
12
|
+
import type { SerializableProperty, SerializableCollectionConfig } from "../../serializable_types";
|
|
13
13
|
import { isPropertyBuilder } from "@rebasepro/common";
|
|
14
14
|
import {
|
|
15
15
|
AlertTriangleIcon,
|
|
@@ -91,9 +91,9 @@ export type PropertyFormProps = {
|
|
|
91
91
|
metadata: Record<string, unknown>;
|
|
92
92
|
onMetadataChange: (key: string, value: unknown) => void;
|
|
93
93
|
property: SerializableProperty;
|
|
94
|
-
collection:
|
|
94
|
+
collection: SerializableCollectionConfig;
|
|
95
95
|
}) => React.ReactNode;
|
|
96
|
-
collectionValues?:
|
|
96
|
+
collectionValues?: CollectionConfig;
|
|
97
97
|
|
|
98
98
|
};
|
|
99
99
|
|
|
@@ -368,7 +368,7 @@ function PropertyEditFormFields({
|
|
|
368
368
|
propertyTypePresets?: PropertyTypePreset[];
|
|
369
369
|
hiddenPropertyTypes?: PropertyType[];
|
|
370
370
|
renderExtraPropertyFields?: PropertyFormProps["renderExtraPropertyFields"];
|
|
371
|
-
collectionValues?:
|
|
371
|
+
collectionValues?: CollectionConfig;
|
|
372
372
|
|
|
373
373
|
} & FormexController<PropertyWithId>) {
|
|
374
374
|
|
|
@@ -612,7 +612,7 @@ function PropertyEditFormFields({
|
|
|
612
612
|
} as PropertyWithId);
|
|
613
613
|
},
|
|
614
614
|
property: toSerializableProperty(values as Property),
|
|
615
|
-
collection:
|
|
615
|
+
collection: toSerializableCollectionConfig(collectionValues),
|
|
616
616
|
})}
|
|
617
617
|
</div>
|
|
618
618
|
)}
|
|
@@ -47,39 +47,49 @@ export function PropertyFieldPreview({
|
|
|
47
47
|
>
|
|
48
48
|
<PropertyConfigBadge propertyConfig={propertyConfig} size="small"/>
|
|
49
49
|
|
|
50
|
-
<div className="flex-1 flex flex-col min-w-0
|
|
50
|
+
<div className="flex-1 flex flex-col min-w-0 mr-16">
|
|
51
51
|
{includeName &&
|
|
52
52
|
<ErrorBoundary>
|
|
53
|
-
<div className="flex items-center gap-2">
|
|
54
|
-
<Typography variant="body2" component="span">
|
|
53
|
+
<div className="flex items-center gap-2 min-w-0">
|
|
54
|
+
<Typography variant="body2" component="span" className="truncate font-medium">
|
|
55
55
|
{property.name || propertyKey || "\u00a0"}
|
|
56
56
|
</Typography>
|
|
57
|
-
{
|
|
58
|
-
<Typography
|
|
57
|
+
{propertyConfig?.name && (
|
|
58
|
+
<Typography
|
|
59
|
+
variant={"caption"}
|
|
60
|
+
component="span"
|
|
61
|
+
className="text-text-secondary dark:text-text-secondary-dark shrink-0">
|
|
62
|
+
{propertyConfig.name}
|
|
63
|
+
</Typography>
|
|
64
|
+
)}
|
|
65
|
+
</div>
|
|
66
|
+
<div className="flex items-center gap-1.5 mt-0.5 min-w-0">
|
|
67
|
+
{propertyKey && (
|
|
68
|
+
<Typography variant="caption" component="span" color="secondary" className="font-mono truncate">
|
|
59
69
|
{propertyKey}
|
|
60
70
|
</Typography>
|
|
61
71
|
)}
|
|
72
|
+
<ErrorBoundary>
|
|
73
|
+
<Typography variant="caption" component="span" className="shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono">
|
|
74
|
+
· {"columnType" in property ? (property as { columnType?: string }).columnType ?? property.type : property.type}
|
|
75
|
+
</Typography>
|
|
76
|
+
</ErrorBoundary>
|
|
62
77
|
</div>
|
|
63
78
|
</ErrorBoundary>}
|
|
64
79
|
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
{!includeName &&
|
|
81
|
+
<div className="flex flex-row items-center gap-2">
|
|
82
|
+
<ErrorBoundary>
|
|
83
|
+
<Typography
|
|
84
|
+
variant={"caption"}
|
|
85
|
+
component="span"
|
|
86
|
+
className="text-text-secondary dark:text-text-secondary-dark font-medium">
|
|
87
|
+
{propertyConfig?.name}
|
|
88
|
+
</Typography>
|
|
89
|
+
</ErrorBoundary>
|
|
90
|
+
</div>}
|
|
75
91
|
</div>
|
|
76
92
|
|
|
77
|
-
<ErrorBoundary>
|
|
78
|
-
<Typography variant="caption" component="span" className="ml-auto shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono bg-surface-100 dark:bg-surface-900 px-1.5 py-0.5 rounded mr-8">
|
|
79
|
-
{"columnType" in property ? (property as { columnType?: string }).columnType ?? property.type : property.type}
|
|
80
|
-
</Typography>
|
|
81
|
-
</ErrorBoundary>
|
|
82
|
-
|
|
83
93
|
{includeEditButton && <Typography variant={"button"}>EDIT</Typography>}
|
|
84
94
|
</div>
|
|
85
95
|
</div>
|
|
@@ -120,35 +130,34 @@ export function NonEditablePropertyPreview({
|
|
|
120
130
|
<MinusCircleIcon className={"text-surface-accent-400 absolute -right-2 -top-2 bg-surface-50 dark:bg-surface-900 rounded-full"} size={iconSize.small}/>
|
|
121
131
|
</div>
|
|
122
132
|
|
|
123
|
-
<div className="flex-1 flex flex-col min-w-0
|
|
124
|
-
<
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
{propertyConfig && <Typography variant={"caption"} component="span" className="text-text-secondary dark:text-text-secondary-dark font-medium">
|
|
133
|
+
<div className="flex-1 flex flex-col min-w-0 mr-16">
|
|
134
|
+
<div className="flex items-center gap-2 min-w-0">
|
|
135
|
+
<Typography variant="label" component="span" className="truncate">
|
|
136
|
+
{property?.name ? property.name : name}
|
|
137
|
+
</Typography>
|
|
138
|
+
{propertyConfig && <Typography variant={"caption"} component="span" className="text-text-secondary dark:text-text-secondary-dark shrink-0">
|
|
130
139
|
{propertyConfig?.name}
|
|
131
140
|
</Typography>}
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<div className="flex flex-row items-center gap-1.5 mt-0.5 min-w-0">
|
|
144
|
+
<Typography variant="caption" component="span" color="secondary" className="font-mono truncate">
|
|
145
|
+
{name}
|
|
146
|
+
</Typography>
|
|
132
147
|
|
|
133
148
|
{property && isPropertyBuilder(property) && <ErrorBoundary>
|
|
134
149
|
<Typography variant="caption" component="span" className="text-text-disabled dark:text-text-disabled-dark">
|
|
135
|
-
Defined in code
|
|
150
|
+
· Defined in code
|
|
136
151
|
</Typography>
|
|
137
152
|
</ErrorBoundary>}
|
|
138
153
|
|
|
139
154
|
{!property && <ErrorBoundary>
|
|
140
155
|
<Typography variant="caption" component="span" className="text-text-disabled dark:text-text-disabled-dark">
|
|
141
|
-
Additional field
|
|
156
|
+
· Additional field
|
|
142
157
|
</Typography>
|
|
143
158
|
</ErrorBoundary>}
|
|
144
159
|
</div>
|
|
145
160
|
</div>
|
|
146
|
-
|
|
147
|
-
{property && !isPropertyBuilder(property) && <ErrorBoundary>
|
|
148
|
-
<Typography variant="caption" component="span" className="ml-auto shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono bg-surface-100 dark:bg-surface-900 px-1.5 py-0.5 rounded mr-8">
|
|
149
|
-
{"columnType" in property ? (property as { columnType?: string }).columnType ?? property.type : property.type}
|
|
150
|
-
</Typography>
|
|
151
|
-
</ErrorBoundary>}
|
|
152
161
|
</div>
|
|
153
162
|
</div>
|
|
154
163
|
)
|
|
@@ -287,7 +287,7 @@ export function PropertyTreeEntry({
|
|
|
287
287
|
selected={selected}/>}
|
|
288
288
|
</div>
|
|
289
289
|
|
|
290
|
-
<div className="absolute top-1/2 -translate-y-1/2 right-
|
|
290
|
+
<div className="absolute top-1/2 -translate-y-1/2 right-2 flex flex-row items-center gap-1">
|
|
291
291
|
{isAIModified && <AIModifiedIndicator/>}
|
|
292
292
|
{isPropertyInferred && <>
|
|
293
293
|
<Tooltip title={"Inferred property"} asChild={true}>
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
useCustomizationController
|
|
6
6
|
} from "@rebasepro/core";
|
|
7
7
|
import { resolveEntityView } from "../../_cms_internals";
|
|
8
|
-
import {
|
|
8
|
+
import { CollectionConfig, EntityCustomView, User } from "@rebasepro/types";
|
|
9
9
|
import { getSubcollections } from "@rebasepro/common";
|
|
10
10
|
import {
|
|
11
11
|
Alert,
|
|
@@ -37,8 +37,8 @@ export function SubcollectionsEditTab({
|
|
|
37
37
|
getUser,
|
|
38
38
|
parentCollectionSlugs
|
|
39
39
|
}: {
|
|
40
|
-
collection:
|
|
41
|
-
parentCollection?:
|
|
40
|
+
collection: CollectionConfig,
|
|
41
|
+
parentCollection?: CollectionConfig,
|
|
42
42
|
configController: CollectionsConfigController;
|
|
43
43
|
collectionInference?: CollectionInference;
|
|
44
44
|
getUser?: (uid: string) => User | null;
|
|
@@ -59,9 +59,9 @@ export function SubcollectionsEditTab({
|
|
|
59
59
|
const {
|
|
60
60
|
values,
|
|
61
61
|
setFieldValue
|
|
62
|
-
} = useFormex<
|
|
62
|
+
} = useFormex<CollectionConfig>();
|
|
63
63
|
|
|
64
|
-
const [subcollections, setSubcollections] = React.useState<
|
|
64
|
+
const [subcollections, setSubcollections] = React.useState<CollectionConfig[]>(getSubcollections(collection) ?? []);
|
|
65
65
|
const resolvedEntityViews = values.entityViews?.filter(e => typeof e === "string")
|
|
66
66
|
.map(e => resolveEntityView(e, contextEntityViews))
|
|
67
67
|
.filter(Boolean) as EntityCustomView[] ?? [];
|
package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCollectionRegistryController } from "../../../_cms_internals";
|
|
2
2
|
import { convertDataToEntity, ImportConfig } from "../../../_cms_internals";
|
|
3
3
|
import { useAuthController } from "@rebasepro/core";
|
|
4
|
-
import {
|
|
5
|
-
import { useSelectionController } from "../../../../components/
|
|
4
|
+
import { CollectionTableBinding } from "../../../../components/CollectionTableBinding/CollectionTableBinding";
|
|
5
|
+
import { useSelectionController } from "../../../../components/CollectionViewBinding/useSelectionController";
|
|
6
6
|
import { CircularProgressCenter } from "@rebasepro/ui";
|
|
7
7
|
import { Properties } from "@rebasepro/types";
|
|
8
8
|
import { useEffect, useState } from "react";
|
|
@@ -42,7 +42,7 @@ export function CollectionEditorImportDataPreview({
|
|
|
42
42
|
if (loading)
|
|
43
43
|
return <CircularProgressCenter/>
|
|
44
44
|
|
|
45
|
-
return <
|
|
45
|
+
return <CollectionTableBinding
|
|
46
46
|
title={<div>
|
|
47
47
|
<Typography variant={"subtitle2"}>Imported data preview</Typography>
|
|
48
48
|
<Typography variant={"caption"}>Entities with the same id will be overwritten</Typography>
|
|
@@ -6,7 +6,7 @@ import { getIn, useFormex } from "@rebasepro/formex";
|
|
|
6
6
|
|
|
7
7
|
import { getFieldConfig, getFieldId } from "../../../../components/field_configs";
|
|
8
8
|
import { PropertyConfigBadge } from "../../../../components/PropertyConfigBadge";
|
|
9
|
-
import {
|
|
9
|
+
import { CollectionConfig, Properties, Property, PropertyConfig } from "@rebasepro/types";
|
|
10
10
|
import { cls, Container, Select, SelectItem, Tooltip, Typography } from "@rebasepro/ui";
|
|
11
11
|
import React, { useState } from "react";
|
|
12
12
|
import { OnPropertyChangedParams, PropertyFormDialog, PropertyWithId } from "../PropertyEditView";
|
|
@@ -36,7 +36,7 @@ export function CollectionEditorImportMapping({
|
|
|
36
36
|
setFieldValue,
|
|
37
37
|
setFieldTouched,
|
|
38
38
|
values
|
|
39
|
-
} = useFormex<
|
|
39
|
+
} = useFormex<CollectionConfig>();
|
|
40
40
|
const [selectedProperty, setSelectedProperty] = useState<PropertyWithId | undefined>(undefined);
|
|
41
41
|
|
|
42
42
|
const currentPropertiesOrderRef = React.useRef<{
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
TextField,
|
|
9
9
|
Typography
|
|
10
10
|
} from "@rebasepro/ui";
|
|
11
|
-
import {
|
|
11
|
+
import { CollectionConfig, OnAction, RelationProperty } from "@rebasepro/types";
|
|
12
12
|
|
|
13
13
|
import { CollectionsSelect } from "./ReferencePropertyField";
|
|
14
14
|
|
|
@@ -87,7 +87,7 @@ targetColumn: "" };
|
|
|
87
87
|
}
|
|
88
88
|
}, [targetSlug, relationName, setFieldValue]);
|
|
89
89
|
|
|
90
|
-
const collections:
|
|
90
|
+
const collections: CollectionConfig[] = collectionRegistry?.collections ?? [];
|
|
91
91
|
|
|
92
92
|
return (
|
|
93
93
|
<>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
export const blogCollectionTemplate = {
|
|
4
4
|
slug: "blog",
|
|
@@ -109,4 +109,4 @@ export const blogCollectionTemplate = {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
} as unknown as
|
|
112
|
+
} as unknown as CollectionConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
export const pagesCollectionTemplate = {
|
|
4
4
|
slug: "pages",
|
|
@@ -180,4 +180,4 @@ export const pagesCollectionTemplate = {
|
|
|
180
180
|
description: "Should this page be live on the site?"
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
-
} as unknown as
|
|
183
|
+
} as unknown as CollectionConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
export const productsCollectionTemplate = {
|
|
4
4
|
slug: "products",
|
|
@@ -85,4 +85,4 @@ export const productsCollectionTemplate = {
|
|
|
85
85
|
autoValue: "on_create"
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
} as unknown as
|
|
88
|
+
} as unknown as CollectionConfig;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
export const usersCollectionTemplate = {
|
|
4
4
|
slug: "users",
|
|
@@ -39,4 +39,4 @@ export const usersCollectionTemplate = {
|
|
|
39
39
|
url: "image"
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
} as unknown as
|
|
42
|
+
} as unknown as CollectionConfig;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
-
import type { EngineProperties,
|
|
2
|
+
import type { EngineProperties, CollectionConfig, NavigationGroupMapping, Property } from "@rebasepro/types";
|
|
3
3
|
import type {
|
|
4
4
|
CollectionsConfigController,
|
|
5
5
|
SaveCollectionParams,
|
|
@@ -10,8 +10,8 @@ import type {
|
|
|
10
10
|
UpdatePropertiesOrderParams,
|
|
11
11
|
UpdateKanbanColumnsOrderParams,
|
|
12
12
|
} from "./types/config_controller";
|
|
13
|
-
import type { JsonCollectionStore,
|
|
14
|
-
import {
|
|
13
|
+
import type { JsonCollectionStore, SerializableCollectionConfig } from "./serializable_types";
|
|
14
|
+
import { toSerializableCollectionConfig, toSerializableProperty, fromSerializableCollectionConfig } from "./serializable_utils";
|
|
15
15
|
|
|
16
16
|
export interface UseJsonCollectionsConfigControllerOptions {
|
|
17
17
|
/**
|
|
@@ -55,7 +55,7 @@ export function useJsonCollectionsConfigController({
|
|
|
55
55
|
readOnly = false,
|
|
56
56
|
autoLoad = true,
|
|
57
57
|
}: UseJsonCollectionsConfigControllerOptions): CollectionsConfigController {
|
|
58
|
-
const [collections, setCollections] = useState<
|
|
58
|
+
const [collections, setCollections] = useState<CollectionConfig[]>([]);
|
|
59
59
|
const [loading, setLoading] = useState(autoLoad);
|
|
60
60
|
const [navigationEntries, setNavigationEntries] = useState<NavigationGroupMapping[]>([]);
|
|
61
61
|
|
|
@@ -75,7 +75,7 @@ export function useJsonCollectionsConfigController({
|
|
|
75
75
|
storeRef.current.loadNavigationEntries?.() ?? Promise.resolve([]),
|
|
76
76
|
]);
|
|
77
77
|
if (cancelled) return;
|
|
78
|
-
setCollections(serialized.map(
|
|
78
|
+
setCollections(serialized.map(fromSerializableCollectionConfig));
|
|
79
79
|
setNavigationEntries(navEntries);
|
|
80
80
|
} catch (e) {
|
|
81
81
|
console.error("useJsonCollectionsConfigController: failed to load collections", e);
|
|
@@ -92,15 +92,15 @@ export function useJsonCollectionsConfigController({
|
|
|
92
92
|
/**
|
|
93
93
|
* Update local state and persist a collection to the store.
|
|
94
94
|
*/
|
|
95
|
-
const persistCollection = useCallback(async (collection:
|
|
96
|
-
const serializable =
|
|
95
|
+
const persistCollection = useCallback(async (collection: CollectionConfig) => {
|
|
96
|
+
const serializable = toSerializableCollectionConfig(collection);
|
|
97
97
|
await storeRef.current.save(collection.slug, serializable);
|
|
98
98
|
}, []);
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
101
|
* Find collection by id (slug).
|
|
102
102
|
*/
|
|
103
|
-
const getCollection = useCallback((id: string):
|
|
103
|
+
const getCollection = useCallback((id: string): CollectionConfig => {
|
|
104
104
|
const found = collections.find(c => c.slug === id);
|
|
105
105
|
if (found) return found;
|
|
106
106
|
throw new Error(`Collection "${id}" not found`);
|
|
@@ -111,7 +111,7 @@ export function useJsonCollectionsConfigController({
|
|
|
111
111
|
const saveCollection = useCallback(async <M extends Record<string, unknown>>(
|
|
112
112
|
{ id, collectionData }: SaveCollectionParams<M>
|
|
113
113
|
) => {
|
|
114
|
-
const collection = collectionData as
|
|
114
|
+
const collection = collectionData as CollectionConfig;
|
|
115
115
|
await persistCollection(collection);
|
|
116
116
|
setCollections(prev => {
|
|
117
117
|
const idx = prev.findIndex(c => c.slug === id);
|
|
@@ -132,7 +132,7 @@ export function useJsonCollectionsConfigController({
|
|
|
132
132
|
const idx = prev.findIndex(c => c.slug === lookupId);
|
|
133
133
|
if (idx < 0) return prev;
|
|
134
134
|
|
|
135
|
-
const merged = { ...prev[idx], ...collectionData } as
|
|
135
|
+
const merged = { ...prev[idx], ...collectionData } as CollectionConfig;
|
|
136
136
|
const next = [...prev];
|
|
137
137
|
next[idx] = merged;
|
|
138
138
|
|
|
@@ -177,7 +177,7 @@ export function useJsonCollectionsConfigController({
|
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
const next = [...prev];
|
|
180
|
-
next[idx] = collection as
|
|
180
|
+
next[idx] = collection as CollectionConfig;
|
|
181
181
|
|
|
182
182
|
persistCollection(next[idx]).catch(e =>
|
|
183
183
|
console.error("useJsonCollectionsConfigController: failed to save property", e)
|
|
@@ -204,7 +204,7 @@ export function useJsonCollectionsConfigController({
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
const next = [...prev];
|
|
207
|
-
next[idx] = collection as
|
|
207
|
+
next[idx] = collection as CollectionConfig;
|
|
208
208
|
|
|
209
209
|
persistCollection(next[idx]).catch(e =>
|
|
210
210
|
console.error("useJsonCollectionsConfigController: failed to delete property", e)
|
|
@@ -221,7 +221,7 @@ export function useJsonCollectionsConfigController({
|
|
|
221
221
|
const updated = {
|
|
222
222
|
...collection,
|
|
223
223
|
propertiesOrder: newPropertiesOrder,
|
|
224
|
-
} as
|
|
224
|
+
} as CollectionConfig;
|
|
225
225
|
|
|
226
226
|
setCollections(prev => {
|
|
227
227
|
const idx = prev.findIndex(c => c.slug === collection.slug);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { CollectionsConfigController, SaveCollectionParams, UpdateCollectionParams, DeleteCollectionParams, SavePropertyParams, DeletePropertyParams, UpdatePropertiesOrderParams } from "./types/config_controller";
|
|
2
|
-
import {
|
|
2
|
+
import { CollectionConfig, Properties } from "@rebasepro/types";
|
|
3
3
|
import { getSubcollections } from "@rebasepro/common";
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
import React, { useMemo, useRef } from "react";
|
|
7
7
|
export function useLocalCollectionsConfigController(
|
|
8
8
|
clientOrUrl: any,
|
|
9
|
-
baseCollections:
|
|
9
|
+
baseCollections: CollectionConfig[] = [],
|
|
10
10
|
options?: {
|
|
11
11
|
readOnly?: boolean;
|
|
12
12
|
getAuthToken?: () => Promise<string | null>;
|
|
@@ -73,7 +73,7 @@ export function useLocalCollectionsConfigController(
|
|
|
73
73
|
readOnlyReason: "Local collection editing is only available in development mode.",
|
|
74
74
|
collections: parsedCollections,
|
|
75
75
|
getCollection: (id: string) => {
|
|
76
|
-
const found = parsedCollections.find(c => (c as
|
|
76
|
+
const found = parsedCollections.find(c => (c as CollectionConfig & { id?: string }).id === id || c.slug === id);
|
|
77
77
|
if (found) return found;
|
|
78
78
|
throw Error(`Collection ${id} not found in local mode`);
|
|
79
79
|
},
|
|
@@ -109,7 +109,7 @@ collectionData: { propertiesOrder: newPropertiesOrder } });
|
|
|
109
109
|
},
|
|
110
110
|
|
|
111
111
|
updatePropertiesOrder: async ({ collection, fullPath, newPropertiesOrder }: UpdatePropertiesOrderParams) => {
|
|
112
|
-
const collectionId = (collection as
|
|
112
|
+
const collectionId = (collection as CollectionConfig & { id?: string }).id || fullPath.split("/").pop();
|
|
113
113
|
await request("/collection/save", { collectionId,
|
|
114
114
|
collectionData: { propertiesOrder: newPropertiesOrder } });
|
|
115
115
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataType,
|
|
1
|
+
import { DataType, CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -33,7 +33,7 @@ export interface CollectionValidationError {
|
|
|
33
33
|
export interface CollectionValidationResult {
|
|
34
34
|
valid: boolean;
|
|
35
35
|
errors: CollectionValidationError[];
|
|
36
|
-
collection?:
|
|
36
|
+
collection?: CollectionConfig;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/**
|
|
@@ -461,6 +461,6 @@ export function validateCollectionJson(jsonString: string): CollectionValidation
|
|
|
461
461
|
return {
|
|
462
462
|
valid: errors.length === 0,
|
|
463
463
|
errors,
|
|
464
|
-
collection: errors.length === 0 ? parsed as unknown as
|
|
464
|
+
collection: errors.length === 0 ? parsed as unknown as CollectionConfig : undefined
|
|
465
465
|
};
|
|
466
466
|
}
|