Skip to content

Commit 5402910

Browse files
committed
Add API metadata attributes and improve null-safety
Added [AddedVersion], [DefaultValue], and [Description] attributes to public properties and methods in Grid-related components for enhanced documentation and tooling support. Updated several RenderFragment properties to be nullable and removed default initializations for better null-safety. Annotated new public methods and events with version and description metadata. These changes improve API discoverability and maintainability.
1 parent 1c3a3c1 commit 5402910

7 files changed

Lines changed: 119 additions & 4 deletions

File tree

blazorbootstrap/Components/Grid/Grid.razor.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ protected override Task OnParametersSetAsync()
116116
/// Get filters.
117117
/// </summary>
118118
/// <returns>IEnumerable</returns>
119+
[AddedVersion("1.0.0")]
120+
[Description("")]
119121
public IEnumerable<FilterItem>? GetFilters() =>
120122
!AllowFiltering || columns == null || !columns.Any()
121123
? null
@@ -163,11 +165,15 @@ private string GetColumnSummaryValue(GridSummaryColumnType type, string property
163165
/// Refresh the grid data.
164166
/// </summary>
165167
/// <returns>Task</returns>
168+
[AddedVersion("1.0.0")]
169+
[Description("")]
166170
public async Task RefreshDataAsync(CancellationToken cancellationToken = default) => await RefreshDataAsync(false, cancellationToken);
167171

168172
/// <summary>
169173
/// Reset the page number to 1 and refresh the grid.
170174
/// </summary>
175+
[AddedVersion("1.4.3")]
176+
[Description("")]
171177
public async ValueTask ResetPageNumber() => await ResetPageNumberAsync(true);
172178

173179
public Task SelectAllItemsAsync() => SelectAllItemsInternalAsync(true);
@@ -896,6 +902,8 @@ private void SetFilters(IEnumerable<FilterItem> filterItems)
896902
/// <summary>
897903
/// This event is fired when the grid state is changed.
898904
/// </summary>
905+
[AddedVersion("1.0.0")]
906+
[Description("")]
899907
[Parameter]
900908
public EventCallback<GridSettings> GridSettingsChanged { get; set; }
901909

@@ -992,13 +1000,17 @@ private void SetFilters(IEnumerable<FilterItem> filterItems)
9921000
/// This event is triggered when the user clicks on the row.
9931001
/// Set AllowRowClick to true to enable row clicking.
9941002
/// </summary>
1003+
[AddedVersion("1.9.5")]
1004+
[Description("")]
9951005
[Parameter]
9961006
public EventCallback<GridRowEventArgs<TItem>> OnRowClick { get; set; }
9971007

9981008
/// <summary>
9991009
/// This event is triggered when the user double clicks on the row.
10001010
/// Set AllowRowClick to true to enable row double clicking.
10011011
/// </summary>
1012+
[AddedVersion("1.9.5")]
1013+
[Description("")]
10021014
[Parameter]
10031015
public EventCallback<GridRowEventArgs<TItem>> OnRowDoubleClick { get; set; }
10041016

@@ -1094,6 +1106,8 @@ private void SetFilters(IEnumerable<FilterItem> filterItems)
10941106
/// <summary>
10951107
/// This event is fired when the item selection changes.
10961108
/// </summary>
1109+
[AddedVersion("1.8.0")]
1110+
[Description("")]
10971111
[Parameter]
10981112
public EventCallback<HashSet<TItem>> SelectedItemsChanged { get; set; }
10991113

blazorbootstrap/Components/Grid/GridColumn.razor.cs

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,18 @@ private async Task OnSortClickAsync()
200200
/// <para>
201201
/// Default value is null.
202202
/// </para>
203+
[AddedVersion("1.0.0")]
204+
[DefaultValue(null)]
205+
[Description("")]
203206
[Parameter]
204207
public RenderFragment<TItem> ChildContent { get; set; } = default!;
205208

206209
/// <summary>
207210
/// Gets or sets the column class.
208211
/// </summary>
212+
[AddedVersion("1.6.0")]
213+
[DefaultValue(null)]
214+
[Description("")]
209215
[Parameter]
210216
public Func<TItem, string>? ColumnClass { get; set; }
211217

@@ -216,6 +222,9 @@ private async Task OnSortClickAsync()
216222
/// <para>
217223
/// Default value is true.
218224
/// </para>
225+
[AddedVersion("1.0.0")]
226+
[DefaultValue(null)]
227+
[Description("")]
219228
[Parameter]
220229
public bool Filterable { get; set; } = true;
221230

@@ -225,6 +234,9 @@ private async Task OnSortClickAsync()
225234
/// <para>
226235
/// Default value is <see cref="ButtonColor.Light" />.
227236
/// </para>
237+
[AddedVersion("3.0.0")]
238+
[DefaultValue(null)]
239+
[Description("")]
228240
[Parameter]
229241
public ButtonColor FilterButtonColor { get; set; } = ButtonColor.Light;
230242

@@ -234,6 +246,9 @@ private async Task OnSortClickAsync()
234246
/// <para>
235247
/// Default value is null.
236248
/// </para>
249+
[AddedVersion("3.0.0")]
250+
[DefaultValue(null)]
251+
[Description("")]
237252
[Parameter]
238253
public string? FilterButtonCSSClass { get; set; }
239254

@@ -243,6 +258,9 @@ private async Task OnSortClickAsync()
243258
/// <para>
244259
/// Default value is <see cref="FilterOperator.None" />.
245260
/// </para>
261+
[AddedVersion("1.0.0")]
262+
[DefaultValue(null)]
263+
[Description("")]
246264
[Parameter]
247265
public FilterOperator FilterOperator { get; set; } = FilterOperator.None;
248266

@@ -252,6 +270,9 @@ private async Task OnSortClickAsync()
252270
/// <para>
253271
/// Default value is 0.
254272
/// </para>
273+
[AddedVersion("1.0.0")]
274+
[DefaultValue(null)]
275+
[Description("")]
255276
[Parameter]
256277
public int FilterTextboxWidth { get; set; }
257278

@@ -261,6 +282,9 @@ private async Task OnSortClickAsync()
261282
/// <para>
262283
/// Default value is <see cref="Unit.Px" />.
263284
/// </para>
285+
[AddedVersion("1.0.0")]
286+
[DefaultValue(null)]
287+
[Description("")]
264288
[Parameter]
265289
public Unit FilterTextboxWidthUnit { get; set; } = Unit.Px;
266290

@@ -270,6 +294,9 @@ private async Task OnSortClickAsync()
270294
/// <para>
271295
/// Default value is null.
272296
/// </para>
297+
[AddedVersion("1.0.0")]
298+
[DefaultValue(null)]
299+
[Description("")]
273300
[Parameter]
274301
public string FilterValue { get; set; } = default!;
275302

@@ -279,6 +306,9 @@ private async Task OnSortClickAsync()
279306
/// <para>
280307
/// Default value is false.
281308
/// </para>
309+
[AddedVersion("1.10.4")]
310+
[DefaultValue(null)]
311+
[Description("")]
282312
[Parameter]
283313
public bool Freeze { get; set; }
284314

@@ -288,6 +318,9 @@ private async Task OnSortClickAsync()
288318
/// <para>
289319
/// Default value is <see cref="FreezeDirection.Left" />.
290320
/// </para>
321+
[AddedVersion("1.10.4")]
322+
[DefaultValue(null)]
323+
[Description("")]
291324
[Parameter]
292325
public FreezeDirection FreezeDirection { get; set; } = FreezeDirection.Left;
293326

@@ -297,6 +330,9 @@ private async Task OnSortClickAsync()
297330
/// <para>
298331
/// Default value is 0.
299332
/// </para>
333+
[AddedVersion("1.10.4")]
334+
[DefaultValue(null)]
335+
[Description("")]
300336
[Parameter]
301337
public double FreezeLeftPosition { get; set; }
302338

@@ -306,6 +342,9 @@ private async Task OnSortClickAsync()
306342
/// <para>
307343
/// Default value is 0.
308344
/// </para>
345+
[AddedVersion("1.10.4")]
346+
[DefaultValue(null)]
347+
[Description("")]
309348
[Parameter]
310349
public double FreezeRightPosition { get; set; }
311350

@@ -315,6 +354,9 @@ private async Task OnSortClickAsync()
315354
/// <para>
316355
/// Default value is null.
317356
/// </para>
357+
[AddedVersion("1.7.3")]
358+
[DefaultValue(null)]
359+
[Description("")]
318360
[Parameter]
319361
public RenderFragment HeaderContent { get; set; } = default!;
320362

@@ -406,6 +448,9 @@ private async Task OnSortClickAsync()
406448
/// <para>
407449
/// Default value is null.
408450
/// </para>
451+
[AddedVersion("1.0.0")]
452+
[DefaultValue(null)]
453+
[Description("")]
409454
[Parameter]
410455
public string HeaderText { get; set; } = default!;
411456

@@ -415,6 +460,9 @@ private async Task OnSortClickAsync()
415460
/// <para>
416461
/// Default value is <see cref="Alignment.Start" />.
417462
/// </para>
463+
[AddedVersion("1.0.0")]
464+
[DefaultValue(null)]
465+
[Description("")]
418466
[Parameter]
419467
public Alignment HeaderTextAlignment { get; set; } = Alignment.Start;
420468

@@ -424,6 +472,9 @@ private async Task OnSortClickAsync()
424472
/// <para>
425473
/// Default value is false.
426474
/// </para>
475+
[AddedVersion("1.0.0")]
476+
[DefaultValue(null)]
477+
[Description("")]
427478
[Parameter]
428479
public bool IsDefaultSortColumn { get; set; } = false;
429480

@@ -433,6 +484,9 @@ private async Task OnSortClickAsync()
433484
/// <para>
434485
/// Default value is true.
435486
/// </para>
487+
[AddedVersion("3.4.0")]
488+
[DefaultValue(null)]
489+
[Description("")]
436490
[Parameter]
437491
public bool IsVisible { get; set; } = true;
438492

@@ -446,6 +500,9 @@ private async Task OnSortClickAsync()
446500
/// <para>
447501
/// Default value is null.
448502
/// </para>
503+
[AddedVersion("1.0.0")]
504+
[DefaultValue(null)]
505+
[Description("")]
449506
[Parameter]
450507
public string PropertyName { get; set; } = default!;
451508

@@ -456,6 +513,9 @@ private async Task OnSortClickAsync()
456513
/// <para>
457514
/// Default value is true.
458515
/// </para>
516+
[AddedVersion("1.0.0")]
517+
[DefaultValue(null)]
518+
[Description("")]
459519
[Parameter]
460520
public bool Sortable { get; set; } = true;
461521

@@ -465,12 +525,18 @@ private async Task OnSortClickAsync()
465525
/// <para>
466526
/// Default value is <see cref="SortDirection.None" />.
467527
/// </para>
528+
[AddedVersion("1.0.0")]
529+
[DefaultValue(null)]
530+
[Description("")]
468531
[Parameter]
469532
public SortDirection SortDirection { get; set; } = SortDirection.None;
470533

471534
/// <summary>
472535
/// Expression used for sorting.
473536
/// </summary>
537+
[AddedVersion("1.0.0")]
538+
[DefaultValue(null)]
539+
[Description("")]
474540
[Parameter]
475541
public Expression<Func<TItem, IComparable>> SortKeySelector { get; set; } = default!;
476542

@@ -482,6 +548,9 @@ private async Task OnSortClickAsync()
482548
/// <para>
483549
/// Default value is null.
484550
/// </para>
551+
[AddedVersion("1.0.0")]
552+
[DefaultValue(null)]
553+
[Description("")]
485554
[Parameter]
486555
public string SortString { get; set; } = default!;
487556

@@ -491,6 +560,9 @@ private async Task OnSortClickAsync()
491560
/// <para>
492561
/// Default value is <see cref="StringComparison.OrdinalIgnoreCase" />.
493562
/// </para>
563+
[AddedVersion("1.0.0")]
564+
[DefaultValue(null)]
565+
[Description("")]
494566
[Parameter]
495567
public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase;
496568

@@ -500,6 +572,9 @@ private async Task OnSortClickAsync()
500572
/// Default value is <see cref="GridSummaryColumnType.None"/>.
501573
/// </para>
502574
/// </summary>
575+
[AddedVersion("3.4.0")]
576+
[DefaultValue(null)]
577+
[Description("")]
503578
[Parameter]
504579
public GridSummaryColumnType SummaryType { get; set; } = GridSummaryColumnType.None;
505580

@@ -509,6 +584,9 @@ private async Task OnSortClickAsync()
509584
/// Default value is <see langword="null"/>.
510585
/// </para>
511586
/// </summary>
587+
[AddedVersion("3.4.0")]
588+
[DefaultValue(null)]
589+
[Description("")]
512590
[Parameter]
513591
public string? SummaryValueDisplayFormat { get; set; }
514592

@@ -520,6 +598,9 @@ private async Task OnSortClickAsync()
520598
/// Example: "Total: ", "Average: ", etc.
521599
/// </para>
522600
/// </summary>
601+
[AddedVersion("3.4.0")]
602+
[DefaultValue(null)]
603+
[Description("")]
523604
[Parameter]
524605
public string? SummaryValuePrefix { get; set; }
525606

@@ -529,6 +610,9 @@ private async Task OnSortClickAsync()
529610
/// <para>
530611
/// Default value is <see cref="Alignment.Start" />.
531612
/// </para>
613+
[AddedVersion("1.0.0")]
614+
[DefaultValue(null)]
615+
[Description("")]
532616
[Parameter]
533617
public Alignment TextAlignment { get; set; } = Alignment.Start;
534618

@@ -538,6 +622,9 @@ private async Task OnSortClickAsync()
538622
/// <para>
539623
/// Default value is false.
540624
/// </para>
625+
[AddedVersion("1.0.0")]
626+
[DefaultValue(null)]
627+
[Description("")]
541628
[Parameter]
542629
public bool TextNoWrap { get; set; }
543630

blazorbootstrap/Components/Grid/GridColumns.razor.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public partial class GridColumns : BlazorBootstrapComponentBase
88
/// <para>
99
/// Default value is <see langword="null"/>.
1010
/// </para>
11+
[AddedVersion("1.0.0")]
12+
[Description("")]
1113
[Parameter]
1214
public RenderFragment? ChildContent { get; set; } = default!;
1315
}

