| | 0 | 1 | | @if (SchemaProperty?.Properties != null) |
| | | 2 | | { |
| | 0 | 3 | | foreach (var property in SchemaProperty.Properties) |
| | | 4 | | { |
| | 0 | 5 | | var key = property.Key; |
| | 0 | 6 | | var value = property.Value; |
| | | 7 | | |
| | 0 | 8 | | if (!Values.ContainsKey(key)) |
| | | 9 | | { |
| | 0 | 10 | | Values[key] = null; |
| | | 11 | | } |
| | | 12 | | |
| | 0 | 13 | | var isReq = SchemaProperty.Required.Contains(key); |
| | 0 | 14 | | var desc = value.Description; |
| | 0 | 15 | | var placeholder = value.Type switch |
| | 0 | 16 | | { |
| | 0 | 17 | | "array" => $"array of {value.Items?.Type}", |
| | 0 | 18 | | _ => value.Type |
| | 0 | 19 | | }; |
| | | 20 | | |
| | | 21 | | <RadzenFormField Text="@desc" Variant="Variant.Outlined" AllowFloatingLabel="false" class="@(isReq ? "required" |
| | | 22 | | <End> |
| | | 23 | | <RadzenLabel Text="@key" Style="padding-inline: 0.5em" /> |
| | | 24 | | </End> |
| | | 25 | | <ChildContent> |
| | 0 | 26 | | @if (value.Type == "number") |
| | | 27 | | { |
| | 0 | 28 | | <RadzenNumeric TValue="double?" Placeholder="@placeholder" ValueChanged="(v) => Values[key] = v" /> |
| | | 29 | | } |
| | 0 | 30 | | else if (value.Type == "integer") |
| | | 31 | | { |
| | 0 | 32 | | <RadzenNumeric TValue="int?" Placeholder="@placeholder" ValueChanged="(v) => Values[key] = v" /> |
| | | 33 | | } |
| | 0 | 34 | | else if (value.Type == "boolean") |
| | | 35 | | { |
| | | 36 | | <RadzenStack Orientation="Orientation.Horizontal" Style="margin:0.5em;"> |
| | 0 | 37 | | <RadzenSwitch ValueChanged="(v) => Values[key] = v" /> |
| | | 38 | | </RadzenStack> |
| | | 39 | | } |
| | 0 | 40 | | else if (value.Type == "object" && value.Properties != null) |
| | | 41 | | { |
| | 0 | 42 | | var dict = new Dictionary<string, object?>(); |
| | 0 | 43 | | Values[key] = dict; |
| | | 44 | | <RadzenStack Gap="0.5em" Style="margin:0.5em;"> |
| | | 45 | | <MCPShemaProperties SchemaProperty="@value" Values="@dict" /> |
| | | 46 | | </RadzenStack> |
| | | 47 | | } |
| | | 48 | | else |
| | | 49 | | { |
| | 0 | 50 | | <RadzenTextBox Placeholder="@placeholder" ValueChanged="(v) => Values[key] = v" /> |
| | | 51 | | } |
| | | 52 | | </ChildContent> |
| | | 53 | | </RadzenFormField> |
| | | 54 | | } |
| | | 55 | | } |
| | | 56 | | |
| | | 57 | | @code { |
| | 0 | 58 | | [Parameter] public JsonSchemaProperty? SchemaProperty { get; set; } |
| | 0 | 59 | | [Parameter] public Dictionary<string, object?> Values { get; set; } = []; |
| | | 60 | | } |