Skip to content

Commit 5fde23d

Browse files
authored
Merge branch 'CodeBeamOrg:dev' into dev
2 parents a0dcf0f + 6b2235b commit 5fde23d

File tree

14 files changed

+299
-149
lines changed

14 files changed

+299
-149
lines changed

CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/JsonTreeView/Examples/JsonTreeViewExample1.razor

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,21 @@
3131
'Vietnamese',
3232
'Caucasian'
3333
],
34+
'Family': {
35+
'PatientRecordType': 'v4.0.8',
36+
'DoctorId': '8F704CD5-3CCE-4CC0-957C-2BC98DC06E42',
37+
'PatientId': '0000-0002-7',
38+
'Birthdate': '2003-06-12T00:00:00Z',
39+
'UpdateDate': '2025-03-18T07:12:27.2502767-05:00',
40+
'Races': [
41+
'Caucasian'
42+
],
43+
'Family': null,
44+
'Status': 'AV',
45+
'Gender': 'F',
46+
'Active': false,
47+
'Type': 'Normal'
48+
},
3449
'Status': 'AV',
3550
'Gender': 'M',
3651
'Active': true,
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
@page "/visualtest"
2+
3+
<MudStack>
4+
<MudStack Row="true">
5+
<MudSelect T="string" />
6+
<MudSelectExtended T="string" />
7+
</MudStack>
8+
<MudStack Row="true">
9+
<MudSelect T="string" Variant="Variant.Outlined" />
10+
<MudSelectExtended T="string" Variant="Variant.Outlined" />
11+
</MudStack>
12+
<MudStack Row="true">
13+
<MudSelect T="string" Variant="Variant.Filled" />
14+
<MudSelectExtended T="string" Variant="Variant.Filled" />
15+
</MudStack>
16+
17+
<MudStack Row="true">
18+
<MudTextField T="string" />
19+
<MudTextFieldExtended T="string" />
20+
</MudStack>
21+
<MudStack Row="true">
22+
<MudTextField T="string" Variant="Variant.Outlined" />
23+
<MudTextFieldExtended T="string" Variant="Variant.Outlined" />
24+
</MudStack>
25+
<MudStack Row="true">
26+
<MudTextField T="string" Variant="Variant.Filled" />
27+
<MudTextFieldExtended T="string" Variant="Variant.Filled" />
28+
</MudStack>
29+
</MudStack>
30+

CodeBeam.MudBlazor.Extensions/Base/MudBaseInputExtended.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,13 @@ protected MudBaseInputExtended() : base(new DefaultConverter<T>()) { }
5959
/// </summary>
6060
[Parameter] public EventCallback OnChange { get; set; }
6161

62+
/// <summary>
63+
/// Set the text-align on the component.
64+
/// </summary>
65+
[Parameter]
66+
[Category(CategoryTypes.Text.Appearance)]
67+
public Typo Typo { get; set; } = Typo.subtitle1;
68+
6269
/// <summary>
6370
/// If true, the input will take up the full width of its container.
6471
/// </summary>

CodeBeam.MudBlazor.Extensions/CodeBeam.MudBlazor.Extensions.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<PackageLicenseExpression>MIT</PackageLicenseExpression>
8-
<Version>8.0.0</Version>
8+
<Version>8.1.0</Version>
99
<Title>CodeBeam.MudBlazor.Extensions</Title>
1010
<Authors>CodeBeam</Authors>
1111
<Company>CodeBeam</Company>