blazorbootstrap/Components/Grid/GridDetailView.razor.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ protected override async Task OnInitializedAsync()
2020
/// <para>
2121
/// Default value is null.
2222
/// </para>
23+
[AddedVersion("1.0.0")]
24+
[DefaultValue(null)]
25+
[Description("")]
2326
[Parameter]
24-
public RenderFragment<TItem> ChildContent { get; set; } = default!;
27+
public RenderFragment<TItem>? ChildContent { get; set; }
2528

2629
internal RenderFragment<TItem> GetTemplate =>
2730
gridDetailViewTemplate ??= rowData => builder =>

blazorbootstrap/Components/Grid/GridEmptyDataTemplate.razor.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ protected override async Task OnInitializedAsync()
2020
/// <para>
2121
/// Default value is null.
2222
/// </para>
23+
[AddedVersion("1.0.0")]
24+
[DefaultValue(null)]
25+
[Description("")]
2326
[Parameter]
24-
public RenderFragment ChildContent { get; set; } = default!;
27+
public RenderFragment? ChildContent { get; set; }
2528

2629
internal RenderFragment Template =>
2730
template ??= builder =>

blazorbootstrap/Components/Grid/GridLoadingTemplate.razor.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ protected override async Task OnInitializedAsync()
2020
/// <para>
2121
/// Default value is null.
2222
/// </para>
23+
[AddedVersion("1.0.0")]
24+
[DefaultValue(null)]
25+
[Description("")]
2326
[Parameter]
24-
public RenderFragment ChildContent { get; set; } = default!;
27+
public RenderFragment? ChildContent { get; set; }
2528

2629
internal RenderFragment Template =>
2730
template ??= builder =>

0 commit comments

Comments
 (0)