@rebasepro/cms 0.17.3 → 0.18.1
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
package/src/form/form_utils.ts
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import type { PropertyConfig, AdminCollection } from "@rebasepro/cms-types";
|
|
3
|
-
import type { Entity, EntityStatus, EntityValues } from "@rebasepro/types";
|
|
4
|
-
import type { AuthController } from "@rebasepro/cms-types";
|
|
5
|
-
import { deepEqual as equal } from "fast-equals";
|
|
6
|
-
import { getIn, setIn } from "@rebasepro/forms";
|
|
7
|
-
import { getDefaultValuesFor } from "@rebasepro/common";
|
|
8
|
-
import { isObject, mergeDeep } from "@rebasepro/utils";
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
|
|
11
|
-
// extract touched values for nested touched trees and map to current values
|
|
12
|
-
export function extractTouchedValues(values: unknown, touched: Record<string, boolean>): Record<string, unknown> {
|
|
13
|
-
let acc: Record<string, unknown> = {};
|
|
14
|
-
if (!touched || typeof touched !== "object") {
|
|
15
|
-
return acc;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
Object.entries(touched).forEach(([key, value]) => {
|
|
19
|
-
if (value) {
|
|
20
|
-
acc = setIn(acc, key, getIn(values, key)) as Record<string, unknown>;
|
|
21
|
-
}
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
return acc;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Recursively removes empty plain objects `{}` and empty arrays `[]` from a value tree.
|
|
29
|
-
* This prevents ghost containers created by `setIn` intermediate path construction
|
|
30
|
-
* (e.g. `{ address: {} }` when only `address.city` was touched but value is undefined)
|
|
31
|
-
* from falsely triggering the unsaved local changes indicator.
|
|
32
|
-
*/
|
|
33
|
-
/**
|
|
34
|
-
* Check if a value is semantically empty (null, undefined, or empty string).
|
|
35
|
-
*/
|
|
36
|
-
function isSemanticEmpty(v: unknown): boolean {
|
|
37
|
-
return v === null || v === undefined || v === "";
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function removeEmptyContainers(obj: unknown): unknown {
|
|
41
|
-
if (Array.isArray(obj)) {
|
|
42
|
-
const cleaned = obj.map(removeEmptyContainers);
|
|
43
|
-
// Keep arrays even if they contain only nulls/undefined — that's intentional data
|
|
44
|
-
return cleaned;
|
|
45
|
-
}
|
|
46
|
-
if (obj && typeof obj === "object" && Object.getPrototypeOf(obj) === Object.prototype) {
|
|
47
|
-
const result: Record<string, unknown> = {};
|
|
48
|
-
for (const key of Object.keys(obj)) {
|
|
49
|
-
const cleaned = removeEmptyContainers((obj as Record<string, unknown>)[key]);
|
|
50
|
-
// Skip empty plain objects
|
|
51
|
-
if (cleaned && typeof cleaned === "object" && !Array.isArray(cleaned)
|
|
52
|
-
&& Object.getPrototypeOf(cleaned) === Object.prototype
|
|
53
|
-
&& Object.keys(cleaned).length === 0) {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
result[key] = cleaned;
|
|
57
|
-
}
|
|
58
|
-
// After cleaning, check if all remaining values are semantically empty
|
|
59
|
-
// (null, undefined, or ""). This catches ghost objects like {type: "", value: null}
|
|
60
|
-
// created by oneOf block initialization that aren't meaningful changes.
|
|
61
|
-
if (Object.keys(result).length > 0 && Object.values(result).every(isSemanticEmpty)) {
|
|
62
|
-
return {};
|
|
63
|
-
}
|
|
64
|
-
return result;
|
|
65
|
-
}
|
|
66
|
-
return obj;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export function getChanges<T extends object>(source: Partial<T>, comparison: Partial<T>): Partial<T> {
|
|
70
|
-
const changes: Partial<T> = {};
|
|
71
|
-
|
|
72
|
-
if (!source) {
|
|
73
|
-
return {};
|
|
74
|
-
}
|
|
75
|
-
if (!comparison) {
|
|
76
|
-
return source;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const allKeys = Array.from(new Set([...Object.keys(source), ...Object.keys(comparison)]));
|
|
80
|
-
|
|
81
|
-
for (const key of allKeys) {
|
|
82
|
-
const sourceValue = (source as Record<string, unknown>)[key];
|
|
83
|
-
const comparisonValue = (comparison as Record<string, unknown>)[key];
|
|
84
|
-
|
|
85
|
-
if (equal(sourceValue, comparisonValue)) {
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const sourceHasKey = source && typeof source === "object" && Object.prototype.hasOwnProperty.call(source, key);
|
|
90
|
-
const comparisonHasKey = comparison && typeof comparison === "object" && Object.prototype.hasOwnProperty.call(comparison, key);
|
|
91
|
-
|
|
92
|
-
if (comparisonHasKey && !sourceHasKey) {
|
|
93
|
-
(changes as Record<string, unknown>)[key] = undefined;
|
|
94
|
-
} else if (Array.isArray(sourceValue)) {
|
|
95
|
-
const comparisonArray = Array.isArray(comparisonValue) ? comparisonValue : [];
|
|
96
|
-
if (sourceValue.length !== comparisonArray.length) {
|
|
97
|
-
(changes as Record<string, unknown>)[key] = sourceValue;
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
const hasChanges = sourceValue.some((item, index) => !equal(item, comparisonArray[index]));
|
|
101
|
-
if (hasChanges) {
|
|
102
|
-
(changes as Record<string, unknown>)[key] = sourceValue;
|
|
103
|
-
}
|
|
104
|
-
} else if (isObject(sourceValue) && sourceValue && isObject(comparisonValue) && comparisonValue) {
|
|
105
|
-
const nestedChanges = getChanges(sourceValue, comparisonValue);
|
|
106
|
-
if (Object.keys(nestedChanges).length > 0) {
|
|
107
|
-
(changes as Record<string, unknown>)[key] = nestedChanges;
|
|
108
|
-
}
|
|
109
|
-
} else {
|
|
110
|
-
(changes as Record<string, unknown>)[key] = sourceValue;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return changes;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* What the local-changes backup still has to offer, given what the form is
|
|
119
|
-
* already showing — the answer the "unsaved local changes" banner is asking for.
|
|
120
|
-
* `undefined` means there is nothing left to apply, and no banner.
|
|
121
|
-
*
|
|
122
|
-
* Measured against what the form *opens showing*, not against the stored
|
|
123
|
-
* record. The banner exists to offer a draft the form is not already displaying,
|
|
124
|
-
* and an edit carried across a change of layout is in both the backup and the
|
|
125
|
-
* form: measuring against the stored values alone offered to restore the values
|
|
126
|
-
* already on screen, over an edit the user had never left.
|
|
127
|
-
*/
|
|
128
|
-
export function getUnappliedLocalChanges<M extends Record<string, unknown>>(
|
|
129
|
-
backupValues: Partial<M>,
|
|
130
|
-
openingValues: Partial<M>
|
|
131
|
-
): Partial<M> | undefined {
|
|
132
|
-
const changes = getChanges(backupValues, openingValues);
|
|
133
|
-
const cleaned = removeEmptyContainers(changes);
|
|
134
|
-
if (!cleaned || typeof cleaned !== "object" || Object.keys(cleaned).length === 0) {
|
|
135
|
-
return undefined;
|
|
136
|
-
}
|
|
137
|
-
return cleaned as Partial<M>;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* What travels when the same record changes layout — the split's "hide list",
|
|
142
|
-
* full screen's "show list", the side panel's "open full screen". One mounted
|
|
143
|
-
* form is replaced by another showing the same record, so the edit in progress
|
|
144
|
-
* has to be handed over; left to the local-changes backup alone, the new form
|
|
145
|
-
* met it as a draft from a closed tab and raised the "unsaved local changes"
|
|
146
|
-
* banner over changes the user had made a second earlier and never left.
|
|
147
|
-
*
|
|
148
|
-
* Returns `undefined` when there is nothing to carry, which is its own answer: a
|
|
149
|
-
* record nobody edited must open in the next layout exactly as clean as it was.
|
|
150
|
-
*
|
|
151
|
-
* Only what was edited here travels, keyed by `touched` — the same subset the
|
|
152
|
-
* backup stores. Carrying the whole record instead marks every field touched in
|
|
153
|
-
* the receiving form, which lights up every empty required field as an error and
|
|
154
|
-
* writes the entire record back out as a "local change".
|
|
155
|
-
*/
|
|
156
|
-
export function getEditHandoffValues<M extends Record<string, unknown>>({
|
|
157
|
-
status,
|
|
158
|
-
dirty,
|
|
159
|
-
values,
|
|
160
|
-
touched,
|
|
161
|
-
storedValues
|
|
162
|
-
}: {
|
|
163
|
-
status: EntityStatus;
|
|
164
|
-
/** Whether `values` differ from what is stored. */
|
|
165
|
-
dirty: boolean;
|
|
166
|
-
values: Partial<M>;
|
|
167
|
-
touched: Record<string, boolean>;
|
|
168
|
-
/** The stored record, for the fallback below. Absent for a new one. */
|
|
169
|
-
storedValues?: Partial<M>;
|
|
170
|
-
}): Partial<M> | undefined {
|
|
171
|
-
|
|
172
|
-
if (!values) return undefined;
|
|
173
|
-
|
|
174
|
-
// A record with nothing stored behind it carries whole: there is no
|
|
175
|
-
// baseline to fall back to, so anything not carried is simply lost.
|
|
176
|
-
if (status === "new" || status === "copy") {
|
|
177
|
-
return Object.keys(values).length > 0 ? values : undefined;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (!dirty) return undefined;
|
|
181
|
-
|
|
182
|
-
const touchedValues = removeEmptyContainers(extractTouchedValues(values, touched ?? {})) as Partial<M> | undefined;
|
|
183
|
-
if (touchedValues && Object.keys(touchedValues).length > 0) {
|
|
184
|
-
return touchedValues;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// Dirty with nothing touched — a value set programmatically, by a plugin or
|
|
188
|
-
// a custom field that writes through `setFieldValue` without the blur that
|
|
189
|
-
// marks it. Diffing against the stored record still finds it, and dropping
|
|
190
|
-
// it here would hand over a form that opens clean over an edit.
|
|
191
|
-
const changes = getChanges(values, storedValues ?? {});
|
|
192
|
-
return Object.keys(changes).length > 0 ? changes : undefined;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
export function getInitialEntityValues<M extends Record<string, unknown>>(
|
|
196
|
-
authController: AuthController,
|
|
197
|
-
collection: AdminCollection,
|
|
198
|
-
path: string,
|
|
199
|
-
status: "new" | "existing" | "copy",
|
|
200
|
-
entity: Entity<M> | undefined,
|
|
201
|
-
propertyConfigs?: Record<string, PropertyConfig>
|
|
202
|
-
): Partial<EntityValues<M>> {
|
|
203
|
-
const properties = collection.properties;
|
|
204
|
-
if ((status === "existing" || status === "copy") && entity) {
|
|
205
|
-
let values: Partial<EntityValues<M>>;
|
|
206
|
-
if (!collection.alwaysApplyDefaultValues) {
|
|
207
|
-
values = entity.values ?? getDefaultValuesFor(properties);
|
|
208
|
-
} else {
|
|
209
|
-
const defaultValues = getDefaultValuesFor(properties);
|
|
210
|
-
values = mergeDeep(defaultValues, entity.values ?? {});
|
|
211
|
-
}
|
|
212
|
-
// When copying, clear ID fields so the database generates new IDs
|
|
213
|
-
if (status === "copy") {
|
|
214
|
-
const result = { ...values };
|
|
215
|
-
for (const [key, property] of Object.entries(properties)) {
|
|
216
|
-
if (property && "isId" in property && property.isId) {
|
|
217
|
-
delete (result as Record<string, unknown>)[key];
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
return result;
|
|
221
|
-
}
|
|
222
|
-
return values;
|
|
223
|
-
} else if (status === "new") {
|
|
224
|
-
return getDefaultValuesFor(properties);
|
|
225
|
-
} else {
|
|
226
|
-
console.error({
|
|
227
|
-
status,
|
|
228
|
-
entity
|
|
229
|
-
});
|
|
230
|
-
throw new Error("Form has not been initialised with the correct parameters");
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
export function zodToFormErrors(zodError: z.ZodError): Record<string, string> {
|
|
235
|
-
let errors: Record<string, string> = {};
|
|
236
|
-
for (const issue of zodError.issues) {
|
|
237
|
-
const path = issue.path.join(".");
|
|
238
|
-
if (path && !getIn(errors, path)) {
|
|
239
|
-
errors = setIn(errors, path, issue.message) as Record<string, string>;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return errors;
|
|
243
|
-
}
|
package/src/form/index.tsx
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export { EntityForm } from "./EntityForm";
|
|
2
|
-
export type { EntityFormProps, OnUpdateParams } from "../types/components/EntityFormProps";
|
|
3
|
-
|
|
4
|
-
export { EntityFormBinding } from "./EntityFormBinding";
|
|
5
|
-
export type { EntityFormBindingProps } from "./EntityFormBinding";
|
|
6
|
-
|
|
7
|
-
export { SelectFieldBinding } from "./field_bindings/SelectFieldBinding";
|
|
8
|
-
export { MultiSelectFieldBinding } from "./field_bindings/MultiSelectFieldBinding";
|
|
9
|
-
export { ArrayOfReferencesFieldBinding } from "./field_bindings/ArrayOfReferencesFieldBinding";
|
|
10
|
-
export { StorageUploadFieldBinding } from "./field_bindings/StorageUploadFieldBinding";
|
|
11
|
-
export { TextFieldBinding } from "./field_bindings/TextFieldBinding";
|
|
12
|
-
export { SwitchFieldBinding } from "./field_bindings/SwitchFieldBinding";
|
|
13
|
-
export { DateTimeFieldBinding } from "./field_bindings/DateTimeFieldBinding";
|
|
14
|
-
export { ReferenceFieldBinding } from "./field_bindings/ReferenceFieldBinding";
|
|
15
|
-
export { MapFieldBinding } from "./field_bindings/MapFieldBinding";
|
|
16
|
-
export { KeyValueFieldBinding } from "./field_bindings/KeyValueFieldBinding";
|
|
17
|
-
export { RepeatFieldBinding } from "./field_bindings/RepeatFieldBinding";
|
|
18
|
-
export { BlockFieldBinding } from "./field_bindings/BlockFieldBinding";
|
|
19
|
-
export { ReadOnlyFieldBinding } from "./field_bindings/ReadOnlyFieldBinding";
|
|
20
|
-
export { MarkdownEditorFieldBinding } from "./field_bindings/MarkdownEditorFieldBinding";
|
|
21
|
-
export { ArrayCustomShapedFieldBinding } from "./field_bindings/ArrayCustomShapedFieldBinding";
|
|
22
|
-
export { VectorFieldBinding } from "./field_bindings/VectorFieldBinding";
|
|
23
|
-
|
|
24
|
-
export * from "./components";
|
|
25
|
-
|
|
26
|
-
export { PropertyFieldBinding } from "./PropertyFieldBinding";
|
|
27
|
-
export * from "./useClearRestoreValue";
|
|
28
|
-
|
|
29
|
-
// Shared form utilities
|
|
30
|
-
export {
|
|
31
|
-
extractTouchedValues,
|
|
32
|
-
removeEmptyContainers,
|
|
33
|
-
getChanges,
|
|
34
|
-
getInitialEntityValues,
|
|
35
|
-
zodToFormErrors
|
|
36
|
-
} from "./form_utils";
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Property } from "@rebasepro/types";
|
|
2
|
-
import { useEffect, useRef } from "react";
|
|
3
|
-
;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook we use to restore a value after it has been cleared
|
|
7
|
-
* @param property
|
|
8
|
-
* @param value
|
|
9
|
-
* @param setValue
|
|
10
|
-
* @ignore
|
|
11
|
-
*/
|
|
12
|
-
export function useClearRestoreValue<T>({
|
|
13
|
-
property,
|
|
14
|
-
value,
|
|
15
|
-
setValue
|
|
16
|
-
}:
|
|
17
|
-
{
|
|
18
|
-
property: Property,
|
|
19
|
-
value: T | null,
|
|
20
|
-
setValue: (value: T | null, shouldValidate?: boolean) => void
|
|
21
|
-
}) {
|
|
22
|
-
|
|
23
|
-
const clearedValueRef = useRef<T | null>(null);
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
const shouldClearValueIfDisabled = typeof property.admin?.disabled === "object" && Boolean(property.admin?.disabled.clearOnDisabled);
|
|
26
|
-
if (shouldClearValueIfDisabled) {
|
|
27
|
-
if (value != null) {
|
|
28
|
-
clearedValueRef.current = value;
|
|
29
|
-
setValue(null);
|
|
30
|
-
}
|
|
31
|
-
} else if (clearedValueRef.current) {
|
|
32
|
-
setValue(clearedValueRef.current);
|
|
33
|
-
clearedValueRef.current = null;
|
|
34
|
-
}
|
|
35
|
-
}, [property]);
|
|
36
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { useCallback } from "react";
|
|
2
|
-
import type { EntityStatus } from "@rebasepro/types";
|
|
3
|
-
import type { FormexController } from "@rebasepro/forms";
|
|
4
|
-
import { useSafeSnackbarController } from "../collection_editor/useSafeSnackbarController";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Throw away everything the user has typed, reversibly.
|
|
8
|
-
*
|
|
9
|
-
* "Discard" and "Clear" sit next to Save, take one click, and undo everything
|
|
10
|
-
* the user has done since they opened the record — the identity bar's version
|
|
11
|
-
* does not even stop to ask. So the reset goes *through* the undo history
|
|
12
|
-
* rather than around it (see `undoable` in `FormexResetProps`), and the
|
|
13
|
-
* confirmation carries the Undo, which is the only place it can be: the form
|
|
14
|
-
* has no undo button, only the ⌘Z the user has no reason to guess at.
|
|
15
|
-
*
|
|
16
|
-
* Pass `values` to reset to something other than the form's current baseline.
|
|
17
|
-
*/
|
|
18
|
-
export function useUndoableDiscard() {
|
|
19
|
-
|
|
20
|
-
const snackbarController = useSafeSnackbarController();
|
|
21
|
-
|
|
22
|
-
return useCallback((
|
|
23
|
-
formex: FormexController<any>,
|
|
24
|
-
status: EntityStatus,
|
|
25
|
-
values?: unknown
|
|
26
|
-
) => {
|
|
27
|
-
formex.resetForm(values !== undefined
|
|
28
|
-
? { values, undoable: true }
|
|
29
|
-
: { undoable: true });
|
|
30
|
-
snackbarController?.open({
|
|
31
|
-
type: "info",
|
|
32
|
-
message: status === "existing" ? "Changes discarded" : "Form cleared",
|
|
33
|
-
action: {
|
|
34
|
-
label: "Undo",
|
|
35
|
-
onClick: () => formex.undo()
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}, [snackbarController]);
|
|
39
|
-
}
|