@rebasepro/admin 0.0.1-canary.eae7889 → 0.1.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/dist/{CollectionEditorDialog-B2M9lCyL.js → CollectionEditorDialog-MbvXGzEq.js} +42 -31
- package/dist/CollectionEditorDialog-MbvXGzEq.js.map +1 -0
- package/dist/{CollectionsStudioView-WG6soyfs.js → CollectionsStudioView-D9X6aiAr.js} +12 -12
- package/dist/CollectionsStudioView-D9X6aiAr.js.map +1 -0
- package/dist/{ContentHomePage-CDF_a6Lp.js → ContentHomePage-CfVB1eUo.js} +26 -26
- package/dist/ContentHomePage-CfVB1eUo.js.map +1 -0
- package/dist/{ExportCollectionAction-Dc0VOWMN.js → ExportCollectionAction-CUwJg4F9.js} +2 -2
- package/dist/{ExportCollectionAction-Dc0VOWMN.js.map → ExportCollectionAction-CUwJg4F9.js.map} +1 -1
- package/dist/{ImportCollectionAction-DpCagAOy.js → ImportCollectionAction-DGa_SF_8.js} +2 -2
- package/dist/{ImportCollectionAction-DpCagAOy.js.map → ImportCollectionAction-DGa_SF_8.js.map} +1 -1
- package/dist/{PropertyEditView-DS67DxoT.js → PropertyEditView-C4nlYmAc.js} +82 -104
- package/dist/PropertyEditView-C4nlYmAc.js.map +1 -0
- package/dist/{RolesView-CIuYBimF.js → RolesView-CNWxnR8e.js} +7 -5
- package/dist/RolesView-CNWxnR8e.js.map +1 -0
- package/dist/{UsersView-B5zelXnH.js → UsersView-YiTIcXkA.js} +14 -35
- package/dist/UsersView-YiTIcXkA.js.map +1 -0
- package/dist/collection_editor/ConfigControllerProvider.d.ts +0 -4
- package/dist/collection_editor/types/collection_editor_controller.d.ts +6 -3
- package/dist/collection_editor/types/config_controller.d.ts +14 -7
- package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +3 -2
- package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +3 -2
- package/dist/collection_editor/ui/EditorCollectionAction.d.ts +1 -1
- package/dist/collection_editor/ui/EditorCollectionActionStart.d.ts +1 -1
- package/dist/collection_editor/ui/EditorEntityAction.d.ts +1 -1
- package/dist/collection_editor/ui/KanbanSetupAction.d.ts +3 -2
- package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +3 -2
- package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +3 -4
- package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +2 -3
- package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +1 -2
- package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -2
- package/dist/collection_editor_ui.js +3 -3
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +1 -1
- package/dist/components/EntityCollectionTable/column_utils.d.ts +2 -2
- package/dist/components/EntityCollectionTable/fields/TableMultipleRelationField.d.ts +1 -1
- package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
- package/dist/components/EntityCollectionTable/fields/TableRelationField.d.ts +1 -1
- package/dist/components/EntityCollectionTable/fields/TableRelationSelectorField.d.ts +2 -2
- package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +5 -1
- package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +3 -2
- package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +2 -1
- package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +4 -2
- package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +4 -2
- package/dist/components/EntityCollectionView/FiltersDialog.d.ts +2 -2
- package/dist/components/EntityCollectionView/SplitListView.d.ts +3 -2
- package/dist/components/EntityEditView.d.ts +9 -2
- package/dist/components/RebaseCMS.d.ts +1 -1
- package/dist/components/ReferenceTable/EntitySelectionTable.d.ts +2 -2
- package/dist/components/ReferenceWidget.d.ts +2 -2
- package/dist/components/RelationSelector.d.ts +1 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +2 -2
- package/dist/editor.js +2 -2
- package/dist/editor.js.map +1 -1
- package/dist/hooks/navigation/useNavigationRegistry.d.ts +2 -1
- package/dist/hooks/useEntityHistory.d.ts +1 -1
- package/dist/{index-CHxgwt6E.js → index-CtzpHzMQ.js} +11 -4
- package/dist/index-CtzpHzMQ.js.map +1 -0
- package/dist/{index-Dey5WJpO.js → index-DKlrVD1m.js} +3 -3
- package/dist/index-DKlrVD1m.js.map +1 -0
- package/dist/{index-CBhrgpR7.js → index-kHJXfLNI.js} +3 -3
- package/dist/index-kHJXfLNI.js.map +1 -0
- package/dist/index.js +79 -63
- package/dist/index.js.map +1 -1
- package/dist/{useEntityHistory-Dcj4zhGj.js → useEntityHistory-UVsSclfZ.js} +3 -1
- package/dist/useEntityHistory-UVsSclfZ.js.map +1 -0
- package/dist/util/navigation_utils.d.ts +10 -1
- package/dist/{util-BQ82ySL3.js → util-CwLmSpGp.js} +1653 -1257
- package/dist/util-CwLmSpGp.js.map +1 -0
- package/package.json +9 -17
- package/src/collection_editor/ConfigControllerProvider.tsx +19 -28
- package/src/collection_editor/types/collection_editor_controller.tsx +3 -3
- package/src/collection_editor/types/config_controller.tsx +7 -7
- package/src/collection_editor/ui/AddKanbanColumnAction.tsx +4 -4
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +3 -3
- package/src/collection_editor/ui/EditorCollectionAction.tsx +3 -3
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +7 -7
- package/src/collection_editor/ui/EditorEntityAction.tsx +3 -3
- package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +4 -2
- package/src/collection_editor/ui/KanbanSetupAction.tsx +4 -3
- package/src/collection_editor/ui/MissingReferenceWidget.tsx +3 -2
- package/src/collection_editor/ui/NewCollectionButton.tsx +2 -1
- package/src/collection_editor/ui/NewCollectionCard.tsx +2 -1
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +5 -50
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +12 -20
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +1 -3
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +17 -2
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +2 -1
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +18 -12
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +1 -2
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +1 -2
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +6 -6
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +15 -49
- package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +4 -5
- package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +1 -1
- package/src/collection_editor/ui/collection_editor/templates/products_template.ts +2 -2
- package/src/components/DefaultAppBar.tsx +2 -2
- package/src/components/DefaultDrawer.tsx +25 -17
- package/src/components/DrawerNavigationGroup.tsx +4 -4
- package/src/components/DrawerNavigationItem.tsx +6 -6
- package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +4 -4
- package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +1 -1
- package/src/components/EntityCollectionTable/PropertyTableCell.tsx +4 -4
- package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableMultipleRelationField.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +3 -3
- package/src/components/EntityCollectionTable/fields/TableRelationField.tsx +4 -4
- package/src/components/EntityCollectionTable/fields/TableRelationSelectorField.tsx +3 -3
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +8 -2
- package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/common.tsx +5 -5
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +1 -1
- package/src/components/EntityCollectionTable/table_bindings.tsx +45 -35
- package/src/components/EntityCollectionView/EntityBoardCard.tsx +18 -19
- package/src/components/EntityCollectionView/EntityCard.tsx +2 -2
- package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +42 -14
- package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +4 -3
- package/src/components/EntityCollectionView/EntityCollectionListView.tsx +157 -54
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +169 -75
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +23 -13
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +21 -12
- package/src/components/EntityCollectionView/FiltersDialog.tsx +7 -7
- package/src/components/EntityCollectionView/SplitListView.tsx +24 -8
- package/src/components/EntityCollectionView/useEntityPreviewSlots.ts +33 -5
- package/src/components/EntityEditView.tsx +85 -85
- package/src/components/EntitySidePanel.tsx +18 -10
- package/src/components/HomePage/ContentHomePage.tsx +24 -15
- package/src/components/HomePage/NavigationCard.tsx +4 -4
- package/src/components/HomePage/NavigationGroup.tsx +2 -2
- package/src/components/RebaseAuthGate.tsx +2 -0
- package/src/components/RebaseCMS.tsx +4 -3
- package/src/components/RebaseNavigation.tsx +8 -5
- package/src/components/ReferenceTable/EntitySelectionTable.tsx +4 -4
- package/src/components/ReferenceWidget.tsx +3 -3
- package/src/components/RelationSelector.tsx +33 -5
- package/src/components/SelectableTable/SelectableTable.tsx +6 -6
- package/src/components/UserSelector.tsx +1 -1
- package/src/components/admin/RolesView.tsx +10 -3
- package/src/components/admin/UsersView.tsx +13 -25
- package/src/components/app/Scaffold.tsx +4 -4
- package/src/components/field_configs.tsx +29 -32
- package/src/components/history/EntityHistoryView.tsx +12 -1
- package/src/editor/editor.tsx +2 -2
- package/src/form/EntityForm.tsx +5 -4
- package/src/form/PropertyFieldBinding.tsx +14 -10
- package/src/form/components/FieldHelperText.tsx +1 -1
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +3 -3
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +5 -5
- package/src/form/field_bindings/BlockFieldBinding.tsx +4 -4
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +1 -1
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +1 -1
- package/src/form/field_bindings/MapFieldBinding.tsx +7 -7
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +1 -1
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +3 -3
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +7 -7
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +2 -2
- package/src/form/field_bindings/RelationFieldBinding.tsx +4 -4
- package/src/form/field_bindings/RepeatFieldBinding.tsx +5 -5
- package/src/form/field_bindings/SelectFieldBinding.tsx +1 -1
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +1 -1
- package/src/form/field_bindings/SwitchFieldBinding.tsx +1 -1
- package/src/form/field_bindings/TextFieldBinding.tsx +7 -7
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +1 -1
- package/src/form/useClearRestoreValue.tsx +1 -1
- package/src/form/validation.ts +1 -1
- package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +2 -1
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +15 -3
- package/src/hooks/navigation/useNavigationRegistry.ts +14 -3
- package/src/hooks/navigation/useResolvedViews.tsx +1 -3
- package/src/hooks/navigation/useTopLevelNavigation.ts +1 -1
- package/src/hooks/navigation/utils.ts +1 -1
- package/src/hooks/useEntityHistory.ts +7 -2
- package/src/preview/PropertyPreview.tsx +27 -23
- package/src/preview/components/StorageThumbnail.tsx +4 -1
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +1 -1
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +3 -3
- package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
- package/src/routes/RebaseRoute.tsx +57 -11
- package/src/util/navigation_utils.ts +21 -2
- package/src/util/previews.ts +15 -6
- package/src/util/property_utils.tsx +3 -3
- package/dist/CollectionEditorDialog-B2M9lCyL.js.map +0 -1
- package/dist/CollectionsStudioView-WG6soyfs.js.map +0 -1
- package/dist/ContentHomePage-CDF_a6Lp.js.map +0 -1
- package/dist/PropertyEditView-DS67DxoT.js.map +0 -1
- package/dist/RolesView-CIuYBimF.js.map +0 -1
- package/dist/UsersView-B5zelXnH.js.map +0 -1
- package/dist/index-CBhrgpR7.js.map +0 -1
- package/dist/index-CHxgwt6E.js.map +0 -1
- package/dist/index-Dey5WJpO.js.map +0 -1
- package/dist/useEntityHistory-Dcj4zhGj.js.map +0 -1
- package/dist/util-BQ82ySL3.js.map +0 -1
|
@@ -32,7 +32,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
32
32
|
color: "#2d7ff9",
|
|
33
33
|
property: {
|
|
34
34
|
type: "string",
|
|
35
|
-
Field: TextFieldBinding
|
|
35
|
+
ui: { Field: TextFieldBinding }
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
multiline: {
|
|
@@ -43,8 +43,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
43
43
|
color: "#2d7ff9",
|
|
44
44
|
property: {
|
|
45
45
|
type: "string",
|
|
46
|
-
multiline: true,
|
|
47
|
-
Field: TextFieldBinding
|
|
46
|
+
ui: { multiline: true, Field: TextFieldBinding }
|
|
48
47
|
}
|
|
49
48
|
},
|
|
50
49
|
markdown: {
|
|
@@ -55,8 +54,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
55
54
|
color: "#2d7ff9",
|
|
56
55
|
property: {
|
|
57
56
|
type: "string",
|
|
58
|
-
markdown: true,
|
|
59
|
-
Field: MarkdownEditorFieldBinding
|
|
57
|
+
ui: { markdown: true, Field: MarkdownEditorFieldBinding }
|
|
60
58
|
}
|
|
61
59
|
},
|
|
62
60
|
url: {
|
|
@@ -67,8 +65,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
67
65
|
color: "#154fb3",
|
|
68
66
|
property: {
|
|
69
67
|
type: "string",
|
|
70
|
-
url: true,
|
|
71
|
-
Field: TextFieldBinding
|
|
68
|
+
ui: { url: true, Field: TextFieldBinding }
|
|
72
69
|
}
|
|
73
70
|
},
|
|
74
71
|
email: {
|
|
@@ -80,7 +77,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
80
77
|
property: {
|
|
81
78
|
type: "string",
|
|
82
79
|
email: true,
|
|
83
|
-
Field: TextFieldBinding
|
|
80
|
+
ui: { Field: TextFieldBinding }
|
|
84
81
|
}
|
|
85
82
|
},
|
|
86
83
|
switch: {
|
|
@@ -91,7 +88,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
91
88
|
color: "#20d9d2",
|
|
92
89
|
property: {
|
|
93
90
|
type: "boolean",
|
|
94
|
-
Field: SwitchFieldBinding
|
|
91
|
+
ui: { Field: SwitchFieldBinding }
|
|
95
92
|
}
|
|
96
93
|
},
|
|
97
94
|
select: {
|
|
@@ -103,7 +100,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
103
100
|
property: {
|
|
104
101
|
type: "string",
|
|
105
102
|
enum: [],
|
|
106
|
-
Field: SelectFieldBinding
|
|
103
|
+
ui: { Field: SelectFieldBinding }
|
|
107
104
|
}
|
|
108
105
|
},
|
|
109
106
|
multi_select: {
|
|
@@ -118,7 +115,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
118
115
|
type: "string",
|
|
119
116
|
enum: []
|
|
120
117
|
},
|
|
121
|
-
Field: MultiSelectFieldBinding
|
|
118
|
+
ui: { Field: MultiSelectFieldBinding }
|
|
122
119
|
}
|
|
123
120
|
},
|
|
124
121
|
user_select: {
|
|
@@ -128,7 +125,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
128
125
|
Icon: UserIcon,
|
|
129
126
|
property: {
|
|
130
127
|
type: "string",
|
|
131
|
-
Field: UserSelectFieldBinding
|
|
128
|
+
ui: { Field: UserSelectFieldBinding }
|
|
132
129
|
}
|
|
133
130
|
},
|
|
134
131
|
number_input: {
|
|
@@ -139,7 +136,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
139
136
|
color: "#bec920",
|
|
140
137
|
property: {
|
|
141
138
|
type: "number",
|
|
142
|
-
Field: TextFieldBinding
|
|
139
|
+
ui: { Field: TextFieldBinding }
|
|
143
140
|
}
|
|
144
141
|
},
|
|
145
142
|
number_select: {
|
|
@@ -151,7 +148,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
151
148
|
property: {
|
|
152
149
|
type: "number",
|
|
153
150
|
enum: [],
|
|
154
|
-
Field: SelectFieldBinding
|
|
151
|
+
ui: { Field: SelectFieldBinding }
|
|
155
152
|
}
|
|
156
153
|
},
|
|
157
154
|
multi_number_select: {
|
|
@@ -166,7 +163,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
166
163
|
type: "number",
|
|
167
164
|
enum: []
|
|
168
165
|
},
|
|
169
|
-
Field: MultiSelectFieldBinding
|
|
166
|
+
ui: { Field: MultiSelectFieldBinding }
|
|
170
167
|
}
|
|
171
168
|
},
|
|
172
169
|
file_upload: {
|
|
@@ -180,7 +177,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
180
177
|
storage: {
|
|
181
178
|
storagePath: "{path}"
|
|
182
179
|
},
|
|
183
|
-
Field: StorageUploadFieldBinding
|
|
180
|
+
ui: { Field: StorageUploadFieldBinding }
|
|
184
181
|
}
|
|
185
182
|
},
|
|
186
183
|
multi_file_upload: {
|
|
@@ -197,7 +194,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
197
194
|
storagePath: "{path}"
|
|
198
195
|
}
|
|
199
196
|
},
|
|
200
|
-
Field: StorageUploadFieldBinding
|
|
197
|
+
ui: { Field: StorageUploadFieldBinding }
|
|
201
198
|
}
|
|
202
199
|
},
|
|
203
200
|
reference_as_string: {
|
|
@@ -208,7 +205,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
208
205
|
color: "#154fb3",
|
|
209
206
|
property: {
|
|
210
207
|
type: "string",
|
|
211
|
-
Field: ReferenceAsStringFieldBinding
|
|
208
|
+
ui: { Field: ReferenceAsStringFieldBinding }
|
|
212
209
|
}
|
|
213
210
|
},
|
|
214
211
|
reference: {
|
|
@@ -219,7 +216,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
219
216
|
color: "#ff0042",
|
|
220
217
|
property: {
|
|
221
218
|
type: "reference",
|
|
222
|
-
Field: ReferenceFieldBinding
|
|
219
|
+
ui: { Field: ReferenceFieldBinding }
|
|
223
220
|
}
|
|
224
221
|
},
|
|
225
222
|
multi_references: {
|
|
@@ -233,7 +230,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
233
230
|
of: {
|
|
234
231
|
type: "reference"
|
|
235
232
|
},
|
|
236
|
-
Field: ArrayOfReferencesFieldBinding
|
|
233
|
+
ui: { Field: ArrayOfReferencesFieldBinding }
|
|
237
234
|
}
|
|
238
235
|
},
|
|
239
236
|
relation: {
|
|
@@ -245,7 +242,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
245
242
|
property: {
|
|
246
243
|
relationName: "",
|
|
247
244
|
type: "relation",
|
|
248
|
-
Field: RelationFieldBinding
|
|
245
|
+
ui: { Field: RelationFieldBinding }
|
|
249
246
|
}
|
|
250
247
|
},
|
|
251
248
|
date_time: {
|
|
@@ -256,7 +253,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
256
253
|
color: "#8b46ff",
|
|
257
254
|
property: {
|
|
258
255
|
type: "date",
|
|
259
|
-
Field: DateTimeFieldBinding
|
|
256
|
+
ui: { Field: DateTimeFieldBinding }
|
|
260
257
|
}
|
|
261
258
|
},
|
|
262
259
|
group: {
|
|
@@ -268,7 +265,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
268
265
|
property: {
|
|
269
266
|
type: "map",
|
|
270
267
|
properties: {},
|
|
271
|
-
Field: MapFieldBinding
|
|
268
|
+
ui: { Field: MapFieldBinding }
|
|
272
269
|
}
|
|
273
270
|
},
|
|
274
271
|
key_value: {
|
|
@@ -280,7 +277,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
280
277
|
property: {
|
|
281
278
|
type: "map",
|
|
282
279
|
keyValue: true,
|
|
283
|
-
Field: KeyValueFieldBinding
|
|
280
|
+
ui: { Field: KeyValueFieldBinding }
|
|
284
281
|
}
|
|
285
282
|
},
|
|
286
283
|
repeat: {
|
|
@@ -294,7 +291,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
294
291
|
of: {
|
|
295
292
|
type: "string"
|
|
296
293
|
},
|
|
297
|
-
Field: RepeatFieldBinding
|
|
294
|
+
ui: { Field: RepeatFieldBinding }
|
|
298
295
|
}
|
|
299
296
|
},
|
|
300
297
|
custom_array: {
|
|
@@ -305,7 +302,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
305
302
|
color: "#ff9408",
|
|
306
303
|
property: {
|
|
307
304
|
type: "array",
|
|
308
|
-
Field: ArrayCustomShapedFieldBinding
|
|
305
|
+
ui: { Field: ArrayCustomShapedFieldBinding }
|
|
309
306
|
}
|
|
310
307
|
},
|
|
311
308
|
block: {
|
|
@@ -319,7 +316,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<DefaultFieldConfig, PropertyConfig> =
|
|
|
319
316
|
oneOf: {
|
|
320
317
|
properties: {}
|
|
321
318
|
},
|
|
322
|
-
Field: BlockFieldBinding
|
|
319
|
+
ui: { Field: BlockFieldBinding }
|
|
323
320
|
}
|
|
324
321
|
}
|
|
325
322
|
};
|
|
@@ -347,13 +344,13 @@ export function getFieldConfig(property: Property, propertyConfigs: Record<strin
|
|
|
347
344
|
|
|
348
345
|
export function getDefaultFieldId(property: Property) {
|
|
349
346
|
if (property.type === "string") {
|
|
350
|
-
if (property.
|
|
351
|
-
return "multiline";
|
|
352
|
-
} else if (property.markdown) {
|
|
347
|
+
if (property.ui?.markdown) {
|
|
353
348
|
return "markdown";
|
|
349
|
+
} else if (property.ui?.multiline) {
|
|
350
|
+
return "multiline";
|
|
354
351
|
} else if (property.storage) {
|
|
355
352
|
return "file_upload";
|
|
356
|
-
} else if (property.url) {
|
|
353
|
+
} else if (property.ui?.url) {
|
|
357
354
|
return "url";
|
|
358
355
|
} else if (property.email) {
|
|
359
356
|
return "email";
|
|
@@ -361,7 +358,7 @@ export function getDefaultFieldId(property: Property) {
|
|
|
361
358
|
return "select";
|
|
362
359
|
} else if (property.userSelect) {
|
|
363
360
|
return "user_select";
|
|
364
|
-
} else if (property.reference) {
|
|
361
|
+
} else if ((property as any).reference) {
|
|
365
362
|
return "reference_as_string";
|
|
366
363
|
} else {
|
|
367
364
|
return "text_field";
|
|
@@ -80,8 +80,19 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
|
|
|
80
80
|
async function doRevert(historyId: string) {
|
|
81
81
|
setIsReverting(true);
|
|
82
82
|
try {
|
|
83
|
-
await revert(historyId);
|
|
83
|
+
const revertedValues = await revert(historyId);
|
|
84
84
|
setRevertHistoryId(undefined);
|
|
85
|
+
|
|
86
|
+
// Reset the form with the reverted values so the UI updates
|
|
87
|
+
// immediately without requiring a page refresh.
|
|
88
|
+
if (formContext?.formex?.resetForm && revertedValues) {
|
|
89
|
+
formContext.formex.resetForm({
|
|
90
|
+
values: revertedValues as M,
|
|
91
|
+
submitCount: 0,
|
|
92
|
+
touched: {}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
85
96
|
snackbarController.open({
|
|
86
97
|
message: "Reverted to selected version",
|
|
87
98
|
type: "info"
|
package/src/editor/editor.tsx
CHANGED
|
@@ -252,7 +252,7 @@ view }), [state, view])}>
|
|
|
252
252
|
<div style={{ display: isMarkdownMode ? "none" : "block" }}>
|
|
253
253
|
<div
|
|
254
254
|
ref={editorRef}
|
|
255
|
-
className={cls("relative prose dark:prose-invert", proseClass, "prose-headings:font-title prose-headings:font-normal prose-strong:font-semibold prose-code:font-normal prose-blockquote:font-normal prose-a:font-normal font-default focus:outline-none max-w-full
|
|
255
|
+
className={cls("relative prose dark:prose-invert", proseClass, "prose-headings:font-title prose-headings:font-normal prose-strong:font-semibold prose-code:font-normal prose-blockquote:font-normal prose-a:font-normal font-default focus:outline-none max-w-full px-12 py-4")}
|
|
256
256
|
/>
|
|
257
257
|
|
|
258
258
|
{view && (
|
|
@@ -290,7 +290,7 @@ view }), [state, view])}>
|
|
|
290
290
|
onChange={handleMarkdownChange}
|
|
291
291
|
onBlur={handleMarkdownBlur}
|
|
292
292
|
className={cls(
|
|
293
|
-
"w-full h-full min-h-[200px]
|
|
293
|
+
"w-full h-full min-h-[200px] px-12 py-4 bg-transparent resize-none font-mono focus:ring-0",
|
|
294
294
|
proseClass
|
|
295
295
|
)}
|
|
296
296
|
style={{
|
package/src/form/EntityForm.tsx
CHANGED
|
@@ -510,11 +510,12 @@ export function EntityForm<M extends Record<string, unknown>>({
|
|
|
510
510
|
}, [formex.version, collection, entityId, path]);
|
|
511
511
|
|
|
512
512
|
const actionsDisabled = disabled || formex.isSubmitting || (status === "existing" && !formex.dirty) || Boolean(disabledProp);
|
|
513
|
-
const
|
|
513
|
+
const parentCollectionSlugs = collectionRegistryController.getParentCollectionSlugs(path);
|
|
514
|
+
const parentEntityIds = collectionRegistryController.getParentEntityIds(path);
|
|
514
515
|
|
|
515
516
|
const formActionProps: PluginFormActionProps = {
|
|
516
517
|
entityId,
|
|
517
|
-
|
|
518
|
+
parentCollectionSlugs, parentEntityIds,
|
|
518
519
|
path: path,
|
|
519
520
|
status,
|
|
520
521
|
collection: collection as EntityCollection,
|
|
@@ -605,10 +606,10 @@ export function EntityForm<M extends Record<string, unknown>>({
|
|
|
605
606
|
const isNew = status === "new" || status === "copy";
|
|
606
607
|
const isStringOrNumber = property.type === "string" || property.type === "number";
|
|
607
608
|
const isIdAndAuto = isStringOrNumber && "isId" in property && typeof property.isId === "string" && property.isId !== "manual";
|
|
608
|
-
const disabled = disabledProp || (!autoSave && formex.isSubmitting) || isReadOnly(property) || Boolean(property.disabled) || (!isNew && "isId" in property && Boolean(property.isId)) || (isNew && isIdAndAuto);
|
|
609
|
+
const disabled = disabledProp || (!autoSave && formex.isSubmitting) || isReadOnly(property) || Boolean(property.ui?.disabled) || (!isNew && "isId" in property && Boolean(property.isId)) || (isNew && isIdAndAuto);
|
|
609
610
|
const hidden = isHidden(property);
|
|
610
611
|
if (hidden) return null;
|
|
611
|
-
const widthPercentage = property.widthPercentage ?? 100;
|
|
612
|
+
const widthPercentage = property.ui?.widthPercentage ?? 100;
|
|
612
613
|
const cmsFormFieldProps: PropertyFieldBindingProps<M> = {
|
|
613
614
|
propertyKey: key,
|
|
614
615
|
disabled,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { EntityCollection } from "@rebasepro/types";
|
|
2
2
|
import type { FieldProps, PropertyFieldBindingProps } from "../types/fields";
|
|
3
3
|
import type { RebasePlugin, PluginFieldBuilderParams, Property } from "@rebasepro/types";
|
|
4
|
-
import React, { ComponentType, ReactElement, useCallback, useRef } from "react";
|
|
4
|
+
import React, { ComponentType, ReactElement, Suspense, useCallback, useRef } from "react";
|
|
5
5
|
import { deepEqual as equal } from "fast-equals"
|
|
6
6
|
|
|
7
|
+
import { resolveComponentRef } from "@rebasepro/core";
|
|
8
|
+
|
|
7
9
|
import { Field, FieldProps as FormexFieldProps, getIn } from "@rebasepro/formex";
|
|
8
10
|
|
|
9
11
|
;
|
|
@@ -107,15 +109,16 @@ function PropertyFieldBindingInternal<M extends Record<string, unknown> = Record
|
|
|
107
109
|
}) as Property | null;
|
|
108
110
|
|
|
109
111
|
const readOnly = resolvedProperty ? isReadOnly(resolvedProperty) : true;
|
|
110
|
-
const disabled = disabledProp || readOnly || Boolean(resolvedProperty?.disabled) || context.disabled;
|
|
112
|
+
const disabled = disabledProp || readOnly || Boolean(resolvedProperty?.ui?.disabled) || context.disabled;
|
|
111
113
|
|
|
112
114
|
if (resolvedProperty === null || isHidden(resolvedProperty)) {
|
|
113
115
|
return <></>;
|
|
114
116
|
} else if (readOnly) {
|
|
115
117
|
Component = ReadOnlyFieldBinding;
|
|
116
|
-
} else if (resolvedProperty.Field) {
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
} else if (resolvedProperty.ui?.Field) {
|
|
119
|
+
const resolved = resolveComponentRef(resolvedProperty.ui.Field);
|
|
120
|
+
if (resolved) {
|
|
121
|
+
Component = resolved as ComponentType<FieldProps<any>>;
|
|
119
122
|
}
|
|
120
123
|
} else {
|
|
121
124
|
const propertyConfig = getFieldConfig(resolvedProperty, customizationController.propertyConfigs);
|
|
@@ -139,7 +142,7 @@ function PropertyFieldBindingInternal<M extends Record<string, unknown> = Record
|
|
|
139
142
|
index,
|
|
140
143
|
authController
|
|
141
144
|
}) as Property | null;
|
|
142
|
-
Component = configProperty?.Field as ComponentType<FieldProps> | undefined;
|
|
145
|
+
Component = resolveComponentRef(configProperty?.ui?.Field) as ComponentType<FieldProps> | undefined;
|
|
143
146
|
}
|
|
144
147
|
if (!Component) {
|
|
145
148
|
console.warn(`No field component found for property ${propertyKey}`);
|
|
@@ -209,7 +212,7 @@ function FieldInternal<CustomProps, M extends Record<string, any>>
|
|
|
209
212
|
|
|
210
213
|
const { plugins } = useCustomizationController();
|
|
211
214
|
|
|
212
|
-
const customFieldProps: any = property.customProps;
|
|
215
|
+
const customFieldProps: any = property.ui?.customProps;
|
|
213
216
|
const value = formexFieldProps.field.value;
|
|
214
217
|
const error = getIn(formexFieldProps.form.errors, propertyKey) as string | string[] | undefined;
|
|
215
218
|
const touched = getIn(formexFieldProps.form.touched, propertyKey) as boolean | undefined;
|
|
@@ -265,8 +268,9 @@ function FieldInternal<CustomProps, M extends Record<string, any>>
|
|
|
265
268
|
|
|
266
269
|
return (
|
|
267
270
|
<ErrorBoundary>
|
|
268
|
-
|
|
269
|
-
|
|
271
|
+
<Suspense fallback={null}>
|
|
272
|
+
<UsedComponent {...cmsFieldProps}/>
|
|
273
|
+
</Suspense>
|
|
270
274
|
|
|
271
275
|
{underlyingValueHasChanged && !isSubmitting &&
|
|
272
276
|
<Typography variant={"caption"} className={"ml-3.5"}>
|
|
@@ -285,7 +289,7 @@ const shouldPropertyReRender = (property: Property, plugins?: RebasePlugin[]): b
|
|
|
285
289
|
return true;
|
|
286
290
|
}
|
|
287
291
|
const defAProperty = property as Property;
|
|
288
|
-
const rerenderThisProperty = Boolean(defAProperty.Field);
|
|
292
|
+
const rerenderThisProperty = Boolean(defAProperty.ui?.Field);
|
|
289
293
|
if (defAProperty.type === "map" && defAProperty.properties) {
|
|
290
294
|
return Boolean(rerenderThisProperty || Object.values(defAProperty.properties).some((childProperty) => shouldPropertyReRender(childProperty as Property, plugins)));
|
|
291
295
|
} else {
|
|
@@ -72,7 +72,7 @@ export function FieldHelperText<T>({
|
|
|
72
72
|
</Typography>
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
const disabledTooltip: string | undefined = typeof property.disabled === "object" ? property.disabled.disabledMessage : undefined;
|
|
75
|
+
const disabledTooltip: string | undefined = typeof property.ui?.disabled === "object" ? property.ui?.disabled.disabledMessage : undefined;
|
|
76
76
|
|
|
77
77
|
return <div className={"flex ml-3.5 mt-1"}>
|
|
78
78
|
<Typography variant={"caption"}
|
|
@@ -34,7 +34,7 @@ export function ArrayCustomShapedFieldBinding({
|
|
|
34
34
|
}: FieldProps<ArrayProperty | ArrayProperty>) {
|
|
35
35
|
|
|
36
36
|
const authController = useAuthController();
|
|
37
|
-
const minimalistView = minimalistViewProp || property.minimalistView;
|
|
37
|
+
const minimalistView = minimalistViewProp || property.ui?.minimalistView;
|
|
38
38
|
|
|
39
39
|
const resolvedProperties: Property[] | undefined = getArrayResolvedProperties({
|
|
40
40
|
propertyValue: value,
|
|
@@ -44,7 +44,7 @@ export function ArrayCustomShapedFieldBinding({
|
|
|
44
44
|
authController
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
const expanded = property.expanded === undefined ? true : property.expanded;
|
|
47
|
+
const expanded = property.ui?.expanded === undefined ? true : property.ui?.expanded;
|
|
48
48
|
|
|
49
49
|
useClearRestoreValue({
|
|
50
50
|
property,
|
|
@@ -63,7 +63,7 @@ export function ArrayCustomShapedFieldBinding({
|
|
|
63
63
|
</>);
|
|
64
64
|
|
|
65
65
|
const body = (resolvedProperties ?? []).map((childProperty, index) => {
|
|
66
|
-
const thisDisabled = isReadOnly(childProperty) || Boolean(childProperty.disabled);
|
|
66
|
+
const thisDisabled = isReadOnly(childProperty) || Boolean(childProperty.ui?.disabled);
|
|
67
67
|
const fieldProps = {
|
|
68
68
|
propertyKey: `${propertyKey}[${index}]`,
|
|
69
69
|
disabled: disabled || thisDisabled,
|
|
@@ -39,7 +39,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
39
39
|
setFieldValue
|
|
40
40
|
}: ArrayOfReferencesFieldProps) {
|
|
41
41
|
|
|
42
|
-
const minimalistView = minimalistViewProp || property.minimalistView;
|
|
42
|
+
const minimalistView = minimalistViewProp || property.ui?.minimalistView;
|
|
43
43
|
const { t } = useTranslation();
|
|
44
44
|
|
|
45
45
|
const ofProperty = property.of as Property;
|
|
@@ -47,7 +47,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
47
47
|
throw Error("ArrayOfReferencesField expected a property containing references");
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
const expanded = property.expanded === undefined ? true : property.expanded;
|
|
50
|
+
const expanded = property.ui?.expanded === undefined ? true : property.ui?.expanded;
|
|
51
51
|
const selectedEntityIds = value && Array.isArray(value) ? value.map((ref) => ref.id) : [];
|
|
52
52
|
|
|
53
53
|
useClearRestoreValue({
|
|
@@ -76,7 +76,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
76
76
|
collection,
|
|
77
77
|
onMultipleEntitiesSelected,
|
|
78
78
|
selectedEntityIds,
|
|
79
|
-
|
|
79
|
+
fixedFilter: ofProperty.fixedFilter
|
|
80
80
|
}
|
|
81
81
|
);
|
|
82
82
|
|
|
@@ -98,7 +98,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
98
98
|
<ReferencePreview
|
|
99
99
|
key={internalId}
|
|
100
100
|
disabled={!ofProperty.path}
|
|
101
|
-
previewProperties={ofProperty.previewProperties}
|
|
101
|
+
previewProperties={ofProperty.ui?.previewProperties}
|
|
102
102
|
size={"medium"}
|
|
103
103
|
onClick={onEntryClick}
|
|
104
104
|
hover={!disabled}
|
|
@@ -107,7 +107,7 @@ export function ArrayOfReferencesFieldBinding({
|
|
|
107
107
|
includeEntityLink={ofProperty.includeEntityLink}
|
|
108
108
|
/>
|
|
109
109
|
);
|
|
110
|
-
}, [ofProperty.path, ofProperty.previewProperties, value]);
|
|
110
|
+
}, [ofProperty.path, ofProperty.ui?.previewProperties, value]);
|
|
111
111
|
|
|
112
112
|
const title = (<>
|
|
113
113
|
<LabelWithIconAndTooltip
|
|
@@ -40,13 +40,13 @@ export function BlockFieldBinding({
|
|
|
40
40
|
disabled
|
|
41
41
|
}: FieldProps<ArrayProperty>) {
|
|
42
42
|
|
|
43
|
-
const minimalistView = minimalistViewProp || property.minimalistView;
|
|
43
|
+
const minimalistView = minimalistViewProp || property.ui?.minimalistView;
|
|
44
44
|
const { t } = useTranslation();
|
|
45
45
|
|
|
46
46
|
if (!property.oneOf)
|
|
47
47
|
throw Error("ArrayOneOfField misconfiguration. Property `oneOf` not set");
|
|
48
48
|
|
|
49
|
-
const expanded = property.expanded === undefined ? true : property.expanded;
|
|
49
|
+
const expanded = property.ui?.expanded === undefined ? true : property.ui?.expanded;
|
|
50
50
|
useClearRestoreValue({
|
|
51
51
|
property,
|
|
52
52
|
value,
|
|
@@ -92,8 +92,8 @@ export function BlockFieldBinding({
|
|
|
92
92
|
addLabel={property.name ? t("add_to_field", { fieldName: property.name }) : t("add_entry")}
|
|
93
93
|
buildEntry={buildEntry}
|
|
94
94
|
onInternalIdAdded={setLastAddedId}
|
|
95
|
-
disabled={isSubmitting || Boolean(property.disabled)}
|
|
96
|
-
canAddElements={!property.disabled}
|
|
95
|
+
disabled={isSubmitting || Boolean(property.ui?.disabled)}
|
|
96
|
+
canAddElements={!property.ui?.disabled}
|
|
97
97
|
onValueChange={(value) => setFieldValue(propertyKey, value)}
|
|
98
98
|
newDefaultEntry={{
|
|
99
99
|
[property.oneOf!.typeField ?? DEFAULT_ONE_OF_TYPE]: firstOneOfKey,
|
|
@@ -49,7 +49,7 @@ export function DateTimeFieldBinding({
|
|
|
49
49
|
value={internalValue}
|
|
50
50
|
onChange={(dateValue) => setValue(dateValue)}
|
|
51
51
|
mode={property.mode}
|
|
52
|
-
clearable={property.clearable}
|
|
52
|
+
clearable={property.ui?.clearable}
|
|
53
53
|
locale={locale}
|
|
54
54
|
error={showError}
|
|
55
55
|
disabled={disabled}
|
|
@@ -38,7 +38,7 @@ export function KeyValueFieldBinding({
|
|
|
38
38
|
context
|
|
39
39
|
}: FieldProps<MapProperty>) {
|
|
40
40
|
|
|
41
|
-
const expanded = (property.expanded === undefined ? true : property.expanded) || autoFocus;
|
|
41
|
+
const expanded = (property.ui?.expanded === undefined ? true : property.ui?.expanded) || autoFocus;
|
|
42
42
|
|
|
43
43
|
if (!property.keyValue) {
|
|
44
44
|
throw Error(`Your property ${propertyKey} needs to have the 'keyValue' prop in order to use this field binding`);
|
|
@@ -36,8 +36,8 @@ export function MapFieldBinding({
|
|
|
36
36
|
}: FieldProps<MapProperty>) {
|
|
37
37
|
|
|
38
38
|
const pickOnlySomeKeys = property.pickOnlySomeKeys || false;
|
|
39
|
-
const expanded = property.expanded === undefined ? true : property.expanded;
|
|
40
|
-
const minimalistView = minimalistViewProp || property.minimalistView;
|
|
39
|
+
const expanded = property.ui?.expanded === undefined ? true : property.ui?.expanded;
|
|
40
|
+
const minimalistView = minimalistViewProp || property.ui?.minimalistView;
|
|
41
41
|
const { t } = useTranslation();
|
|
42
42
|
|
|
43
43
|
if (!property.properties) {
|
|
@@ -60,11 +60,11 @@ export function MapFieldBinding({
|
|
|
60
60
|
|
|
61
61
|
const mapFormView = <>
|
|
62
62
|
<div
|
|
63
|
-
className={cls("py-1 flex flex-col space-y-2", minimalistView && property.widthPercentage !== undefined ? "mt-8" : undefined)}>
|
|
63
|
+
className={cls("py-1 flex flex-col space-y-2", minimalistView && property.ui?.widthPercentage !== undefined ? "mt-8" : undefined)}>
|
|
64
64
|
{Object.entries(mapProperties)
|
|
65
65
|
.filter(([_, property]) => !isHidden(property))
|
|
66
66
|
.map(([entryKey, childProperty], index) => {
|
|
67
|
-
const thisDisabled = isReadOnly(childProperty) || Boolean(childProperty.disabled);
|
|
67
|
+
const thisDisabled = isReadOnly(childProperty) || Boolean(childProperty.ui?.disabled);
|
|
68
68
|
const fieldBindingProps: PropertyFieldBindingProps<any> = {
|
|
69
69
|
propertyKey: `${propertyKey}.${entryKey}`,
|
|
70
70
|
disabled: disabled || thisDisabled,
|
|
@@ -105,12 +105,12 @@ export function MapFieldBinding({
|
|
|
105
105
|
<ErrorBoundary>
|
|
106
106
|
|
|
107
107
|
{!minimalistView && <ExpandablePanel initiallyExpanded={expanded}
|
|
108
|
-
onExpandedChange={(expanded) => {
|
|
108
|
+
onExpandedChange={(expanded: boolean) => {
|
|
109
109
|
onPropertyChange?.({
|
|
110
|
-
expanded
|
|
110
|
+
ui: { ...property.ui, expanded }
|
|
111
111
|
});
|
|
112
112
|
}}
|
|
113
|
-
className={property.widthPercentage !== undefined ? "mt-8" : undefined}
|
|
113
|
+
className={property.ui?.widthPercentage !== undefined ? "mt-8" : undefined}
|
|
114
114
|
innerClassName={"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2 bg-white dark:bg-surface-900"}
|
|
115
115
|
title={<LabelWithIconAndTooltip
|
|
116
116
|
propertyKey={propertyKey}
|
|
@@ -204,7 +204,7 @@ export function MarkdownEditorFieldBinding({
|
|
|
204
204
|
title={property.name ?? propertyKey}
|
|
205
205
|
className={"h-8 text-text-secondary dark:text-text-secondary-dark ml-3.5"}/>
|
|
206
206
|
<div className="flex-grow"/>
|
|
207
|
-
{property.clearable && !disabled && (
|
|
207
|
+
{property.ui?.clearable && !disabled && (
|
|
208
208
|
<IconButton
|
|
209
209
|
size="small"
|
|
210
210
|
onClick={(e) => {
|
|
@@ -66,7 +66,7 @@ export function MultipleRelationFieldBinding({
|
|
|
66
66
|
collection,
|
|
67
67
|
onMultipleEntitiesSelected,
|
|
68
68
|
selectedEntityIds,
|
|
69
|
-
|
|
69
|
+
fixedFilter: property.fixedFilter
|
|
70
70
|
}
|
|
71
71
|
);
|
|
72
72
|
|
|
@@ -87,7 +87,7 @@ export function MultipleRelationFieldBinding({
|
|
|
87
87
|
return (
|
|
88
88
|
<RelationPreview
|
|
89
89
|
key={internalId}
|
|
90
|
-
previewProperties={property.previewProperties}
|
|
90
|
+
previewProperties={property.ui?.previewProperties}
|
|
91
91
|
size={"medium"}
|
|
92
92
|
onClick={onEntryClick}
|
|
93
93
|
hover={!disabled}
|
|
@@ -96,7 +96,7 @@ export function MultipleRelationFieldBinding({
|
|
|
96
96
|
includeEntityLink={property.includeEntityLink}
|
|
97
97
|
/>
|
|
98
98
|
);
|
|
99
|
-
}, [relation, property.previewProperties, value]);
|
|
99
|
+
}, [relation, property.ui?.previewProperties, value]);
|
|
100
100
|
|
|
101
101
|
const title = (<>
|
|
102
102
|
<LabelWithIconAndTooltip
|
|
@@ -23,7 +23,7 @@ import { useCollectionRegistryController } from "../../index";
|
|
|
23
23
|
* @group Form fields
|
|
24
24
|
*/
|
|
25
25
|
export function ReferenceAsStringFieldBinding(props: FieldProps<StringProperty>) {
|
|
26
|
-
if (typeof props.property.reference?.path !== "string") {
|
|
26
|
+
if (typeof (props.property as any).reference?.path !== "string") {
|
|
27
27
|
return <ReadOnlyFieldBinding {...props as FieldProps<Property>}/>;
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -43,7 +43,7 @@ function ReferenceAsStringFieldBindingInternal({
|
|
|
43
43
|
includeDescription,
|
|
44
44
|
size = "medium"
|
|
45
45
|
}: FieldProps<StringProperty>) {
|
|
46
|
-
if (!property.reference?.path) {
|
|
46
|
+
if (!(property as any).reference?.path) {
|
|
47
47
|
throw new Error("Property path is required for ReferenceAsStringFieldBinding");
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -54,7 +54,7 @@ function ReferenceAsStringFieldBindingInternal({
|
|
|
54
54
|
});
|
|
55
55
|
|
|
56
56
|
const collectionRegistryController = useCollectionRegistryController();
|
|
57
|
-
const path = property.reference.path;
|
|
57
|
+
const path = (property as any).reference.path;
|
|
58
58
|
const collection: EntityCollection | undefined = useMemo(() => {
|
|
59
59
|
return path ? collectionRegistryController.getCollection(path) : undefined;
|
|
60
60
|
}, [path]);
|
|
@@ -81,7 +81,7 @@ path });
|
|
|
81
81
|
collection,
|
|
82
82
|
onSingleEntitySelected,
|
|
83
83
|
selectedEntityIds: value ? [value] : undefined,
|
|
84
|
-
|
|
84
|
+
fixedFilter: (property as any).reference.fixedFilter
|
|
85
85
|
}
|
|
86
86
|
);
|
|
87
87
|
|
|
@@ -106,13 +106,13 @@ path });
|
|
|
106
106
|
|
|
107
107
|
{referenceValue && <ReferencePreview
|
|
108
108
|
disabled={!path}
|
|
109
|
-
previewProperties={property.reference?.previewProperties}
|
|
109
|
+
previewProperties={(property as any).reference?.previewProperties}
|
|
110
110
|
hover={!disabled}
|
|
111
111
|
size={size}
|
|
112
112
|
onClick={disabled || isSubmitting ? undefined : onEntryClick}
|
|
113
113
|
reference={referenceValue}
|
|
114
|
-
includeEntityLink={property.reference?.includeEntityLink}
|
|
115
|
-
includeId={property.reference?.includeId}
|
|
114
|
+
includeEntityLink={(property as any).reference?.includeEntityLink}
|
|
115
|
+
includeId={(property as any).reference?.includeId}
|
|
116
116
|
/>}
|
|
117
117
|
|
|
118
118
|
{!value && <div className="justify-center text-left">
|
|
@@ -81,7 +81,7 @@ function ReferenceFieldBindingInternal({
|
|
|
81
81
|
collection,
|
|
82
82
|
onSingleEntitySelected,
|
|
83
83
|
selectedEntityIds: validValue ? [value.id] : undefined,
|
|
84
|
-
|
|
84
|
+
fixedFilter: property.fixedFilter
|
|
85
85
|
}
|
|
86
86
|
);
|
|
87
87
|
|
|
@@ -106,7 +106,7 @@ function ReferenceFieldBindingInternal({
|
|
|
106
106
|
|
|
107
107
|
{value && <ReferencePreview
|
|
108
108
|
disabled={!property.path}
|
|
109
|
-
previewProperties={property.previewProperties}
|
|
109
|
+
previewProperties={property.ui?.previewProperties}
|
|
110
110
|
hover={!disabled}
|
|
111
111
|
size={size}
|
|
112
112
|
onClick={disabled || isSubmitting ? undefined : onEntryClick}
|