CodeBeam.MudBlazor.Extensions/Components/InputExtended/MudInputCssHelperExtended.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public static string GetClassname<T>(MudBaseInputExtended<T> baseInput, Func<boo
2828
.AddClass("mud-disabled", baseInput.Disabled)
2929
.AddClass("mud-input-error", baseInput.HasErrors)
3030
.AddClass("mud-ltr", baseInput.GetInputType() == InputType.Email || baseInput.GetInputType() == InputType.Telephone)
31-
//.AddClass($"mud-typography-{baseInput.Typo.ToDescriptionString()}")
31+
.AddClass($"mud-typography-{baseInput.Typo.ToDescriptionString()}")
3232
.AddClass(baseInput.Class)
3333
.Build();
3434

Lines changed: 6 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,17 @@
11
@namespace MudExtensions
22
@using System.Text.Json;
3-
@using System.Text.Json.Nodes
3+
@using System.Text.Json.Nodes;
44

55
@if (Node is JsonObject)
66
{
7-
@* If sorting is enabled, sort by key *@
8-
var nodes = Sorted ? Node.AsObject().OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value) : Node.AsObject().ToDictionary(x => x.Key, x => x.Value);
9-
@* Go through each item *@
10-
foreach (var child in nodes)
11-
{
12-
if (child.Value is JsonValue)
13-
{
14-
@* Get the type of value in this node *@
15-
var valueKind = child.Value.AsValue().GetValue<JsonElement>().ValueKind;
16-
switch (valueKind)
17-
{
18-
case JsonValueKind.String:
19-
var str = child.Value.AsValue().GetValue<string>();
20-
@* Could be a date *@
21-
if (DateTime.TryParse(str, out DateTime date))
22-
{
23-
<MudTreeViewItem T="string" Text="@child.Key" Icon="@Icons.Material.Filled.DateRange" EndText="@date.ToString()"></MudTreeViewItem>
24-
}
25-
@* Could be a GUID *@
26-
else if (Guid.TryParse(str, out Guid guid))
27-
{
28-
<MudTreeViewItem T="string" Text="@child.Key" Icon="@Icons.Material.Filled.Key" EndText="@str.ToUpperInvariant()"></MudTreeViewItem>
29-
}
30-
@* Fall back to string *@
31-
else
32-
{
33-
<MudTreeViewItem T="string" Text="@child.Key" Icon="@Icons.Material.Filled.TextSnippet" EndText="@str"></MudTreeViewItem>
34-
}
35-
break;
36-
case JsonValueKind.Number:
37-
JsonValue jsonVal = child.Value.AsValue();
38-
string endText = string.Empty;
39-
@* We try for int first, because an int can always be converted to double but not the other way around*@
40-
if (jsonVal.TryGetValue<int>(out int intVal))
41-
{
42-
endText = intVal.ToString();
43-
}
44-
else if (jsonVal.TryGetValue<double>(out double doubleVal))
45-
{
46-
endText = doubleVal.ToString();
47-
}
48-
<MudTreeViewItem T="string" Text="@child.Key" Icon="@Icons.Material.Filled.Numbers" EndText="@endText"></MudTreeViewItem>
49-
break;
50-
case JsonValueKind.True:
51-
<MudTreeViewItem T="string" Text="@child.Key" Icon="@Icons.Material.Filled.CheckBox" EndText="true"></MudTreeViewItem>
52-
break;
53-
case JsonValueKind.False:
54-
<MudTreeViewItem T="string" Text="@child.Key" Icon="@Icons.Material.Filled.CheckBoxOutlineBlank" EndText="false"></MudTreeViewItem>
55-
break;
56-
}
57-
}
58-
else if (child.Value is JsonArray)
59-
{
60-
<MudTreeViewItem T="string" IconColor="Color.Primary" Icon="@Icons.Material.Filled.Folder" Text="@child.Key" EndTextClass="mud-primary-text" EndText="(Array)">
61-
@* Iterate each array element *@
62-
<MudJsonTreeViewNode Node="@child.Value" Sorted="@Sorted" />
63-
</MudTreeViewItem>
64-
}
65-
}
66-
}
67-
else if (Node is JsonArray)
68-
{
69-
var count = 0;
70-
@* Iterate each array element *@
71-
foreach (var child in Node.AsArray())
7+
var node = Sorted ? Node.AsObject().OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value) : Node.AsObject().ToDictionary(x => x.Key, x => x.Value);
8+
9+
foreach (var item in node)
7210
{
73-
count++;
74-
<MudTreeViewItem T="string" IconColor="Color.Primary" Icon="@Icons.Material.Filled.Folder" EndTextClass="mud-primary-text" EndText="@($"(Item {count})")">
75-
<MudJsonTreeViewNode Node="@child" Sorted="@Sorted" />
76-
</MudTreeViewItem>
11+
@RenderJsonItem(item)
7712
}
7813
}
7914
else if (Node is JsonNode)
8015
{
81-
var valueKind = Node.AsValue().GetValue<JsonElement>().ValueKind;
82-
switch (valueKind)
83-
{
84-
case JsonValueKind.String:
85-
var str = Node.AsValue().GetValue<string>();
86-
@* Could be a date *@
87-
if (DateTime.TryParse(str, out DateTime date))
88-
{
89-
<MudTreeViewItem T="string" Icon="@Icons.Material.Filled.DateRange" EndText="@date.ToString()"></MudTreeViewItem>
90-
}
91-
@* Could be a GUID *@
92-
else if (Guid.TryParse(str, out Guid guid))
93-
{
94-
<MudTreeViewItem T="string" Icon="@Icons.Material.Filled.Key" EndText="@str.ToUpperInvariant()"></MudTreeViewItem>
95-
}
96-
@* Fall back to string *@
97-
else
98-
{
99-
<MudTreeViewItem T="string" Icon="@Icons.Material.Filled.TextSnippet" EndText="@str"></MudTreeViewItem>
100-
}
101-
break;
102-
case JsonValueKind.Number:
103-
JsonValue jsonVal = Node.AsValue();
104-
string endText = string.Empty;
105-
@* We try for int first, because an int can always be converted to double but not the other way around*@
106-
if (jsonVal.TryGetValue<int>(out int intVal))
107-
{
108-
endText = intVal.ToString();
109-
}
110-
else if (jsonVal.TryGetValue<double>(out double doubleVal))
111-
{
112-
endText = doubleVal.ToString();
113-
}
114-
<MudTreeViewItem T="string" Icon="@Icons.Material.Filled.Numbers" EndText="@endText"></MudTreeViewItem>
115-
break;
116-
case JsonValueKind.True:
117-
<MudTreeViewItem T="string" Icon="@Icons.Material.Filled.CheckBox" EndText="true"></MudTreeViewItem>
118-
break;
119-
case JsonValueKind.False:
120-
<MudTreeViewItem T="string" Icon="@Icons.Material.Filled.CheckBoxOutlineBlank" EndText="false"></MudTreeViewItem>
121-
break;
122-
}
16+
@RenderJsonItem(Node)
12317
}

0 commit comments

Comments
 (0)