@rebasepro/cms 0.17.3 → 0.18.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 +4 -0
- package/dist/{CollectionEditorDialog-B-akreOU.js → CollectionEditorDialog-BeX4b92r.js} +13 -7
- package/dist/{CollectionEditorDialog-B-akreOU.js.map → CollectionEditorDialog-BeX4b92r.js.map} +1 -1
- package/dist/{PropertyEditView-CiY84wkR.js → PropertyEditView-C7thfj4L.js} +3 -3
- package/dist/{PropertyEditView-CiY84wkR.js.map → PropertyEditView-C7thfj4L.js.map} +1 -1
- package/dist/{RouterCollectionsStudioView-DkAWda4N.js → RouterCollectionsStudioView-BtjzvB6E.js} +4 -4
- package/dist/{RouterCollectionsStudioView-DkAWda4N.js.map → RouterCollectionsStudioView-BtjzvB6E.js.map} +1 -1
- package/dist/{SchemaChangeDialog-DceT8QFX.js → SchemaChangeDialog-CkqK6KOC.js} +4 -2
- package/dist/{SchemaChangeDialog-DceT8QFX.js.map → SchemaChangeDialog-CkqK6KOC.js.map} +1 -1
- package/dist/collection_editor/api/generateCollectionApi.d.ts +1 -2
- package/dist/collection_editor_ui.d.ts +2 -0
- package/dist/collection_editor_ui.js +6 -5
- package/dist/collection_editor_ui.js.map +1 -1
- package/dist/components/DeleteEntityDialog.d.ts +2 -3
- package/dist/components/RebaseLayout.d.ts +11 -4
- package/dist/components/field_configs.d.ts +1 -1
- package/dist/editor/sanitize-html.d.ts +15 -0
- package/dist/editor.js +195 -10
- package/dist/editor.js.map +1 -1
- package/dist/{export-Ben8E355.js → export--arni_VY.js} +2 -2
- package/dist/{export-Ben8E355.js.map → export--arni_VY.js.map} +1 -1
- package/dist/form/components/LabelWithIcon.d.ts +10 -0
- package/dist/{history-DIEVd26f.js → history-C2TpoQwi.js} +2 -2
- package/dist/{history-DIEVd26f.js.map → history-C2TpoQwi.js.map} +1 -1
- package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +1 -1
- package/dist/hooks/navigation/useResolvedViews.d.ts +1 -1
- package/dist/hooks/navigation/useTopLevelNavigation.d.ts +1 -1
- package/dist/{import-D25x7ko-.js → import-DTkXNoBg.js} +2 -2
- package/dist/{import-D25x7ko-.js.map → import-DTkXNoBg.js.map} +1 -1
- package/dist/index.js +78 -33
- package/dist/index.js.map +1 -1
- package/dist/util/propertyConfigMapper.d.ts +1 -1
- package/dist/util-CfLFggP7.js +57 -0
- package/dist/util-CfLFggP7.js.map +1 -0
- package/dist/{util-DVqnqlLn.js → util-DE1WQW6h.js} +134 -112
- package/dist/util-DE1WQW6h.js.map +1 -0
- package/package.json +42 -34
- package/dist/util-DVqnqlLn.js.map +0 -1
- package/src/collection_editor/CollectionEditorDialogsContext.tsx +0 -25
- package/src/collection_editor/ConfigControllerProvider.tsx +0 -395
- package/src/collection_editor/_cms_internals.ts +0 -41
- package/src/collection_editor/api/generateCollectionApi.ts +0 -126
- package/src/collection_editor/api/index.ts +0 -1
- package/src/collection_editor/extensibility_types.ts +0 -168
- package/src/collection_editor/index.ts +0 -108
- package/src/collection_editor/liveSchemaClient.ts +0 -285
- package/src/collection_editor/relation_kinds.ts +0 -44
- package/src/collection_editor/serializable_types.ts +0 -535
- package/src/collection_editor/serializable_utils.ts +0 -729
- package/src/collection_editor/types/collection_editor_controller.tsx +0 -62
- package/src/collection_editor/types/collection_inference.ts +0 -18
- package/src/collection_editor/types/config_controller.tsx +0 -121
- package/src/collection_editor/ui/AddKanbanColumnAction.tsx +0 -199
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +0 -51
- package/src/collection_editor/ui/EditorCollectionAction.tsx +0 -54
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +0 -90
- package/src/collection_editor/ui/EditorEntityAction.tsx +0 -50
- package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +0 -114
- package/src/collection_editor/ui/KanbanSetupAction.tsx +0 -43
- package/src/collection_editor/ui/MissingReferenceWidget.tsx +0 -35
- package/src/collection_editor/ui/NewCollectionButton.tsx +0 -27
- package/src/collection_editor/ui/NewCollectionCard.tsx +0 -48
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +0 -49
- package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +0 -260
- package/src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx +0 -90
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +0 -388
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +0 -1098
- package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +0 -301
- package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +0 -172
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +0 -620
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +0 -530
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +0 -462
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +0 -104
- package/src/collection_editor/ui/collection_editor/CollectionYupValidation.tsx +0 -9
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +0 -199
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +0 -315
- package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +0 -164
- package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +0 -40
- package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +0 -39
- package/src/collection_editor/ui/collection_editor/EnumForm.tsx +0 -373
- package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +0 -288
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +0 -141
- package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +0 -194
- package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +0 -53
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +0 -980
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +0 -164
- package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +0 -364
- package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +0 -44
- package/src/collection_editor/ui/collection_editor/RouterCollectionsStudioView.tsx +0 -41
- package/src/collection_editor/ui/collection_editor/SchemaChangeDialog.tsx +0 -470
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +0 -256
- package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +0 -39
- package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +0 -68
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +0 -67
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +0 -296
- package/src/collection_editor/ui/collection_editor/import/clean_import_data.ts +0 -57
- package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +0 -147
- package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +0 -41
- package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +0 -113
- package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +0 -250
- package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +0 -126
- package/src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx +0 -20
- package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +0 -153
- package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +0 -217
- package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +0 -117
- package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +0 -129
- package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +0 -335
- package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +0 -107
- package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +0 -403
- package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +0 -148
- package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +0 -91
- package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +0 -34
- package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +0 -49
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +0 -925
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +0 -28
- package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +0 -626
- package/src/collection_editor/ui/collection_editor/properties/conditions/index.ts +0 -6
- package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +0 -93
- package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +0 -52
- package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +0 -63
- package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +0 -114
- package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +0 -154
- package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +0 -28
- package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +0 -112
- package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +0 -183
- package/src/collection_editor/ui/collection_editor/templates/products_template.ts +0 -88
- package/src/collection_editor/ui/collection_editor/templates/users_template.ts +0 -42
- package/src/collection_editor/ui/collection_editor/util.ts +0 -28
- package/src/collection_editor/ui/collection_editor/utils/strings.ts +0 -1
- package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -39
- package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +0 -276
- package/src/collection_editor/useCollectionEditorController.tsx +0 -9
- package/src/collection_editor/useCollectionsConfigController.tsx +0 -9
- package/src/collection_editor/useJsonCollectionsConfigController.tsx +0 -297
- package/src/collection_editor/useLiveSchemaEditing.tsx +0 -315
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +0 -341
- package/src/collection_editor/useSafeSnackbarController.ts +0 -9
- package/src/collection_editor/validateCollectionJson.ts +0 -440
- package/src/collection_editor_ui.ts +0 -21
- package/src/components/AdditionalFieldValue.tsx +0 -68
- package/src/components/AdminModeSyncer.tsx +0 -56
- package/src/components/ArrayContainer.tsx +0 -542
- package/src/components/ClearFilterSortButton.tsx +0 -56
- package/src/components/CollectionEditorDialogs.tsx +0 -69
- package/src/components/CollectionPanel.tsx +0 -179
- package/src/components/CollectionTableBinding/CollectionRowActions.tsx +0 -244
- package/src/components/CollectionTableBinding/CollectionTableBinding.tsx +0 -394
- package/src/components/CollectionTableBinding/CollectionTableBindingProps.tsx +0 -172
- package/src/components/CollectionTableBinding/PropertyTableCell.tsx +0 -350
- package/src/components/CollectionTableBinding/column_utils.tsx +0 -155
- package/src/components/CollectionTableBinding/fields/TableMultipleRelationField.tsx +0 -131
- package/src/components/CollectionTableBinding/fields/TableReferenceField.tsx +0 -193
- package/src/components/CollectionTableBinding/fields/TableRelationField.tsx +0 -192
- package/src/components/CollectionTableBinding/fields/TableRelationSelectorField.tsx +0 -42
- package/src/components/CollectionTableBinding/fields/TableStorageUpload.tsx +0 -324
- package/src/components/CollectionTableBinding/fields/VirtualTableSelect.tsx +0 -132
- package/src/components/CollectionTableBinding/fields/VirtualTableUserSelect.tsx +0 -41
- package/src/components/CollectionTableBinding/index.tsx +0 -14
- package/src/components/CollectionTableBinding/internal/CollectionTableToolbar.tsx +0 -96
- package/src/components/CollectionTableBinding/internal/EntityTableCell.tsx +0 -309
- package/src/components/CollectionTableBinding/internal/EntityTableCellActions.tsx +0 -80
- package/src/components/CollectionTableBinding/internal/common.tsx +0 -74
- package/src/components/CollectionTableBinding/internal/popup_field/PopupFormField.tsx +0 -422
- package/src/components/CollectionTableBinding/internal/popup_field/useDraggable.tsx +0 -99
- package/src/components/CollectionTableBinding/internal/popup_field/useWindowSize.tsx +0 -22
- package/src/components/CollectionTableBinding/table_bindings.tsx +0 -350
- package/src/components/CollectionViewBinding/BoardCardBinding.tsx +0 -263
- package/src/components/CollectionViewBinding/CollectionBoardViewBinding.tsx +0 -662
- package/src/components/CollectionViewBinding/CollectionCardViewBinding.tsx +0 -159
- package/src/components/CollectionViewBinding/CollectionListViewBinding.tsx +0 -1430
- package/src/components/CollectionViewBinding/CollectionViewActions.tsx +0 -227
- package/src/components/CollectionViewBinding/CollectionViewBinding.tsx +0 -1603
- package/src/components/CollectionViewBinding/CollectionViewStartActions.tsx +0 -240
- package/src/components/CollectionViewBinding/EntityCardBinding.tsx +0 -239
- package/src/components/CollectionViewBinding/FilterPresetsButton.tsx +0 -298
- package/src/components/CollectionViewBinding/FiltersDialog.tsx +0 -218
- package/src/components/CollectionViewBinding/SearchExplanation.tsx +0 -106
- package/src/components/CollectionViewBinding/SearchHighlight.tsx +0 -311
- package/src/components/CollectionViewBinding/SlotValue.tsx +0 -156
- package/src/components/CollectionViewBinding/SortButton.tsx +0 -354
- package/src/components/CollectionViewBinding/SplitListCloseButton.tsx +0 -49
- package/src/components/CollectionViewBinding/SplitListShowButton.tsx +0 -28
- package/src/components/CollectionViewBinding/SplitListView.tsx +0 -488
- package/src/components/CollectionViewBinding/SplitViewContext.tsx +0 -34
- package/src/components/CollectionViewBinding/ViewModeToggle.tsx +0 -250
- package/src/components/CollectionViewBinding/hooks/useCollectionInlineEditor.ts +0 -81
- package/src/components/CollectionViewBinding/hooks/useKanbanDragAndDrop.ts +0 -181
- package/src/components/CollectionViewBinding/useBoardDataController.tsx +0 -802
- package/src/components/CollectionViewBinding/usePreviewSlots.ts +0 -703
- package/src/components/CollectionViewBinding/useSelectionController.tsx +0 -40
- package/src/components/CollectionViewBinding/utils.ts +0 -22
- package/src/components/DefaultAppBar.tsx +0 -264
- package/src/components/DefaultDrawer.tsx +0 -593
- package/src/components/DeleteEntityDialog.tsx +0 -205
- package/src/components/DetailViewBinding.tsx +0 -731
- package/src/components/DrawerNavigationGroup.tsx +0 -141
- package/src/components/DrawerNavigationItem.tsx +0 -115
- package/src/components/EditFormActions.tsx +0 -303
- package/src/components/EditViewBinding.tsx +0 -1069
- package/src/components/EntityDisplayHeader.tsx +0 -170
- package/src/components/EntityIdentityBar.tsx +0 -428
- package/src/components/EntityInspector.tsx +0 -156
- package/src/components/EntityPreviewBinding.tsx +0 -432
- package/src/components/EntityPreviewNesting.tsx +0 -50
- package/src/components/EntityViewBinding.tsx +0 -374
- package/src/components/FieldCaption.tsx +0 -14
- package/src/components/HomePage/ContentHomePage.tsx +0 -586
- package/src/components/HomePage/FavouritesView.tsx +0 -60
- package/src/components/HomePage/HomePageDnD.tsx +0 -704
- package/src/components/HomePage/NavigationCard.tsx +0 -81
- package/src/components/HomePage/NavigationCardBinding.tsx +0 -107
- package/src/components/HomePage/NavigationGroup.tsx +0 -156
- package/src/components/HomePage/RenameGroupDialog.tsx +0 -123
- package/src/components/HomePage/SmallNavigationCard.tsx +0 -41
- package/src/components/HomePage/index.tsx +0 -5
- package/src/components/InlineEntityPreview.tsx +0 -149
- package/src/components/JsonPreviewBinding.tsx +0 -66
- package/src/components/PropertyCollectionView.tsx +0 -336
- package/src/components/PropertyConfigBadge.tsx +0 -28
- package/src/components/PropertyIdCopyTooltip.tsx +0 -47
- package/src/components/RebaseAuthGate.tsx +0 -44
- package/src/components/RebaseCMS.tsx +0 -30
- package/src/components/RebaseLayout.tsx +0 -80
- package/src/components/RebaseNavigation.tsx +0 -369
- package/src/components/RebaseRouteDefs.tsx +0 -127
- package/src/components/RebaseShell.tsx +0 -83
- package/src/components/ReferenceTable/SelectionTableBinding.tsx +0 -389
- package/src/components/ReferenceWidget.tsx +0 -156
- package/src/components/RelationSelector.tsx +0 -926
- package/src/components/SearchIconsView.tsx +0 -78
- package/src/components/SelectableTable/SelectableTable.tsx +0 -309
- package/src/components/SelectableTable/SelectableTableContext.tsx +0 -7
- package/src/components/SelectableTable/SelectionStore.ts +0 -43
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +0 -59
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +0 -146
- package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +0 -190
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +0 -250
- package/src/components/SelectableTable/filters/RelationFilterField.tsx +0 -238
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +0 -282
- package/src/components/SelectableTable/filters/null_filter.ts +0 -63
- package/src/components/SideDialogs.tsx +0 -238
- package/src/components/SidePanelBinding.tsx +0 -361
- package/src/components/SidePanelProvider.tsx +0 -80
- package/src/components/UserSelector.tsx +0 -513
- package/src/components/admin/CreationResultDialog.tsx +0 -138
- package/src/components/admin/index.ts +0 -1
- package/src/components/app/AppBar.tsx +0 -17
- package/src/components/app/Drawer.tsx +0 -38
- package/src/components/app/Scaffold.tsx +0 -366
- package/src/components/app/index.ts +0 -4
- package/src/components/app/useApp.tsx +0 -36
- package/src/components/common/default_entity_actions.tsx +0 -440
- package/src/components/common/index.ts +0 -1
- package/src/components/field_configs.tsx +0 -506
- package/src/components/history/EntityHistoryEntry.tsx +0 -203
- package/src/components/history/EntityHistoryView.tsx +0 -206
- package/src/components/history/LastEditedByFormAction.tsx +0 -24
- package/src/components/history/LastEditedByIndicator.tsx +0 -95
- package/src/components/history/UserChip.tsx +0 -15
- package/src/components/history/index.tsx +0 -5
- package/src/components/index.ts +0 -63
- package/src/contexts/BreacrumbsContext.tsx +0 -45
- package/src/contexts/SideDialogsControllerContext.tsx +0 -5
- package/src/contexts/SidePanelControllerContext.tsx +0 -5
- package/src/data_export/export/BasicExportAction.tsx +0 -142
- package/src/data_export/export/ExportCollectionAction.tsx +0 -321
- package/src/data_export/export/export.ts +0 -295
- package/src/data_export/export/fetch_export_data.ts +0 -90
- package/src/data_export/export/index.ts +0 -4
- package/src/data_export/index.ts +0 -1
- package/src/data_import/components/DataNewPropertiesMapping.tsx +0 -261
- package/src/data_import/components/ImportFileUpload.tsx +0 -42
- package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +0 -58
- package/src/data_import/components/ImportSaveInProgress.tsx +0 -121
- package/src/data_import/components/index.ts +0 -4
- package/src/data_import/hooks/index.ts +0 -1
- package/src/data_import/hooks/useImportConfig.tsx +0 -34
- package/src/data_import/import/ImportCollectionAction.tsx +0 -461
- package/src/data_import/import/index.ts +0 -1
- package/src/data_import/index.ts +0 -5
- package/src/data_import/types/column_mapping.ts +0 -32
- package/src/data_import/types/index.ts +0 -1
- package/src/data_import/utils/csv.ts +0 -153
- package/src/data_import/utils/data.ts +0 -181
- package/src/data_import/utils/file_headers.ts +0 -14
- package/src/data_import/utils/file_to_json.ts +0 -149
- package/src/data_import/utils/get_import_inference_type.ts +0 -33
- package/src/data_import/utils/get_properties_mapping.ts +0 -67
- package/src/data_import/utils/index.ts +0 -5
- package/src/data_import/utils/save_entities.ts +0 -138
- package/src/data_import/utils/transforms.ts +0 -70
- package/src/editor/components/SlashCommandMenu.tsx +0 -532
- package/src/editor/components/editor-bubble-item.tsx +0 -32
- package/src/editor/components/editor-bubble.tsx +0 -143
- package/src/editor/components/image-bubble.tsx +0 -183
- package/src/editor/components/index.ts +0 -14
- package/src/editor/components/table-bubble.tsx +0 -233
- package/src/editor/editor.tsx +0 -529
- package/src/editor/extensions/HighlightDecorationExtension.ts +0 -115
- package/src/editor/extensions/Image.ts +0 -159
- package/src/editor/extensions/TextLoadingDecorationExtension.tsx +0 -107
- package/src/editor/extensions/clipboard.ts +0 -72
- package/src/editor/extensions/custom-keymap.ts +0 -25
- package/src/editor/extensions/drag-and-drop.tsx +0 -508
- package/src/editor/hooks/useProseMirror.ts +0 -126
- package/src/editor/hooks/useProseMirrorContext.ts +0 -15
- package/src/editor/index.ts +0 -2
- package/src/editor/markdown-it-plugins.d.ts +0 -24
- package/src/editor/markdown.ts +0 -204
- package/src/editor/nodeViews/ImageComponent.tsx +0 -20
- package/src/editor/nodeViews/ReactNodeView.tsx +0 -89
- package/src/editor/nodeViews/TaskItemComponent.tsx +0 -30
- package/src/editor/nodeViews/index.ts +0 -35
- package/src/editor/plugins/index.ts +0 -58
- package/src/editor/plugins/inputrules.ts +0 -82
- package/src/editor/plugins/placeholderPlugin.ts +0 -55
- package/src/editor/plugins/slashCommandPlugin.ts +0 -65
- package/src/editor/schema.ts +0 -339
- package/src/editor/selectors/ai-selector.tsx +0 -110
- package/src/editor/selectors/color-selector.tsx +0 -199
- package/src/editor/selectors/link-selector.tsx +0 -122
- package/src/editor/selectors/node-selector.tsx +0 -159
- package/src/editor/selectors/text-buttons.tsx +0 -79
- package/src/editor/types.ts +0 -6
- package/src/editor/useProseMirror.ts +0 -125
- package/src/editor/utils/prosemirror-utils.ts +0 -113
- package/src/editor/utils/remove_classes.ts +0 -18
- package/src/editor/utils/useDebouncedCallback.ts +0 -25
- package/src/form/EntityForm.tsx +0 -761
- package/src/form/EntityFormActions.tsx +0 -160
- package/src/form/EntityFormBinding.tsx +0 -342
- package/src/form/PropertyFieldBinding.tsx +0 -348
- package/src/form/components/ErrorFocus.tsx +0 -44
- package/src/form/components/FieldBlock.tsx +0 -189
- package/src/form/components/FieldHelperText.tsx +0 -84
- package/src/form/components/FormRail.tsx +0 -153
- package/src/form/components/FormSections.tsx +0 -145
- package/src/form/components/LabelWithIcon.tsx +0 -43
- package/src/form/components/LabelWithIconAndTooltip.tsx +0 -28
- package/src/form/components/LocalChangesMenu.tsx +0 -147
- package/src/form/components/StorageItemPreview.tsx +0 -81
- package/src/form/components/StorageUploadProgress.tsx +0 -118
- package/src/form/components/index.tsx +0 -6
- package/src/form/components/useRailVisible.tsx +0 -47
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +0 -109
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +0 -172
- package/src/form/field_bindings/BinaryFieldBinding.tsx +0 -177
- package/src/form/field_bindings/BlockFieldBinding.tsx +0 -282
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +0 -78
- package/src/form/field_bindings/GeopointFieldBinding.tsx +0 -200
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +0 -574
- package/src/form/field_bindings/MapFieldBinding.tsx +0 -120
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +0 -259
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +0 -130
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +0 -168
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +0 -94
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +0 -146
- package/src/form/field_bindings/RelationFieldBinding.tsx +0 -202
- package/src/form/field_bindings/RepeatFieldBinding.tsx +0 -143
- package/src/form/field_bindings/SelectFieldBinding.tsx +0 -111
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +0 -521
- package/src/form/field_bindings/SwitchFieldBinding.tsx +0 -70
- package/src/form/field_bindings/TextFieldBinding.tsx +0 -189
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +0 -71
- package/src/form/field_bindings/VectorFieldBinding.tsx +0 -209
- package/src/form/form_utils.ts +0 -243
- package/src/form/index.tsx +0 -36
- package/src/form/useClearRestoreValue.tsx +0 -36
- package/src/form/useUndoableDiscard.ts +0 -39
- package/src/form/validation.ts +0 -583
- package/src/hooks/index.ts +0 -16
- package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +0 -22
- package/src/hooks/navigation/contexts/NavigationStateContext.tsx +0 -16
- package/src/hooks/navigation/contexts/UrlContext.tsx +0 -24
- package/src/hooks/navigation/contexts/index.ts +0 -14
- package/src/hooks/navigation/useAsyncResolver.ts +0 -100
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +0 -218
- package/src/hooks/navigation/useBuildNavigationStateController.tsx +0 -134
- package/src/hooks/navigation/useBuildUrlController.tsx +0 -66
- package/src/hooks/navigation/useNavigationResolution.ts +0 -271
- package/src/hooks/navigation/useResolvedCollections.ts +0 -102
- package/src/hooks/navigation/useResolvedViews.tsx +0 -139
- package/src/hooks/navigation/useTopLevelNavigation.ts +0 -273
- package/src/hooks/navigation/utils.ts +0 -200
- package/src/hooks/useAdminContext.tsx +0 -83
- package/src/hooks/useBreadcrumbsController.tsx +0 -17
- package/src/hooks/useBuildSideDialogsController.tsx +0 -145
- package/src/hooks/useBuildSidePanel.tsx +0 -315
- package/src/hooks/useChildViewSource.ts +0 -46
- package/src/hooks/useEntityDisplay.tsx +0 -262
- package/src/hooks/useEntityDisplayTitle.tsx +0 -49
- package/src/hooks/useHistory.ts +0 -178
- package/src/hooks/useRecordActions.tsx +0 -69
- package/src/hooks/useResolvedNavigationFrom.tsx +0 -167
- package/src/hooks/useResolvedUsers.ts +0 -148
- package/src/hooks/useSelectionDialog.tsx +0 -58
- package/src/hooks/useSideDialogsController.tsx +0 -25
- package/src/hooks/useSidePanel.tsx +0 -13
- package/src/index.ts +0 -124
- package/src/preview/PropertyPreview.tsx +0 -331
- package/src/preview/compact_text.ts +0 -68
- package/src/preview/components/ArrayEnumPreview.tsx +0 -39
- package/src/preview/components/BooleanPreview.tsx +0 -28
- package/src/preview/components/DatePreview.tsx +0 -106
- package/src/preview/components/EmptyValue.tsx +0 -10
- package/src/preview/components/EnumValuesChip.tsx +0 -39
- package/src/preview/components/ImagePreview.tsx +0 -144
- package/src/preview/components/InlineEntityListPreview.tsx +0 -42
- package/src/preview/components/ReferencePreview.tsx +0 -235
- package/src/preview/components/RelationPreview.tsx +0 -271
- package/src/preview/components/StorageThumbnail.tsx +0 -147
- package/src/preview/components/UrlComponentPreview.tsx +0 -116
- package/src/preview/components/UserPreview.tsx +0 -30
- package/src/preview/components/date_fns_locales.ts +0 -125
- package/src/preview/index.ts +0 -26
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +0 -73
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +0 -67
- package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +0 -77
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +0 -49
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -70
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +0 -79
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +0 -35
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +0 -79
- package/src/preview/property_previews/MapPropertyPreview.tsx +0 -198
- package/src/preview/property_previews/NumberPropertyPreview.tsx +0 -39
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +0 -276
- package/src/preview/property_previews/StringPropertyPreview.tsx +0 -70
- package/src/preview/util.ts +0 -39
- package/src/routes/CustomViewRoute.tsx +0 -33
- package/src/routes/RebaseRoute.tsx +0 -467
- package/src/routes/index.ts +0 -2
- package/src/types/components/EntityFormActionsProps.tsx +0 -20
- package/src/types/components/EntityFormProps.tsx +0 -119
- package/src/types/components/PropertyPreviewProps.tsx +0 -85
- package/src/types/components/formex.tsx +0 -2
- package/src/types/components/index.ts +0 -3
- package/src/types/fields.tsx +0 -340
- package/src/types/index.ts +0 -4
- package/src/util/dataControllerAdapter.ts +0 -88
- package/src/util/entity_actions.ts +0 -28
- package/src/util/index.ts +0 -5
- package/src/util/navigation_utils.ts +0 -89
- package/src/util/number_format.ts +0 -46
- package/src/util/previews.ts +0 -131
- package/src/util/propertyConfigMapper.ts +0 -134
- package/src/util/property_utils.tsx +0 -236
- package/src/util/resolutions.ts +0 -96
- package/src/util/view_constants.ts +0 -33
- package/src/util/view_mode.ts +0 -176
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import type { EntityCustomView, AdminCollection } from "@rebasepro/cms-types";
|
|
3
|
-
import { Entity, User } from "@rebasepro/types";
|
|
4
|
-
import { RebaseContext } from "@rebasepro/cms-types";
|
|
5
|
-
import { useEffect, useState, useMemo } from "react";
|
|
6
|
-
import { getNavigationEntriesFromPath } from "@rebasepro/app";
|
|
7
|
-
import { useAdminContext } from "./useAdminContext";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @see resolveNavigationFrom
|
|
11
|
-
* @group Hooks and utilities
|
|
12
|
-
*/
|
|
13
|
-
export type ResolvedNavigationEntry<M extends Record<string, unknown>> =
|
|
14
|
-
| ResolvedNavigationEntity<M>
|
|
15
|
-
| ResolvedNavigationCollection<M>
|
|
16
|
-
| ResolvedNavigationEntityCustom<M>;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @see resolveNavigationFrom
|
|
20
|
-
* @group Hooks and utilities
|
|
21
|
-
*/
|
|
22
|
-
export interface ResolvedNavigationEntity<M extends Record<string, unknown>> {
|
|
23
|
-
type: "entity";
|
|
24
|
-
entity: Entity<M>;
|
|
25
|
-
entityId: string | number;
|
|
26
|
-
path: string;
|
|
27
|
-
parentCollection: AdminCollection<M>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @see resolveNavigationFrom
|
|
32
|
-
* @group Hooks and utilities
|
|
33
|
-
*/
|
|
34
|
-
export interface ResolvedNavigationCollection<M extends Record<string, unknown>> {
|
|
35
|
-
type: "collection";
|
|
36
|
-
path: string;
|
|
37
|
-
collection: AdminCollection<M>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* @see resolveNavigationFrom
|
|
42
|
-
* @group Hooks and utilities
|
|
43
|
-
*/
|
|
44
|
-
interface ResolvedNavigationEntityCustom<M extends Record<string, unknown>> {
|
|
45
|
-
type: "custom_view";
|
|
46
|
-
path: string;
|
|
47
|
-
view: EntityCustomView<M>;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Use this function to retrieve an array of navigation entries (resolved
|
|
52
|
-
* collection, entity or entity custom_view) for the given path. You need to pass the app context
|
|
53
|
-
* that you receive in different callbacks, such as the save hooks.
|
|
54
|
-
*
|
|
55
|
-
* It will take into account the `navigation` provided at the `Rebase` level.
|
|
56
|
-
*
|
|
57
|
-
* @param path
|
|
58
|
-
* @param context
|
|
59
|
-
* @group Hooks and utilities
|
|
60
|
-
*/
|
|
61
|
-
export function resolveNavigationFrom<M extends Record<string, unknown>, USER extends User>({
|
|
62
|
-
path,
|
|
63
|
-
context
|
|
64
|
-
}: {
|
|
65
|
-
path: string,
|
|
66
|
-
context: RebaseContext<USER>
|
|
67
|
-
}): Promise<ResolvedNavigationEntry<M>[]> {
|
|
68
|
-
|
|
69
|
-
const data = context.data;
|
|
70
|
-
const { navigationStateController, collectionRegistryController } = context;
|
|
71
|
-
|
|
72
|
-
if (!navigationStateController || !collectionRegistryController) {
|
|
73
|
-
throw Error("Calling resolveNavigationFrom, but main navigation has not yet been initialised");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const navigationEntries = getNavigationEntriesFromPath({
|
|
77
|
-
path,
|
|
78
|
-
collections: collectionRegistryController.collections ?? []
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
const resultPromises: Promise<ResolvedNavigationEntry<any>>[] = navigationEntries
|
|
82
|
-
.map((entry) => {
|
|
83
|
-
if (entry.type === "collection") {
|
|
84
|
-
return Promise.resolve(entry);
|
|
85
|
-
} else if (entry.type === "entity") {
|
|
86
|
-
const collection = collectionRegistryController.getCollection(entry.slug);
|
|
87
|
-
if (!collection) {
|
|
88
|
-
throw Error(`No collection defined in the navigation for the entity with path ${entry.slug}`);
|
|
89
|
-
}
|
|
90
|
-
// `context.data` is the flat SDK layer; re-wrap the row into the
|
|
91
|
-
// Entity view-model the navigation entry expects. The address is
|
|
92
|
-
// the one we just fetched by — reading it back off the row would
|
|
93
|
-
// find nothing, since a row is only its columns.
|
|
94
|
-
return data.collection(entry.slug).findById(entry.entityId)
|
|
95
|
-
.then((row) => {
|
|
96
|
-
if (!row) return undefined;
|
|
97
|
-
const entity = { id: entry.entityId, path: entry.slug, values: row };
|
|
98
|
-
return { ...entry,
|
|
99
|
-
entity };
|
|
100
|
-
});
|
|
101
|
-
} else if (entry.type === "custom_view") {
|
|
102
|
-
return Promise.resolve(entry);
|
|
103
|
-
} else {
|
|
104
|
-
throw Error("Unmapped element in useEntitiesFromPath");
|
|
105
|
-
}
|
|
106
|
-
})
|
|
107
|
-
.filter(v => Boolean(v)) as Promise<ResolvedNavigationEntry<any>>[];
|
|
108
|
-
|
|
109
|
-
return Promise.all(resultPromises);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* @group Hooks and utilities
|
|
114
|
-
*/
|
|
115
|
-
export interface NavigationFromProps {
|
|
116
|
-
path: string;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* @group Hooks and utilities
|
|
121
|
-
*/
|
|
122
|
-
export interface NavigationFrom<M extends Record<string, unknown>> {
|
|
123
|
-
data?: ResolvedNavigationEntry<M>[]
|
|
124
|
-
dataLoading: boolean,
|
|
125
|
-
dataLoadingError?: Error
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Use this hook to retrieve an array of navigation entries (resolved
|
|
130
|
-
* collection or entity) for the given path. You can use this hook
|
|
131
|
-
* in any React component that lives under `Rebase`
|
|
132
|
-
* @group Hooks and utilities
|
|
133
|
-
*/
|
|
134
|
-
export function useResolvedNavigationFrom<M extends Record<string, unknown>>(
|
|
135
|
-
{
|
|
136
|
-
path
|
|
137
|
-
}: NavigationFromProps): NavigationFrom<M> {
|
|
138
|
-
|
|
139
|
-
const context = useAdminContext();
|
|
140
|
-
const { navigationStateController, collectionRegistryController } = context;
|
|
141
|
-
|
|
142
|
-
const [data, setData] = useState<ResolvedNavigationEntry<M>[] | undefined>();
|
|
143
|
-
const [dataLoading, setDataLoading] = useState<boolean>(false);
|
|
144
|
-
const [dataLoadingError, setDataLoadingError] = useState<Error | undefined>();
|
|
145
|
-
|
|
146
|
-
useEffect(() => {
|
|
147
|
-
if (navigationStateController && collectionRegistryController) {
|
|
148
|
-
setDataLoading(true);
|
|
149
|
-
setDataLoadingError(undefined);
|
|
150
|
-
resolveNavigationFrom<M, User>({ path,
|
|
151
|
-
context })
|
|
152
|
-
.then(setData)
|
|
153
|
-
.catch((e) => setDataLoadingError(e))
|
|
154
|
-
.finally(() => setDataLoading(false));
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
}, [path, context]);
|
|
158
|
-
|
|
159
|
-
return useMemo(() => {
|
|
160
|
-
if (!navigationStateController) {
|
|
161
|
-
return { dataLoading: true };
|
|
162
|
-
}
|
|
163
|
-
return { data,
|
|
164
|
-
dataLoading,
|
|
165
|
-
dataLoadingError };
|
|
166
|
-
}, [navigationStateController, data, dataLoading, dataLoadingError]);
|
|
167
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
2
|
-
import type { User } from "@rebasepro/types";
|
|
3
|
-
import { apiBaseOf, useAuthController, useRebaseClient } from "@rebasepro/app";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Resolves the auth users behind `userSelect` values.
|
|
7
|
-
*
|
|
8
|
-
* A collection view can ask for dozens of ids at once — one per row — so
|
|
9
|
-
* lookups are coalesced into a single `GET /api/users?ids=…` per tick and
|
|
10
|
-
* cached per base URL. Ids that resolve to nothing are remembered too, so a
|
|
11
|
-
* dangling reference is not retried on every render.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
interface UserCache {
|
|
15
|
-
users: Map<string, User | null>;
|
|
16
|
-
pending: Map<string, Promise<void>>;
|
|
17
|
-
queue: Set<string>;
|
|
18
|
-
flush?: ReturnType<typeof setTimeout>;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const caches = new Map<string, UserCache>();
|
|
22
|
-
|
|
23
|
-
function getCache(baseUrl: string): UserCache {
|
|
24
|
-
let cache = caches.get(baseUrl);
|
|
25
|
-
if (!cache) {
|
|
26
|
-
cache = { users: new Map(),
|
|
27
|
-
pending: new Map(),
|
|
28
|
-
queue: new Set() };
|
|
29
|
-
caches.set(baseUrl, cache);
|
|
30
|
-
}
|
|
31
|
-
return cache;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async function fetchUsers(apiBase: string, ids: string[], token: string | undefined): Promise<Map<string, User | null>> {
|
|
35
|
-
const resolved = new Map<string, User | null>();
|
|
36
|
-
for (const id of ids) resolved.set(id, null);
|
|
37
|
-
|
|
38
|
-
const params = new URLSearchParams({ ids: ids.join(",") });
|
|
39
|
-
// Same route as the selector — see the note there; `/api/users` is a 404,
|
|
40
|
-
// so every `userSelect` value rendered as a bare id.
|
|
41
|
-
const response = await fetch(`${apiBase}/admin/users?${params}`, {
|
|
42
|
-
headers: token ? { Authorization: `Bearer ${token}` } : {}
|
|
43
|
-
});
|
|
44
|
-
if (!response.ok) {
|
|
45
|
-
// A non-admin viewer gets a 403 here. Treat it as "unresolvable" rather
|
|
46
|
-
// than an error: callers fall back to showing the raw value.
|
|
47
|
-
return resolved;
|
|
48
|
-
}
|
|
49
|
-
const data = await response.json();
|
|
50
|
-
const rows: Record<string, unknown>[] = data.users ?? data.data ?? [];
|
|
51
|
-
for (const row of rows) {
|
|
52
|
-
const uid = (row.uid as string) ?? (row.id as string);
|
|
53
|
-
if (!uid) continue;
|
|
54
|
-
resolved.set(uid, {
|
|
55
|
-
uid,
|
|
56
|
-
email: (row.email as string) ?? "",
|
|
57
|
-
displayName: (row.displayName as string) ?? (row.display_name as string) ?? null,
|
|
58
|
-
photoURL: (row.photoURL as string) ?? (row.photo_url as string) ?? null,
|
|
59
|
-
providerId: "custom",
|
|
60
|
-
isAnonymous: false,
|
|
61
|
-
roles: (row.roles as string[]) ?? []
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
return resolved;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function requestUser(
|
|
68
|
-
baseUrl: string,
|
|
69
|
-
uid: string,
|
|
70
|
-
getAuthToken: (() => Promise<string | undefined>) | undefined
|
|
71
|
-
): Promise<void> {
|
|
72
|
-
const cache = getCache(baseUrl);
|
|
73
|
-
const existing = cache.pending.get(uid);
|
|
74
|
-
if (existing) return existing;
|
|
75
|
-
|
|
76
|
-
cache.queue.add(uid);
|
|
77
|
-
|
|
78
|
-
const promise = new Promise<void>((resolve, reject) => {
|
|
79
|
-
if (cache.flush) clearTimeout(cache.flush);
|
|
80
|
-
cache.flush = setTimeout(async () => {
|
|
81
|
-
const ids = [...cache.queue];
|
|
82
|
-
cache.queue.clear();
|
|
83
|
-
cache.flush = undefined;
|
|
84
|
-
try {
|
|
85
|
-
const token = await getAuthToken?.();
|
|
86
|
-
const resolved = await fetchUsers(baseUrl, ids, token);
|
|
87
|
-
for (const id of ids) {
|
|
88
|
-
cache.users.set(id, resolved.get(id) ?? null);
|
|
89
|
-
cache.pending.delete(id);
|
|
90
|
-
}
|
|
91
|
-
resolve();
|
|
92
|
-
} catch (error) {
|
|
93
|
-
for (const id of ids) cache.pending.delete(id);
|
|
94
|
-
reject(error);
|
|
95
|
-
}
|
|
96
|
-
}, 0);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
cache.pending.set(uid, promise);
|
|
100
|
-
return promise;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* The auth user behind a `userSelect` value, or `null` while it is loading or
|
|
105
|
-
* when it cannot be resolved.
|
|
106
|
-
*/
|
|
107
|
-
export function useResolvedUser(uid: string | undefined): User | null {
|
|
108
|
-
const client = useRebaseClient<{ baseUrl?: string, apiPath?: string }>();
|
|
109
|
-
const { getAuthToken } = useAuthController();
|
|
110
|
-
/* The API prefix, not the bare origin: it keys the cache and is what a
|
|
111
|
-
request is built from, and a backend with a non-default `basePath`
|
|
112
|
-
serves neither at `/api`. */
|
|
113
|
-
const baseUrl = apiBaseOf(client);
|
|
114
|
-
|
|
115
|
-
const [user, setUser] = useState<User | null>(() =>
|
|
116
|
-
(baseUrl && uid) ? getCache(baseUrl).users.get(uid) ?? null : null);
|
|
117
|
-
|
|
118
|
-
useEffect(() => {
|
|
119
|
-
if (!baseUrl || !uid) {
|
|
120
|
-
setUser(null);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
const cache = getCache(baseUrl);
|
|
124
|
-
if (cache.users.has(uid)) {
|
|
125
|
-
setUser(cache.users.get(uid) ?? null);
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
let active = true;
|
|
130
|
-
requestUser(baseUrl, uid, getAuthToken)
|
|
131
|
-
.then(() => {
|
|
132
|
-
if (active) setUser(getCache(baseUrl).users.get(uid) ?? null);
|
|
133
|
-
})
|
|
134
|
-
.catch(() => {
|
|
135
|
-
if (active) setUser(null);
|
|
136
|
-
});
|
|
137
|
-
return () => {
|
|
138
|
-
active = false;
|
|
139
|
-
};
|
|
140
|
-
}, [baseUrl, uid, getAuthToken]);
|
|
141
|
-
|
|
142
|
-
return user;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/** Human-readable label for a resolved user. */
|
|
146
|
-
export function getUserLabel(user: User): string {
|
|
147
|
-
return user.displayName || user.email || user.uid;
|
|
148
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { SelectionProps, SelectionTableBinding } from "../components/ReferenceTable/SelectionTableBinding";
|
|
2
|
-
|
|
3
|
-
import { useCallback, useMemo } from "react";
|
|
4
|
-
import { useSideDialogsController } from "./useSideDialogsController";
|
|
5
|
-
import { useCollectionRegistryController } from "./navigation/contexts/CollectionRegistryContext";
|
|
6
|
-
import type { AdminCollection } from "@rebasepro/cms-types";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* This hook is used to open a side dialog that allows the selection
|
|
10
|
-
* of entities under a given path.
|
|
11
|
-
* You can use it in custom views for selecting entities.
|
|
12
|
-
* You need to specify the path of the target collection at least.
|
|
13
|
-
* If your collection is not defined in your top collection configuration
|
|
14
|
-
* (in your `Rebase` component), you need to specify explicitly.
|
|
15
|
-
* This is the same hook used internally when a reference property is defined.
|
|
16
|
-
* @group Hooks and utilities
|
|
17
|
-
*/
|
|
18
|
-
export function useSelectionDialog<M extends Record<string, unknown>>(referenceDialogProps: Omit<SelectionProps<M>, "path"> & {
|
|
19
|
-
path?: string | false;
|
|
20
|
-
onClose?: () => void;
|
|
21
|
-
}): { open: () => void; close: () => void } {
|
|
22
|
-
|
|
23
|
-
const navigation = useCollectionRegistryController();
|
|
24
|
-
const sideDialogsController = useSideDialogsController();
|
|
25
|
-
|
|
26
|
-
const open = useCallback(() => {
|
|
27
|
-
if (referenceDialogProps.path) {
|
|
28
|
-
let usedCollection = referenceDialogProps.collection;
|
|
29
|
-
if (!usedCollection)
|
|
30
|
-
usedCollection = navigation.getCollection(referenceDialogProps.path) as AdminCollection<M> | undefined;
|
|
31
|
-
if (!usedCollection)
|
|
32
|
-
throw Error("Not able to resolve the collection in useSelectionDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
|
|
33
|
-
sideDialogsController.open({
|
|
34
|
-
key: `reference_${referenceDialogProps.path}`,
|
|
35
|
-
component:
|
|
36
|
-
<SelectionTableBinding
|
|
37
|
-
collection={usedCollection}
|
|
38
|
-
{...referenceDialogProps as SelectionProps<M>}/>,
|
|
39
|
-
width: "90vw",
|
|
40
|
-
onClose: () => {
|
|
41
|
-
referenceDialogProps.onClose?.();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
} else {
|
|
45
|
-
throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`")
|
|
46
|
-
}
|
|
47
|
-
}, [navigation, referenceDialogProps, sideDialogsController]);
|
|
48
|
-
|
|
49
|
-
const close = useCallback(() => {
|
|
50
|
-
sideDialogsController.close();
|
|
51
|
-
}, [sideDialogsController]);
|
|
52
|
-
|
|
53
|
-
return useMemo(() => ({
|
|
54
|
-
open,
|
|
55
|
-
close
|
|
56
|
-
}), [open, close]);
|
|
57
|
-
|
|
58
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
|
|
3
|
-
import { useContext } from "react";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook to retrieve the side dialogs' controller.
|
|
7
|
-
*
|
|
8
|
-
* This hook allows you to open and close side dialogs. This is the mechanism
|
|
9
|
-
* used when open a side entity dialog, or when selecting a reference.
|
|
10
|
-
*
|
|
11
|
-
* If you want to open a side entity dialog, you can use the {@link useSidePanel}
|
|
12
|
-
* hook.
|
|
13
|
-
*
|
|
14
|
-
* If you want to select a reference, you can use the {@link useReferenceDialog}
|
|
15
|
-
*
|
|
16
|
-
* Consider that in order to use this hook you need to have a parent
|
|
17
|
-
* `Rebase`
|
|
18
|
-
*
|
|
19
|
-
* @group Hooks and utilities
|
|
20
|
-
*/
|
|
21
|
-
import { SideDialogPanelProps, SideDialogsController } from "@rebasepro/cms-types";
|
|
22
|
-
|
|
23
|
-
export type { SideDialogPanelProps, SideDialogsController };
|
|
24
|
-
|
|
25
|
-
export const useSideDialogsController = (): SideDialogsController => useContext(SideDialogsControllerContext);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { SidePanelController } from "@rebasepro/cms-types";
|
|
2
|
-
import React, { useContext } from "react";
|
|
3
|
-
|
|
4
|
-
export const SidePanelControllerContext = React.createContext<SidePanelController>({} as SidePanelController);
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Use this hook to retrieve a entity controller that allows you to open
|
|
8
|
-
* a side dialog to edit a entity.
|
|
9
|
-
*
|
|
10
|
-
* @see SidePanelController
|
|
11
|
-
* @group Hooks and utilities
|
|
12
|
-
*/
|
|
13
|
-
export const useSidePanel = (): SidePanelController => useContext(SidePanelControllerContext);
|
package/src/index.ts
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
// admin-specific types take priority over base types when names conflict
|
|
2
|
-
export * from "./types";
|
|
3
|
-
// Editor types only — the full ProseMirror editor (RichTextEditor) is a heavy import (~300 KB)
|
|
4
|
-
// and is available as a separate entry point: @rebasepro/cms/editor
|
|
5
|
-
export type { RichTextEditorProps, RichTextEditorTextSize, JSONContent, EditorAIController } from "./editor";
|
|
6
|
-
export * from "./form";
|
|
7
|
-
export * from "./preview";
|
|
8
|
-
export * from "./routes";
|
|
9
|
-
|
|
10
|
-
// Components — explicitly listed to avoid conflicts with ./types re-exports
|
|
11
|
-
export {
|
|
12
|
-
EntityViewBinding,
|
|
13
|
-
SelectionTableBinding,
|
|
14
|
-
SelectableTable,
|
|
15
|
-
SelectableTableContext,
|
|
16
|
-
CollectionViewBinding,
|
|
17
|
-
CollectionViewActions,
|
|
18
|
-
CollectionCardViewBinding,
|
|
19
|
-
EntityCardBinding,
|
|
20
|
-
useSelectionController,
|
|
21
|
-
PropertyConfigBadge,
|
|
22
|
-
PropertyIdCopyTooltip,
|
|
23
|
-
CollectionTableBinding,
|
|
24
|
-
CollectionRowActions,
|
|
25
|
-
VirtualTableInput,
|
|
26
|
-
ArrayContainer,
|
|
27
|
-
type ArrayEntryParams,
|
|
28
|
-
ReferenceWidget,
|
|
29
|
-
SearchIconsView,
|
|
30
|
-
FieldCaption,
|
|
31
|
-
EntityPreviewBinding,
|
|
32
|
-
getFieldConfig,
|
|
33
|
-
getFieldId,
|
|
34
|
-
getDefaultFieldConfig,
|
|
35
|
-
getDefaultFieldId,
|
|
36
|
-
DEFAULT_FIELD_CONFIGS,
|
|
37
|
-
editEntityAction,
|
|
38
|
-
copyEntityAction,
|
|
39
|
-
deleteEntityAction,
|
|
40
|
-
resetPasswordAction,
|
|
41
|
-
SidePanelProvider,
|
|
42
|
-
Scaffold,
|
|
43
|
-
AppBar,
|
|
44
|
-
Drawer,
|
|
45
|
-
DefaultDrawer,
|
|
46
|
-
DrawerFooterActions,
|
|
47
|
-
// The two rows the `Shell.DrawerNavigation*` overrides replace. Public so an
|
|
48
|
-
// app can wrap the stock ones — pass different props, add a context — instead of
|
|
49
|
-
// reimplementing a nav row and drifting from the framework's hover, active and
|
|
50
|
-
// tooltip behaviour on the next release.
|
|
51
|
-
DrawerNavigationItem,
|
|
52
|
-
DrawerNavigationGroup,
|
|
53
|
-
AdminModeSyncer,
|
|
54
|
-
// ContentHomePage is lazy-loaded — not re-exported here
|
|
55
|
-
RebaseCMS,
|
|
56
|
-
RebaseShell,
|
|
57
|
-
RebaseAuthGate,
|
|
58
|
-
RebaseNavigation,
|
|
59
|
-
RebaseLayout,
|
|
60
|
-
RebaseRouteDefs,
|
|
61
|
-
SideDialogs,
|
|
62
|
-
useApp,
|
|
63
|
-
CollectionPanel
|
|
64
|
-
} from "./components";
|
|
65
|
-
export type {
|
|
66
|
-
EntityViewBindingProps,
|
|
67
|
-
SelectionProps,
|
|
68
|
-
SelectableTableProps,
|
|
69
|
-
CollectionPanelProps,
|
|
70
|
-
DrawerNavigationGroupProps,
|
|
71
|
-
DrawerNavigationItemProps
|
|
72
|
-
} from "./components";
|
|
73
|
-
|
|
74
|
-
export * from "./hooks";
|
|
75
|
-
// Util
|
|
76
|
-
export {
|
|
77
|
-
addInitialSlash,
|
|
78
|
-
removeInitialSlash,
|
|
79
|
-
removeTrailingSlash,
|
|
80
|
-
removeInitialAndTrailingSlashes,
|
|
81
|
-
getLastSegment,
|
|
82
|
-
getCollectionBySlugWithin,
|
|
83
|
-
getCollectionPathsCombinations,
|
|
84
|
-
resolveCollectionPathIds,
|
|
85
|
-
mergeEntityActions,
|
|
86
|
-
resolveEntityAction,
|
|
87
|
-
resolveEntityView,
|
|
88
|
-
// Property utilities (moved from @rebasepro/app — property-aware logic belongs in admin)
|
|
89
|
-
isReferenceProperty,
|
|
90
|
-
isRelationProperty,
|
|
91
|
-
getIconForWidget,
|
|
92
|
-
getIconForProperty,
|
|
93
|
-
getPropertyInPath,
|
|
94
|
-
getResolvedPropertyInPath,
|
|
95
|
-
getBracketNotation,
|
|
96
|
-
getPropertiesWithPropertiesOrder,
|
|
97
|
-
getDefaultPropertiesOrder,
|
|
98
|
-
// Preview utilities (moved from @rebasepro/app — property-aware logic belongs in admin)
|
|
99
|
-
getEntityPreviewKeys,
|
|
100
|
-
getEntityTitlePropertyKey,
|
|
101
|
-
getEntityTitlePropertyKeyForEntity
|
|
102
|
-
} from "./util";
|
|
103
|
-
|
|
104
|
-
// Headless collection view adapters
|
|
105
|
-
// Map entity types to the data-agnostic CollectionView from @rebasepro/ui
|
|
106
|
-
export { mapPropertyToConfig, mapPropertiesToConfigs } from "./util/propertyConfigMapper";
|
|
107
|
-
export { useCollectionDataController, createStaticDataController } from "./util/dataControllerAdapter";
|
|
108
|
-
|
|
109
|
-
// Data import/export — merged from former standalone packages
|
|
110
|
-
export * from "./data_import";
|
|
111
|
-
export * from "./data_export";
|
|
112
|
-
|
|
113
|
-
// Collection editor — moved from @rebasepro/studio (admin-dependent visual schema editor)
|
|
114
|
-
export * from "./collection_editor";
|
|
115
|
-
export * from "./collection_editor/liveSchemaClient";
|
|
116
|
-
export * from "./collection_editor/useLiveSchemaEditing";
|
|
117
|
-
// `SchemaChangeDialog` is deliberately absent, like `CollectionEditorDialog`
|
|
118
|
-
// and `PropertyFormDialog` beside it: re-exporting it from the barrel puts it
|
|
119
|
-
// back in the eager bundle and undoes the `lazyChunk` in `useLiveSchemaEditing`.
|
|
120
|
-
// Import it by path if you need the component itself.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
export { CreationResultDialog } from "./components/admin/CreationResultDialog";
|
|
124
|
-
|