From 41c70940dc5907fd796abc8cda06d07c412c1e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Tue, 18 May 2021 17:22:02 +0200 Subject: [PATCH 01/37] Do not automatically generate table search placeholder, when custom one is provided. --- src/MatBlazor/Components/MatTable/MatTable.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/MatTable/MatTable.razor b/src/MatBlazor/Components/MatTable/MatTable.razor index f3e07d73..e3ad9a75 100644 --- a/src/MatBlazor/Components/MatTable/MatTable.razor +++ b/src/MatBlazor/Components/MatTable/MatTable.razor @@ -141,7 +141,7 @@ var lastComma = tempPlaceholder.LastIndexOf(","); - if (lastComma != -1) + if (lastComma != -1 && SearchTermFieldPlaceHolder == null) { SearchTermFieldPlaceHolder = tempPlaceholder.Remove(lastComma, 1).Insert(lastComma, " and"); } From d3446775253b8539e38cf325dc8d1b95885740de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Tue, 18 May 2021 17:24:27 +0200 Subject: [PATCH 02/37] Prevent throwing exception in MatTable when Items colleciton is still not loaded (=null). --- src/MatBlazor/Components/MatTable/MatTable.razor | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/MatTable/MatTable.razor b/src/MatBlazor/Components/MatTable/MatTable.razor index e3ad9a75..d8d60ee1 100644 --- a/src/MatBlazor/Components/MatTable/MatTable.razor +++ b/src/MatBlazor/Components/MatTable/MatTable.razor @@ -341,13 +341,15 @@ ItemList = PageSize <= 0 ? filteredCollection : filteredCollection.Skip(RecordsFrom).Take(PageSize); } - else + else if (Items != null) { ItemList = PageSize <= 0 ? Items : Items.Skip(RecordsFrom).Take(PageSize); RecordsTo = (RecordsFrom + PageSize < Items.Count()) ? RecordsFrom + PageSize : Items.Count(); TotalPages = Math.Max(1, (int)Math.Ceiling(Items.Count() / (decimal)PageSize)); EndPage = TotalPages; } + else { } // Do nothing + SetPageSize(PageDirection.Next); StateHasChanged(); } From c406111594f137e8366809e84695225f598f1b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 26 Jul 2021 15:40:11 +0200 Subject: [PATCH 03/37] Make disabled button unclickable --- src/MatBlazor/Components/MatButton/MatButton.razor.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/MatBlazor/Components/MatButton/MatButton.razor.cs b/src/MatBlazor/Components/MatButton/MatButton.razor.cs index 9c99bb61..d8ae180b 100644 --- a/src/MatBlazor/Components/MatButton/MatButton.razor.cs +++ b/src/MatBlazor/Components/MatButton/MatButton.razor.cs @@ -142,6 +142,7 @@ public MatButton() protected async Task OnClickHandler(MouseEventArgs ev) { + if (Disabled) return; if (Link != null) { if (!string.IsNullOrEmpty(Target)) From c772d0ac0b6ba6513fa0cd79d15b09a01f60ef15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Tue, 21 Sep 2021 11:05:26 +0200 Subject: [PATCH 04/37] Fix sort header direction arrows. --- src/MatBlazor/Components/MatSort/BaseMatSortHeader.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/MatBlazor/Components/MatSort/BaseMatSortHeader.cs b/src/MatBlazor/Components/MatSort/BaseMatSortHeader.cs index 83cbdbda..7c151154 100644 --- a/src/MatBlazor/Components/MatSort/BaseMatSortHeader.cs +++ b/src/MatBlazor/Components/MatSort/BaseMatSortHeader.cs @@ -74,8 +74,8 @@ protected string GetIcon() return Parent.Direction switch { MatSortDirection.None => null, - MatSortDirection.Asc => MatIconNames.Arrow_downward, - MatSortDirection.Desc => MatIconNames.Arrow_upward, + MatSortDirection.Asc => MatIconNames.Arrow_upward, + MatSortDirection.Desc => MatIconNames.Arrow_downward, _ => throw new ArgumentOutOfRangeException(), }; } From cbc21ed6f52dcbf87c82cafc0777fc6bdb814c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Thu, 23 Sep 2021 17:04:59 +0200 Subject: [PATCH 05/37] MatSelect fixed width fix. --- src/MatBlazor/Components/MatSelect/CoreMatSelect.razor | 2 +- src/MatBlazor/MatBlazor.csproj | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/MatSelect/CoreMatSelect.razor b/src/MatBlazor/Components/MatSelect/CoreMatSelect.razor index a654d68b..678c9853 100644 --- a/src/MatBlazor/Components/MatSelect/CoreMatSelect.razor +++ b/src/MatBlazor/Components/MatSelect/CoreMatSelect.razor @@ -67,7 +67,7 @@ } -
+
    @GetChildContent()
diff --git a/src/MatBlazor/MatBlazor.csproj b/src/MatBlazor/MatBlazor.csproj index cf10cf88..81b8b2e8 100644 --- a/src/MatBlazor/MatBlazor.csproj +++ b/src/MatBlazor/MatBlazor.csproj @@ -27,6 +27,9 @@ MatBlazor.xml TRACE;_PREVIEW + False + False + False From 244cc97a98299356f2a17f7e633901126d667ab8 Mon Sep 17 00:00:00 2001 From: Gweana Date: Fri, 24 Sep 2021 11:04:04 +0200 Subject: [PATCH 06/37] Do not publish package on build --- src/MatBlazor/MatBlazor.csproj | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/MatBlazor/MatBlazor.csproj b/src/MatBlazor/MatBlazor.csproj index 81b8b2e8..a6403f81 100644 --- a/src/MatBlazor/MatBlazor.csproj +++ b/src/MatBlazor/MatBlazor.csproj @@ -9,7 +9,7 @@ https://github.com/SamProf/MatBlazor https://github.com/SamProf/MatBlazor blazor,mat,material, design, razor, components - true + False false git @@ -32,6 +32,22 @@ False + + True + + + + True + + + + True + + + + True + + From b205245eb28b7c6caca00932b9e9f410114eb7e5 Mon Sep 17 00:00:00 2001 From: Gweana Date: Fri, 24 Sep 2021 12:09:37 +0200 Subject: [PATCH 07/37] Convert to .NET 6 --- src/MatBlazor/MatBlazor.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/MatBlazor/MatBlazor.csproj b/src/MatBlazor/MatBlazor.csproj index a6403f81..d8f67d9c 100644 --- a/src/MatBlazor/MatBlazor.csproj +++ b/src/MatBlazor/MatBlazor.csproj @@ -21,7 +21,7 @@ SamProf 2.9.0 true - net5.0;netstandard2.1 + net6.0;netstandard2.1 @@ -32,11 +32,11 @@ False - + True - + True @@ -58,7 +58,7 @@ - + From 3ace5991f4386378b68a06cbc6b53aa1977bf0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 11 Oct 2021 11:31:50 +0200 Subject: [PATCH 08/37] Checkbox indeterminate fix. --- .../MatCheckbox/BaseMatCheckboxInternal.cs | 16 +++++++++++++++- src/MatBlazor/Core/MatBlazorSwitchTInt.cs | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs b/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs index 054ebbc0..1ce623c6 100644 --- a/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs +++ b/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Components; +using System; using System.Threading.Tasks; namespace MatBlazor @@ -54,7 +55,20 @@ protected override async Task OnParametersSetAsync() protected void ChangeHandler(ChangeEventArgs e) { - CurrentValue = SwitchT.FromBoolNull((bool) e.Value, Indeterminate); + var newValue = (bool)e.Value; + if (Indeterminate) + { + CurrentValue = CurrentValue switch + { + true => SwitchT.FromBoolNull(false, Indeterminate), + false => SwitchT.FromBoolNull(null, Indeterminate), + _ => SwitchT.FromBoolNull(true, Indeterminate) + }; + } + else + { + CurrentValue = SwitchT.FromBoolNull(newValue, Indeterminate); + } } } } \ No newline at end of file diff --git a/src/MatBlazor/Core/MatBlazorSwitchTInt.cs b/src/MatBlazor/Core/MatBlazorSwitchTInt.cs index cd1e9368..08c50483 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTInt.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTInt.cs @@ -54,7 +54,8 @@ public override string FormatValueAsString(int v, string format) public override int ParseFromString(string v, string format) { - return int.Parse(v, NumberStyles.Any); + if (int.TryParse(v, NumberStyles.Any, CultureInfo.InvariantCulture, out var num)) return num; + return 0; } public override int FromDateTimeNull(DateTime? v) From 15013879d1a3c559b7a20d09365c688b9f962668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Wed, 10 Nov 2021 15:53:14 +0100 Subject: [PATCH 09/37] Fix datepicker localtime. --- .../BaseMatDatePickerInternal.cs | 1 + .../MatSelect/BaseCoreMatSelectValue.cs | 3 ++ .../MatSelect/CoreMatSelectValue.razor | 42 ++++++++++++++----- src/MatBlazor/MatBlazor.csproj | 6 +-- 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs b/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs index e565ddc2..04483f4a 100644 --- a/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs +++ b/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs @@ -67,6 +67,7 @@ public BaseMatDatePickerInternal() OnChangeAction = (value) => { var v = value.FirstOrDefault(); + if (v != null) v = v.Value.ToLocalTime(); CurrentValue = SwitchT.FromDateTimeNull(v); InvokeStateHasChanged(); }, diff --git a/src/MatBlazor/Components/MatSelect/BaseCoreMatSelectValue.cs b/src/MatBlazor/Components/MatSelect/BaseCoreMatSelectValue.cs index 626ecbc4..1db2982f 100644 --- a/src/MatBlazor/Components/MatSelect/BaseCoreMatSelectValue.cs +++ b/src/MatBlazor/Components/MatSelect/BaseCoreMatSelectValue.cs @@ -14,6 +14,9 @@ public abstract class BaseCoreMatSelectValue : CoreMatSelect - @if (Items != null) + @ + @if (Items != null) + { + if (!Virtualize) { + for (int i = 0; i < Items.Count; i++) { var item = Items[i]; @if (ItemTemplate == null) - { - @item - } - else - { - @ItemTemplate(item) - } - + { + @item + } + else + { + @ItemTemplate(item) + } + } } - ; + else + { + + + @if (ItemTemplate == null) + { + @item.item + } + else + { + @ItemTemplate(item.item) + } + + + + } + } + ; } } \ No newline at end of file diff --git a/src/MatBlazor/MatBlazor.csproj b/src/MatBlazor/MatBlazor.csproj index d8f67d9c..e5714f73 100644 --- a/src/MatBlazor/MatBlazor.csproj +++ b/src/MatBlazor/MatBlazor.csproj @@ -21,7 +21,7 @@ SamProf 2.9.0 true - net6.0;netstandard2.1 + net6.0 @@ -59,8 +59,8 @@ - - + + From 29ffe933cad97457a346264836c70f3e64d66d8f Mon Sep 17 00:00:00 2001 From: "adamek.stepan@gmail.com" Date: Thu, 18 Nov 2021 09:17:55 +0100 Subject: [PATCH 10/37] Fix matbutton uncaught exception. --- src/MatBlazor/Components/MatButton/MatButton.razor.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/MatButton/MatButton.razor.cs b/src/MatBlazor/Components/MatButton/MatButton.razor.cs index d8ae180b..7b16c4b0 100644 --- a/src/MatBlazor/Components/MatButton/MatButton.razor.cs +++ b/src/MatBlazor/Components/MatButton/MatButton.razor.cs @@ -18,7 +18,11 @@ partial class MatButton : BaseMatDomComponent protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matButton.init", Ref); + try + { + await JsInvokeAsync("matBlazor.matButton.init", Ref); + } + catch (Exception) { } // Disposed } public MatButton() From 48db1fc0019d768271888239372c5e567f11a75d Mon Sep 17 00:00:00 2001 From: "adamek.stepan@gmail.com" Date: Thu, 18 Nov 2021 09:51:18 +0100 Subject: [PATCH 11/37] Fix toaster close icon. --- .../Components/MatToast/BaseMatToastItem.cs | 47 +++++++++---------- .../Components/MatToast/MatToastItem.razor | 2 +- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/MatBlazor/Components/MatToast/BaseMatToastItem.cs b/src/MatBlazor/Components/MatToast/BaseMatToastItem.cs index a94549cd..fa479a30 100644 --- a/src/MatBlazor/Components/MatToast/BaseMatToastItem.cs +++ b/src/MatBlazor/Components/MatToast/BaseMatToastItem.cs @@ -49,11 +49,10 @@ public void MouseLeave() public void Clicked(bool fromCloseIcon) { - Toast.Options.Onclick?.Invoke(Toast); - if (!fromCloseIcon && Toast.Options.ShowCloseButton) - return; - + if (!fromCloseIcon) + Toast.Options.Onclick?.Invoke(Toast); + UserHasInteracted = true; TransitionTo(MatToastState.Hiding); } @@ -78,30 +77,30 @@ public override async Task SetParametersAsync(ParameterView parameters) switch (p.Name) { case nameof(Toast): - { - if (Toast != null) { - Toast.OnUpdate -= ToastUpdated; - } - - Toast = (MatToast) p.Value; - Toast.OnUpdate += ToastUpdated; - EnsureInitialized(); - - Css = builder => - { - string transitionClass = TransitionClass; - if (string.IsNullOrEmpty(transitionClass)) + if (Toast != null) { - return; + Toast.OnUpdate -= ToastUpdated; } - builder.OpenElement(1, "style"); - builder.AddContent(2, transitionClass); - builder.CloseElement(); - }; - break; - } + Toast = (MatToast)p.Value; + Toast.OnUpdate += ToastUpdated; + EnsureInitialized(); + + Css = builder => + { + string transitionClass = TransitionClass; + if (string.IsNullOrEmpty(transitionClass)) + { + return; + } + + builder.OpenElement(1, "style"); + builder.AddContent(2, transitionClass); + builder.CloseElement(); + }; + break; + } } } diff --git a/src/MatBlazor/Components/MatToast/MatToastItem.razor b/src/MatBlazor/Components/MatToast/MatToastItem.razor index 0a8842bb..e02bb80a 100644 --- a/src/MatBlazor/Components/MatToast/MatToastItem.razor +++ b/src/MatBlazor/Components/MatToast/MatToastItem.razor @@ -15,7 +15,7 @@ } @if (Toast.Options.ShowCloseButton) { - + } @if (!string.IsNullOrEmpty(Message)) { From 8e2908d425107bb546c71bb7b69f7294fa3f297f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 7 Feb 2022 10:26:10 +0100 Subject: [PATCH 12/37] Add js invoke void functionality. --- .../Components/Base/BaseMatComponent.cs | 10 ++++++++++ .../MatExpansionPanelSummary.razor.cs | 2 +- .../Components/MatAppBar/MatAppBar.razor.cs | 2 +- .../Components/MatButton/MatButton.razor.cs | 4 ++-- .../Components/MatButtonLink/BaseMatLink.cs | 2 +- .../MatCheckbox/BaseMatCheckboxInternal.cs | 4 ++-- src/MatBlazor/Components/MatChip/MatChip.cs | 2 +- .../Components/MatChipSet/MatChipSet.cs | 2 +- .../MatDatePicker/BaseMatDatePickerInternal.cs | 2 +- .../Components/MatDialog/BaseMatDialog.cs | 6 +++--- .../Components/MatDrawer/BaseMatDrawer.cs | 4 ++-- .../Components/MatHidden/BaseMatHidden.cs | 4 ++-- .../MatIconButton/BaseMatIconButton.cs | 4 ++-- .../Components/MatList/BaseMatList.cs | 4 ++-- .../Components/MatMenu/BaseMatMenu.cs | 18 +++++++++--------- .../MatNavMenu/MatNavSubMenuHeader.razor | 2 +- .../MatProgressBar/BaseMatProgressBar.cs | 6 +++--- .../MatProgressCircle/BaseMatProgressCircle.cs | 4 ++-- .../BaseMatRadioButtonInternal.cs | 2 +- .../Components/MatRipple/BaseMatRipple.cs | 2 +- .../Components/MatSelect/BaseCoreMatSelect.cs | 4 ++-- .../MatSlideToggle/BaseMatSlideToggle.cs | 2 +- .../Components/MatSlider/BaseMatSlider.cs | 2 +- .../Components/MatSnackbar/BaseMatSnackbar.cs | 4 ++-- .../Components/MatTabBar/BaseMatTabBar.cs | 2 +- .../MatTextField/BaseMatInputTextComponent.cs | 2 +- .../Components/MatTooltip/BaseMatTooltip.cs | 2 +- 27 files changed, 57 insertions(+), 47 deletions(-) diff --git a/src/MatBlazor/Components/Base/BaseMatComponent.cs b/src/MatBlazor/Components/Base/BaseMatComponent.cs index daa80650..ce9b0307 100644 --- a/src/MatBlazor/Components/Base/BaseMatComponent.cs +++ b/src/MatBlazor/Components/Base/BaseMatComponent.cs @@ -98,6 +98,16 @@ protected async Task JsInvokeAsync(string code, params object[] args) } } + protected async Task JsInvokeVoidAsync(string code, params object[] args) + { + try + { + await Js.InvokeVoidAsync(code, args); + } + catch (JSDisconnectedException) { } // Do nothing + catch (Exception) { throw; } + } + #region Hack to fix https: //github.com/aspnet/AspNetCore/issues/11159 public static object CreateDotNetObjectRefSyncObj = new object(); diff --git a/src/MatBlazor/Components/MatAccordion/MatExpansionPanelSummary.razor.cs b/src/MatBlazor/Components/MatAccordion/MatExpansionPanelSummary.razor.cs index aa6aef83..b3306709 100644 --- a/src/MatBlazor/Components/MatAccordion/MatExpansionPanelSummary.razor.cs +++ b/src/MatBlazor/Components/MatAccordion/MatExpansionPanelSummary.razor.cs @@ -16,7 +16,7 @@ protected override void OnInitialized() { base.OnInitialized(); ClassMapper.Add("mat-expansion-panel__summary").Add("mdc-ripple-surface"); - CallAfterRender(async () => { await JsInvokeAsync("matBlazor.matAccordion.initSummary", Ref); }); + CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matAccordion.initSummary", Ref); }); } protected async Task OnClickHandler(MouseEventArgs e) diff --git a/src/MatBlazor/Components/MatAppBar/MatAppBar.razor.cs b/src/MatBlazor/Components/MatAppBar/MatAppBar.razor.cs index dab27ec9..21691b99 100644 --- a/src/MatBlazor/Components/MatAppBar/MatAppBar.razor.cs +++ b/src/MatBlazor/Components/MatAppBar/MatAppBar.razor.cs @@ -26,7 +26,7 @@ public MatAppBar() protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matAppBar.init", Ref); + await JsInvokeVoidAsync("matBlazor.matAppBar.init", Ref); } } diff --git a/src/MatBlazor/Components/MatButton/MatButton.razor.cs b/src/MatBlazor/Components/MatButton/MatButton.razor.cs index 7b16c4b0..b67e4f56 100644 --- a/src/MatBlazor/Components/MatButton/MatButton.razor.cs +++ b/src/MatBlazor/Components/MatButton/MatButton.razor.cs @@ -20,7 +20,7 @@ protected async override Task OnFirstAfterRenderAsync() await base.OnFirstAfterRenderAsync(); try { - await JsInvokeAsync("matBlazor.matButton.init", Ref); + await JsInvokeVoidAsync("matBlazor.matButton.init", Ref); } catch (Exception) { } // Disposed } @@ -153,7 +153,7 @@ protected async Task OnClickHandler(MouseEventArgs ev) { try { - await JsInvokeAsync("open", Link, Target); + await JsInvokeVoidAsync("open", Link, Target); } catch (TaskCanceledException ex) { diff --git a/src/MatBlazor/Components/MatButtonLink/BaseMatLink.cs b/src/MatBlazor/Components/MatButtonLink/BaseMatLink.cs index bc13bc8e..52b4407f 100644 --- a/src/MatBlazor/Components/MatButtonLink/BaseMatLink.cs +++ b/src/MatBlazor/Components/MatButtonLink/BaseMatLink.cs @@ -13,7 +13,7 @@ public class BaseMatButtonLink: BaseMatDomComponent protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matButton.init", Ref); + await JsInvokeVoidAsync("matBlazor.matButton.init", Ref); } public BaseMatButtonLink() diff --git a/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs b/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs index 1ce623c6..d8e950ae 100644 --- a/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs +++ b/src/MatBlazor/Components/MatCheckbox/BaseMatCheckboxInternal.cs @@ -20,7 +20,7 @@ public BaseMatCheckboxInternal() CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matCheckbox.init", Ref, ComponentRef); + await JsInvokeVoidAsync("matBlazor.matCheckbox.init", Ref, ComponentRef); }); } @@ -49,7 +49,7 @@ protected override async Task OnParametersSetAsync() } CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matCheckbox.setIndeterminate", Ref, CurrentValue == null); + await JsInvokeVoidAsync("matBlazor.matCheckbox.setIndeterminate", Ref, CurrentValue == null); }); } diff --git a/src/MatBlazor/Components/MatChip/MatChip.cs b/src/MatBlazor/Components/MatChip/MatChip.cs index 65c74132..743a95ec 100644 --- a/src/MatBlazor/Components/MatChip/MatChip.cs +++ b/src/MatBlazor/Components/MatChip/MatChip.cs @@ -100,7 +100,7 @@ protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); _dotNetObjectRef ??= CreateDotNetObjectRef(this); // needed to call into this object from Javascript - await JsInvokeAsync("matBlazor.matChip.init", Ref, _dotNetObjectRef); + await JsInvokeVoidAsync("matBlazor.matChip.init", Ref, _dotNetObjectRef); if (_isSelected && ChipSet != null) { await ChipSet.HandleChipSelected(this); diff --git a/src/MatBlazor/Components/MatChipSet/MatChipSet.cs b/src/MatBlazor/Components/MatChipSet/MatChipSet.cs index 0ab7c35d..20a211b1 100644 --- a/src/MatBlazor/Components/MatChipSet/MatChipSet.cs +++ b/src/MatBlazor/Components/MatChipSet/MatChipSet.cs @@ -18,7 +18,7 @@ public MatChipSet() protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matChipSet.init", Ref); + await JsInvokeVoidAsync("matBlazor.matChipSet.init", Ref); } [Parameter] diff --git a/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs b/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs index 04483f4a..6ddf1c1b 100644 --- a/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs +++ b/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs @@ -123,7 +123,7 @@ protected void OnClickIconHandler() { dotNetObjectRef ??= CreateDotNetObjectRef(dotNetObject); - await JsInvokeAsync("matBlazor.matDatePicker.open", Ref, flatpickrInputRef, dotNetObjectRef, + await JsInvokeVoidAsync("matBlazor.matDatePicker.open", Ref, flatpickrInputRef, dotNetObjectRef, new FlatpickrOptions { EnableTime = this.EnableTime, diff --git a/src/MatBlazor/Components/MatDialog/BaseMatDialog.cs b/src/MatBlazor/Components/MatDialog/BaseMatDialog.cs index a0cdd7b3..aa80220b 100644 --- a/src/MatBlazor/Components/MatDialog/BaseMatDialog.cs +++ b/src/MatBlazor/Components/MatDialog/BaseMatDialog.cs @@ -29,7 +29,7 @@ public bool IsOpen _isOpen = value; CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matDialog.setIsOpen", Ref, value); + await JsInvokeVoidAsync("matBlazor.matDialog.setIsOpen", Ref, value); }); } } @@ -56,7 +56,7 @@ public bool CanBeClosed _canBeClosed = value; CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matDialog.setCanBeClosed", Ref, value); + await JsInvokeVoidAsync("matBlazor.matDialog.setCanBeClosed", Ref, value); }); } } @@ -87,7 +87,7 @@ public BaseMatDialog() CallAfterRender(async () => { dotNetObjectRef ??= CreateDotNetObjectRef(this); - await JsInvokeAsync("matBlazor.matDialog.init", Ref, dotNetObjectRef); + await JsInvokeVoidAsync("matBlazor.matDialog.init", Ref, dotNetObjectRef); }); } diff --git a/src/MatBlazor/Components/MatDrawer/BaseMatDrawer.cs b/src/MatBlazor/Components/MatDrawer/BaseMatDrawer.cs index 32b8004d..bdbde79b 100644 --- a/src/MatBlazor/Components/MatDrawer/BaseMatDrawer.cs +++ b/src/MatBlazor/Components/MatDrawer/BaseMatDrawer.cs @@ -34,7 +34,7 @@ public bool Opened this.CallAfterRender(async () => { - await this.JsInvokeAsync("matBlazor.matDrawer.setOpened", Ref, _opened); + await this.JsInvokeVoidAsync("matBlazor.matDrawer.setOpened", Ref, _opened); }); OpenedChanged.InvokeAsync(value); @@ -58,7 +58,7 @@ public BaseMatDrawer() this.CallAfterRender(async () => { dotNetObjectRef ??= CreateDotNetObjectRef(this); - await JsInvokeAsync("matBlazor.matDrawer.init", Ref, dotNetObjectRef); + await JsInvokeVoidAsync("matBlazor.matDrawer.init", Ref, dotNetObjectRef); }); } diff --git a/src/MatBlazor/Components/MatHidden/BaseMatHidden.cs b/src/MatBlazor/Components/MatHidden/BaseMatHidden.cs index 5c6a0038..9561c200 100644 --- a/src/MatBlazor/Components/MatHidden/BaseMatHidden.cs +++ b/src/MatBlazor/Components/MatHidden/BaseMatHidden.cs @@ -63,7 +63,7 @@ protected override async Task OnFirstAfterRenderAsync() CallAfterRender(async () => { dotNetObjectRef ??= CreateDotNetObjectRef(this); - await JsInvokeAsync("matBlazor.matHidden.init", Id, dotNetObjectRef); + await JsInvokeVoidAsync("matBlazor.matHidden.init", Id, dotNetObjectRef); isInitialized = true; await UpdateVisible(); }); @@ -84,7 +84,7 @@ public override void Dispose() { InvokeAsync(async () => { - await JsInvokeAsync("matBlazor.matHidden.destroy", Id); + await JsInvokeVoidAsync("matBlazor.matHidden.destroy", Id); }); } diff --git a/src/MatBlazor/Components/MatIconButton/BaseMatIconButton.cs b/src/MatBlazor/Components/MatIconButton/BaseMatIconButton.cs index f8455a97..82160f7a 100644 --- a/src/MatBlazor/Components/MatIconButton/BaseMatIconButton.cs +++ b/src/MatBlazor/Components/MatIconButton/BaseMatIconButton.cs @@ -97,7 +97,7 @@ public BaseMatIconButton() protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matIconButton.init", Ref); + await JsInvokeVoidAsync("matBlazor.matIconButton.init", Ref); } protected async Task OnClickHandler(MouseEventArgs ev) @@ -109,7 +109,7 @@ protected async Task OnClickHandler(MouseEventArgs ev) { if (!string.IsNullOrEmpty(Target)) { - await JsInvokeAsync("open", Link, Target); + await JsInvokeVoidAsync("open", Link, Target); } else { diff --git a/src/MatBlazor/Components/MatList/BaseMatList.cs b/src/MatBlazor/Components/MatList/BaseMatList.cs index 1ebd134e..a98c9920 100644 --- a/src/MatBlazor/Components/MatList/BaseMatList.cs +++ b/src/MatBlazor/Components/MatList/BaseMatList.cs @@ -44,7 +44,7 @@ public async Task SetSelectedIndex(int index) { if (_selectedIndex != index) { - await JsInvokeAsync("matBlazor.matList.setSelectedIndex", this.Ref, index); + await JsInvokeVoidAsync("matBlazor.matList.setSelectedIndex", this.Ref, index); _selectedIndex = index; } } @@ -52,7 +52,7 @@ public async Task SetSelectedIndex(int index) protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matList.init", this.Ref, new MatListJsOptions() + await JsInvokeVoidAsync("matBlazor.matList.init", this.Ref, new MatListJsOptions() { SingleSelection = SingleSelection }); diff --git a/src/MatBlazor/Components/MatMenu/BaseMatMenu.cs b/src/MatBlazor/Components/MatMenu/BaseMatMenu.cs index 2cd8be3f..6006b3c1 100644 --- a/src/MatBlazor/Components/MatMenu/BaseMatMenu.cs +++ b/src/MatBlazor/Components/MatMenu/BaseMatMenu.cs @@ -21,36 +21,36 @@ public BaseMatMenu() public ForwardRef TargetForwardRef { get; set; } public async Task SetAnchorElementAsync(ElementReference anchorElement) { - await JsInvokeAsync("matBlazor.matMenu.setAnchorElement", Ref, anchorElement); + await JsInvokeVoidAsync("matBlazor.matMenu.setAnchorElement", Ref, anchorElement); } public async Task OpenAsync(ElementReference anchorElement) { - await JsInvokeAsync("matBlazor.matMenu.setAnchorElement", Ref, anchorElement); - await JsInvokeAsync("matBlazor.matMenu.open", Ref); + await JsInvokeVoidAsync("matBlazor.matMenu.setAnchorElement", Ref, anchorElement); + await JsInvokeVoidAsync("matBlazor.matMenu.open", Ref); } public async Task CloseAsync() { - await JsInvokeAsync("matBlazor.matMenu.close", Ref); + await JsInvokeVoidAsync("matBlazor.matMenu.close", Ref); } public async Task OpenAsync() { - await JsInvokeAsync("matBlazor.matMenu.setAnchorElement", Ref, TargetForwardRef.Current); - await JsInvokeAsync("matBlazor.matMenu.open", Ref); + await JsInvokeVoidAsync("matBlazor.matMenu.setAnchorElement", Ref, TargetForwardRef.Current); + await JsInvokeVoidAsync("matBlazor.matMenu.open", Ref); } public async Task SetState(bool open) { - await JsInvokeAsync("matBlazor.matMenu.setAnchorElement", Ref, TargetForwardRef.Current); - await JsInvokeAsync("matBlazor.matMenu.setState", Ref, open); + await JsInvokeVoidAsync("matBlazor.matMenu.setAnchorElement", Ref, TargetForwardRef.Current); + await JsInvokeVoidAsync("matBlazor.matMenu.setState", Ref, open); } protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matMenu.init", Ref); + await JsInvokeVoidAsync("matBlazor.matMenu.init", Ref); } } } \ No newline at end of file diff --git a/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor b/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor index fa5aa7d7..2722b80f 100644 --- a/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor +++ b/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor @@ -32,7 +32,7 @@ .Add("mdc-ripple-surface") .Add("mdc-nav-sub-menu-header") .Add("mdc-list--non-interactive"); - CallAfterRender(async () => { await JsInvokeAsync("matBlazor.matAccordion.initSummary", Ref); }); + CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matAccordion.initSummary", Ref); }); } protected void OnClickHandler(MouseEventArgs e) diff --git a/src/MatBlazor/Components/MatProgressBar/BaseMatProgressBar.cs b/src/MatBlazor/Components/MatProgressBar/BaseMatProgressBar.cs index 599d17de..89fe7582 100644 --- a/src/MatBlazor/Components/MatProgressBar/BaseMatProgressBar.cs +++ b/src/MatBlazor/Components/MatProgressBar/BaseMatProgressBar.cs @@ -32,7 +32,7 @@ public double Progress _progress = value; CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matProgressBar.setProgress", Ref, value); + await JsInvokeVoidAsync("matBlazor.matProgressBar.setProgress", Ref, value); }); } } @@ -50,7 +50,7 @@ public double Buffer CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matProgressBar.setBuffer", Ref, value); + await JsInvokeVoidAsync("matBlazor.matProgressBar.setBuffer", Ref, value); }); } } @@ -65,7 +65,7 @@ public BaseMatProgressBar() .If("mdc-linear-progress--indeterminate", () => this.Indeterminate) .If("mdc-linear-progress--reversed", () => this.Reversed) .If("mdc-linear-progress--closed", () => Closed); - CallAfterRender(async () => { await JsInvokeAsync("matBlazor.matProgressBar.init", Ref); }); + CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matProgressBar.init", Ref); }); } protected override Task OnParametersSetAsync() diff --git a/src/MatBlazor/Components/MatProgressCircle/BaseMatProgressCircle.cs b/src/MatBlazor/Components/MatProgressCircle/BaseMatProgressCircle.cs index 70745153..a941946b 100644 --- a/src/MatBlazor/Components/MatProgressCircle/BaseMatProgressCircle.cs +++ b/src/MatBlazor/Components/MatProgressCircle/BaseMatProgressCircle.cs @@ -62,7 +62,7 @@ public double Progress if (Math.Abs(value - _progress) > double.Epsilon) { _progress = value; - CallAfterRender(async () => await JsInvokeAsync("matBlazor.matProgressCircle.setProgress", Ref, value)); + CallAfterRender(async () => await JsInvokeVoidAsync("matBlazor.matProgressCircle.setProgress", Ref, value)); } } } @@ -90,7 +90,7 @@ public BaseMatProgressCircle() .If("mdc-circular-progress--determinate", () => !this.Indeterminate) .If("mdc-circular-progress--closed", () => this.Closed); - CallAfterRender(async () => { await JsInvokeAsync("matBlazor.matProgressCircle.init", Ref); }); + CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matProgressCircle.init", Ref); }); } protected override void OnParametersSet() diff --git a/src/MatBlazor/Components/MatRadioButton/BaseMatRadioButtonInternal.cs b/src/MatBlazor/Components/MatRadioButton/BaseMatRadioButtonInternal.cs index 0a4a9c7b..4a8e5bae 100644 --- a/src/MatBlazor/Components/MatRadioButton/BaseMatRadioButtonInternal.cs +++ b/src/MatBlazor/Components/MatRadioButton/BaseMatRadioButtonInternal.cs @@ -60,7 +60,7 @@ protected void OnChangeHandler(ChangeEventArgs e) protected async override Task OnFirstAfterRenderAsync() { await base.OnFirstAfterRenderAsync(); - await JsInvokeAsync("matBlazor.matRadioButton.init", Ref, FormFieldRef); + await JsInvokeVoidAsync("matBlazor.matRadioButton.init", Ref, FormFieldRef); } public BaseMatRadioButtonInternal() diff --git a/src/MatBlazor/Components/MatRipple/BaseMatRipple.cs b/src/MatBlazor/Components/MatRipple/BaseMatRipple.cs index 1c003b7a..74c48101 100644 --- a/src/MatBlazor/Components/MatRipple/BaseMatRipple.cs +++ b/src/MatBlazor/Components/MatRipple/BaseMatRipple.cs @@ -19,7 +19,7 @@ public BaseMatRipple() .Add("mdc-ripple-surface") .If("mdc-ripple-surface--primary", () => Color == MatRippleColor.Primary) .If("mdc-ripple-surface--accent", () => Color == MatRippleColor.Secondary); - CallAfterRender(async () => { await JsInvokeAsync("matBlazor.matRipple.init", Ref); }); + CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matRipple.init", Ref); }); } } } \ No newline at end of file diff --git a/src/MatBlazor/Components/MatSelect/BaseCoreMatSelect.cs b/src/MatBlazor/Components/MatSelect/BaseCoreMatSelect.cs index 2ed95de7..d4e3aa4c 100644 --- a/src/MatBlazor/Components/MatSelect/BaseCoreMatSelect.cs +++ b/src/MatBlazor/Components/MatSelect/BaseCoreMatSelect.cs @@ -40,7 +40,7 @@ public BaseCoreMatSelect() CallAfterRender(async () => { jsHelperReference ??= DotNetObjectReference.Create(jsHelper); - await JsInvokeAsync("matBlazor.matSelect.init", Ref, jsHelperReference, + await JsInvokeVoidAsync("matBlazor.matSelect.init", Ref, jsHelperReference, switchTK.FormatValueAsString(GetKeyFromValue(CurrentValue), null), new MatSelectInitOptions() { FullWidth = FullWidth, @@ -71,7 +71,7 @@ protected override void OnValueChanged(TValue oldValue, TValue newValue) { CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matSelect.setValue", Ref, switchTK.FormatValueAsString(GetKeyFromValue(newValue), null)); + await JsInvokeVoidAsync("matBlazor.matSelect.setValue", Ref, switchTK.FormatValueAsString(GetKeyFromValue(newValue), null)); }); } } diff --git a/src/MatBlazor/Components/MatSlideToggle/BaseMatSlideToggle.cs b/src/MatBlazor/Components/MatSlideToggle/BaseMatSlideToggle.cs index 796ed7d1..86733b35 100644 --- a/src/MatBlazor/Components/MatSlideToggle/BaseMatSlideToggle.cs +++ b/src/MatBlazor/Components/MatSlideToggle/BaseMatSlideToggle.cs @@ -19,7 +19,7 @@ public BaseMatSlideToggle() .If("mdc-switch--checked", () => Checked); CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matSlideToggle.init", Ref); + await JsInvokeVoidAsync("matBlazor.matSlideToggle.init", Ref); }); } diff --git a/src/MatBlazor/Components/MatSlider/BaseMatSlider.cs b/src/MatBlazor/Components/MatSlider/BaseMatSlider.cs index 9ece8463..dbed9263 100644 --- a/src/MatBlazor/Components/MatSlider/BaseMatSlider.cs +++ b/src/MatBlazor/Components/MatSlider/BaseMatSlider.cs @@ -32,7 +32,7 @@ public BaseMatSlider() .If("mdc-slider--display-markers", () => Discrete && Markers); CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matSlider.init", Ref, jsHelper.Reference, Immediate); + await JsInvokeVoidAsync("matBlazor.matSlider.init", Ref, jsHelper.Reference, Immediate); }); } diff --git a/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs b/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs index 6c585891..04ded469 100644 --- a/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs +++ b/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs @@ -71,7 +71,7 @@ public bool IsOpen private async Task SetIsOpen(bool value) { - await JsInvokeAsync("matBlazor.matSnackbar.setIsOpen", Ref, value); + await JsInvokeVoidAsync("matBlazor.matSnackbar.setIsOpen", Ref, value); } /// @@ -99,7 +99,7 @@ public BaseMatSnackbar() CallAfterRender(async () => { _dotNetObjectRef ??= CreateDotNetObjectRef(this); - await JsInvokeAsync("matBlazor.matSnackbar.init", Ref, _dotNetObjectRef); + await JsInvokeVoidAsync("matBlazor.matSnackbar.init", Ref, _dotNetObjectRef); }); } diff --git a/src/MatBlazor/Components/MatTabBar/BaseMatTabBar.cs b/src/MatBlazor/Components/MatTabBar/BaseMatTabBar.cs index f3086e1a..93e4adc9 100644 --- a/src/MatBlazor/Components/MatTabBar/BaseMatTabBar.cs +++ b/src/MatBlazor/Components/MatTabBar/BaseMatTabBar.cs @@ -86,7 +86,7 @@ await InvokeAsync(() => public BaseMatTabBar() { ClassMapper.Add("mdc-tab-bar"); -// this.CallAfterRender(async () => { await this.JsInvokeAsync("matBlazor.matTabBar.init", Ref); }); +// this.CallAfterRender(async () => { await this.JsInvokeVoidAsync("matBlazor.matTabBar.init", Ref); }); } } } \ No newline at end of file diff --git a/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs b/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs index a0c9417f..0c215ebf 100644 --- a/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs +++ b/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs @@ -165,7 +165,7 @@ bool TextOrPlaceHolderVisible() // .If("_mdc-text-field--upgraded", () => !string.IsNullOrEmpty(CurrentValueAsString)) .If("mat-hide-clearbutton", () => this.HideClearButton); - CallAfterRender(async () => { await JsInvokeAsync("matBlazor.matTextField.init", Ref); }); + CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matTextField.init", Ref); }); } } } diff --git a/src/MatBlazor/Components/MatTooltip/BaseMatTooltip.cs b/src/MatBlazor/Components/MatTooltip/BaseMatTooltip.cs index f6e2f9c1..c5ff8a35 100644 --- a/src/MatBlazor/Components/MatTooltip/BaseMatTooltip.cs +++ b/src/MatBlazor/Components/MatTooltip/BaseMatTooltip.cs @@ -33,7 +33,7 @@ public BaseMatTooltip() ClassMapper.Add("mat-tooltip"); CallAfterRender(async () => { - await JsInvokeAsync("matBlazor.matTooltip.init", Ref, TargetForwardRef?.Current, TargetId, + await JsInvokeVoidAsync("matBlazor.matTooltip.init", Ref, TargetForwardRef?.Current, TargetId, CreateJSOptions()); }); } From 31989d20bfbf77f0ab0584e39a2bfe19701b8129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Tue, 8 Feb 2022 09:59:42 +0100 Subject: [PATCH 13/37] Mattable invoke statehaschanged using dispatcher. --- src/MatBlazor/Components/MatTable/MatTable.razor | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/MatBlazor/Components/MatTable/MatTable.razor b/src/MatBlazor/Components/MatTable/MatTable.razor index d8d60ee1..842fce33 100644 --- a/src/MatBlazor/Components/MatTable/MatTable.razor +++ b/src/MatBlazor/Components/MatTable/MatTable.razor @@ -164,7 +164,7 @@ if (PageSize <= 0) PageSize = 5; } - + StartPage = 1; CurrentPage = StartPage; @@ -283,14 +283,14 @@ var doc = JsonDocument.Parse(pagedData); var root = doc.RootElement; string itemsString = root.GetProperty(PagingDataPropertyName).GetRawText(); - + var opt = new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - + var items = JsonSerializer.Deserialize>(itemsString, opt); - + Items = items; int count = root.GetProperty(PagingRecordsCountPropertyName).GetInt32(); RecordsFrom = (CurrentPage - 1) * PageSize; @@ -351,7 +351,7 @@ else { } // Do nothing SetPageSize(PageDirection.Next); - StateHasChanged(); + _ = InvokeAsync(StateHasChanged); } catch (Exception ex) { From 09fb235f3478123b5111ce5ab2af32ef75394c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Fri, 11 Feb 2022 14:55:22 +0100 Subject: [PATCH 14/37] Add enum support. --- src/MatBlazor/Core/MatBlazorSwitchEnum.cs | 71 +++++++++++++++++++++++ src/MatBlazor/Core/MatBlazorSwitchT.cs | 4 +- 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 src/MatBlazor/Core/MatBlazorSwitchEnum.cs diff --git a/src/MatBlazor/Core/MatBlazorSwitchEnum.cs b/src/MatBlazor/Core/MatBlazorSwitchEnum.cs new file mode 100644 index 00000000..514a356e --- /dev/null +++ b/src/MatBlazor/Core/MatBlazorSwitchEnum.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MatBlazor.Core +{ + internal class MatBlazorSwitchEnum : MatBlazorSwitchT + { + public override T Decrease(T v, T step, T min) + { + throw new NotImplementedException(); + } + + public override string FormatValueAsString(T v, string format) + { + return v.ToString(); + } + + public override T FromBoolNull(bool? v, bool indeterminate) + { + throw new NotImplementedException(); + } + + public override T FromDateTimeNull(DateTime? v) + { + throw new NotImplementedException(); + } + + public override T FromDecimal(decimal v) + { + throw new NotImplementedException(); + } + + public override T GetMaximum() + { + throw new NotImplementedException(); + } + + public override T GetMinimum() + { + throw new NotImplementedException(); + } + + public override T GetStep() + { + throw new NotImplementedException(); + } + + public override T Increase(T v, T step, T max) + { + throw new NotImplementedException(); + } + + public override T ParseFromString(string v, string format) + { + return (T)Enum.Parse(typeof(T), v); + } + + public override T Round(T v, int dp) + { + throw new NotImplementedException(); + } + + public override DateTime? ToDateTimeNull(T v) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/MatBlazor/Core/MatBlazorSwitchT.cs b/src/MatBlazor/Core/MatBlazorSwitchT.cs index 5e7bf2ee..aa8e4d04 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchT.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchT.cs @@ -1,4 +1,5 @@ -using System; +using MatBlazor.Core; +using System; namespace MatBlazor @@ -68,6 +69,7 @@ public virtual T FromBool(bool v) public static MatBlazorSwitchT Get() { + if (typeof(T).IsEnum) return new MatBlazorSwitchEnum(); return Ts.Get>(); } } From fd1e55d3dd796b80330957394f0ef30c8bce5582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Tue, 1 Mar 2022 10:48:13 +0100 Subject: [PATCH 15/37] Disallow deselecting mattable row. --- src/MatBlazor/Components/MatTable/BaseTableRow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/MatTable/BaseTableRow.cs b/src/MatBlazor/Components/MatTable/BaseTableRow.cs index b2a35ba3..1dbff336 100644 --- a/src/MatBlazor/Components/MatTable/BaseTableRow.cs +++ b/src/MatBlazor/Components/MatTable/BaseTableRow.cs @@ -45,7 +45,7 @@ public BaseTableRow() protected async Task OnClickHandler(MouseEventArgs _) { - if (AllowSelection) + if (AllowSelection && !Selected) { await ToggleSelectedAsync(); } From ae5683e8a72af72412b05f2bad1316273ea01ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Tue, 5 Apr 2022 10:38:05 +0200 Subject: [PATCH 16/37] Mattables are now typed (for event handling to pass templated param instead of object). --- .../Components/MatTable/BaseMatTable.cs | 14 ++++---- .../Components/MatTable/BaseTableRow.cs | 6 ++-- .../Components/MatTable/MatTable.razor | 4 +-- .../Components/MatTable/TableRow.razor | 3 +- src/MatBlazor/MatBlazor.xml | 36 +++++++++---------- 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/MatBlazor/Components/MatTable/BaseMatTable.cs b/src/MatBlazor/Components/MatTable/BaseMatTable.cs index 20541703..b6e71b86 100644 --- a/src/MatBlazor/Components/MatTable/BaseMatTable.cs +++ b/src/MatBlazor/Components/MatTable/BaseMatTable.cs @@ -8,11 +8,11 @@ namespace MatBlazor /// /// Mat Table display a table data. /// - public class BaseMatTable : BaseMatDomComponent + public class BaseMatTable : BaseMatDomComponent { private string _searchTermFieldPlaceHolder = null; private string _searchTermFieldLabel = null; - public BaseTableRow Current { get; private set; } + public BaseTableRow Current { get; private set; } #region Private Fields protected int TotalPages { get; set; } @@ -69,7 +69,7 @@ public class BaseMatTable : BaseMatDomComponent #endregion [Parameter] - public Action SelectionChanged { get; set; } + public Action SelectionChanged { get; set; } /// /// Specifies a custom class for the MatTableHeader row @@ -214,10 +214,10 @@ public BaseMatTable() /// Action to execute on row item /// [Parameter] - public EventCallback OnRowDbClick { get; set; } + public EventCallback OnRowDbClick { get; set; } #region Helpers - public async Task ToggleSelectedAsync(BaseTableRow row) + public async Task ToggleSelectedAsync(BaseTableRow row) { if (row.Selected) { @@ -232,7 +232,7 @@ public async Task ToggleSelectedAsync(BaseTableRow row) } else { - SelectionChanged?.Invoke(null); + SelectionChanged?.Invoke(default); } } @@ -305,7 +305,7 @@ public class PageSizeStructure #region events - protected void OnRowDbClickHandler(object item) + protected void OnRowDbClickHandler(TItem item) { if (OnRowDbClick.HasDelegate) { diff --git a/src/MatBlazor/Components/MatTable/BaseTableRow.cs b/src/MatBlazor/Components/MatTable/BaseTableRow.cs index 1dbff336..20f6b1cc 100644 --- a/src/MatBlazor/Components/MatTable/BaseTableRow.cs +++ b/src/MatBlazor/Components/MatTable/BaseTableRow.cs @@ -7,10 +7,10 @@ namespace MatBlazor /// /// Mat Table Row display a table row /// - public class BaseTableRow : BaseMatDomComponent + public class BaseTableRow : BaseMatDomComponent { [CascadingParameter] - public BaseMatTable Table { get; set; } + public BaseMatTable Table { get; set; } [Parameter] public RenderFragment ChildContent { get; set; } @@ -22,7 +22,7 @@ public class BaseTableRow : BaseMatDomComponent public bool AllowSelection { get; set; } [Parameter] - public object RowItem { get; set; } + public TItem RowItem { get; set; } [Parameter] public EventCallback SelectedChanged { get; set; } diff --git a/src/MatBlazor/Components/MatTable/MatTable.razor b/src/MatBlazor/Components/MatTable/MatTable.razor index 842fce33..3d0601d2 100644 --- a/src/MatBlazor/Components/MatTable/MatTable.razor +++ b/src/MatBlazor/Components/MatTable/MatTable.razor @@ -1,5 +1,5 @@ @namespace MatBlazor -@inherits BaseMatTable +@inherits BaseMatTable @typeparam TableItem @inject System.Net.Http.HttpClient Http @@ -30,7 +30,7 @@ { @foreach (var item in ItemList) { - +@typeparam TItem @using Microsoft.AspNetCore.Components diff --git a/src/MatBlazor/MatBlazor.xml b/src/MatBlazor/MatBlazor.xml index 1c05a096..8f72a867 100644 --- a/src/MatBlazor/MatBlazor.xml +++ b/src/MatBlazor/MatBlazor.xml @@ -796,92 +796,92 @@ WARNING: In Development progress - + Mat Table display a table data. - + Specifies a custom class for the MatTableHeader row - + Specifies a custom class for the MatTableRow - + Specifies weather you can select a single row. - + Specifies whether to Request the API only once. - + Specifies the delay duration between user input on the Search Term Field. Default 800 - + Specifies which column is used for the filter / search term. If this is populated the Search Textbox will be visible. - + Specifies the Label for the Filter / Search Term Textbox - + Specifies the Placeholder for the Filter / Search Term Textbox - + Specifies where to Load the Initial Table Data - + Specifies the API Url form for the table data - + Specifies the Paging visibility - + Specifies the Table Footer visibility. - + Determines if table has alternating color rows. - + The number of rows per page. - + The current page, starting from one. - + Action to execute on row item - + Mat Table Row display a table row From 41624a5a8bde2a205176874e37dbe4e8190b894e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 16 May 2022 15:53:52 +0200 Subject: [PATCH 17/37] Update for nullable enum support. --- src/MatBlazor/Core/MatBlazorSwitchEnum.cs | 7 ++++++- src/MatBlazor/Core/MatBlazorSwitchT.cs | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/MatBlazor/Core/MatBlazorSwitchEnum.cs b/src/MatBlazor/Core/MatBlazorSwitchEnum.cs index 514a356e..ebe70fe9 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchEnum.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchEnum.cs @@ -15,6 +15,7 @@ public override T Decrease(T v, T step, T min) public override string FormatValueAsString(T v, string format) { + if (v == null) return null; return v.ToString(); } @@ -55,7 +56,11 @@ public override T Increase(T v, T step, T max) public override T ParseFromString(string v, string format) { - return (T)Enum.Parse(typeof(T), v); + if (string.IsNullOrWhiteSpace(v)) + return default; + var type = Nullable.GetUnderlyingType(typeof(T)); + type ??= typeof(T); + return (T)Enum.Parse(type, v); } public override T Round(T v, int dp) diff --git a/src/MatBlazor/Core/MatBlazorSwitchT.cs b/src/MatBlazor/Core/MatBlazorSwitchT.cs index aa8e4d04..e2dd6e93 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchT.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchT.cs @@ -69,7 +69,8 @@ public virtual T FromBool(bool v) public static MatBlazorSwitchT Get() { - if (typeof(T).IsEnum) return new MatBlazorSwitchEnum(); + var type = Nullable.GetUnderlyingType(typeof(T)); + if (typeof(T).IsEnum || (type != null && type.IsEnum)) return new MatBlazorSwitchEnum(); return Ts.Get>(); } } From b5401d9ecd069eb4689f361738347eec1f97ea6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 30 May 2022 16:46:34 +0200 Subject: [PATCH 18/37] Allow clearing validation errors. --- src/MatBlazor/Components/Base/BaseMatInputComponent.cs | 10 ++++++++++ .../Base/BaseMatInputTextElementComponent.cs | 6 ++++++ .../MatDatePicker/BaseMatDatePickerInternal.cs | 1 - src/MatBlazor/MatBlazor.xml | 6 ++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/Base/BaseMatInputComponent.cs b/src/MatBlazor/Components/Base/BaseMatInputComponent.cs index 0aee34a8..eb7e072d 100644 --- a/src/MatBlazor/Components/Base/BaseMatInputComponent.cs +++ b/src/MatBlazor/Components/Base/BaseMatInputComponent.cs @@ -52,6 +52,7 @@ public T Value } } + [Obsolete("Please use OnValueChanged(oldValue, newValue)")] protected virtual void OnValueChanged(bool changed) { @@ -96,10 +97,19 @@ protected virtual T CurrentValue { _value = value; ValueChanged.InvokeAsync(value); + ClearValidationErrors(); EditContext?.NotifyFieldChanged(FieldIdentifier); } } } + /// + /// Clears validation errors + /// Used when value is set programatically, removing parse errors + /// + protected virtual void ClearValidationErrors() + { + + } protected virtual bool ValidateCurrentValue(T value) diff --git a/src/MatBlazor/Components/Base/BaseMatInputTextElementComponent.cs b/src/MatBlazor/Components/Base/BaseMatInputTextElementComponent.cs index c74479b0..200ec6f5 100644 --- a/src/MatBlazor/Components/Base/BaseMatInputTextElementComponent.cs +++ b/src/MatBlazor/Components/Base/BaseMatInputTextElementComponent.cs @@ -10,6 +10,12 @@ public abstract class BaseMatInputTextElementComponent : BaseMatInputElementC private ValidationMessageStore _parsingValidationMessages; + + protected override void ClearValidationErrors() + { + _parsingValidationMessages?.Clear(); + } + /// /// Gets or sets the current value of the input, represented as a string. /// diff --git a/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs b/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs index 6ddf1c1b..58231f63 100644 --- a/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs +++ b/src/MatBlazor/Components/MatDatePicker/BaseMatDatePickerInternal.cs @@ -109,7 +109,6 @@ protected override bool ValidateCurrentValue(TValue value) return false; } } - return true; } diff --git a/src/MatBlazor/MatBlazor.xml b/src/MatBlazor/MatBlazor.xml index 8f72a867..ee84170b 100644 --- a/src/MatBlazor/MatBlazor.xml +++ b/src/MatBlazor/MatBlazor.xml @@ -63,6 +63,12 @@ Gets or sets the current value of the input. + + + Clears validation errors + Used when value is set programatically, removing parse errors + + Gets a string that indicates the status of the field being edited. This will include From 9a2e3d06e68c91375a18b5def63493df64a08856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 25 Jul 2022 09:48:37 +0200 Subject: [PATCH 19/37] Add tooltip optin to maticon (html title version, fast). --- src/MatBlazor/Components/MatIcon/BaseMatIcon.cs | 3 +++ src/MatBlazor/Components/MatIcon/MatIcon.razor | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/MatBlazor/Components/MatIcon/BaseMatIcon.cs b/src/MatBlazor/Components/MatIcon/BaseMatIcon.cs index a69918fc..99115c65 100644 --- a/src/MatBlazor/Components/MatIcon/BaseMatIcon.cs +++ b/src/MatBlazor/Components/MatIcon/BaseMatIcon.cs @@ -14,6 +14,9 @@ public class BaseMatIcon : BaseMatDomComponent [Parameter] public RenderFragment ChildContent { get; set; } + [Parameter] + public string Tooltip { get; set; } + public BaseMatIcon() { ClassMapper.Add("material-icons"); diff --git a/src/MatBlazor/Components/MatIcon/MatIcon.razor b/src/MatBlazor/Components/MatIcon/MatIcon.razor index e57c2f25..3fd5228e 100644 --- a/src/MatBlazor/Components/MatIcon/MatIcon.razor +++ b/src/MatBlazor/Components/MatIcon/MatIcon.razor @@ -1,4 +1,5 @@ @namespace MatBlazor @inherits BaseMatIcon @using Microsoft.AspNetCore.Components -@Icon@ChildContent +@Icon@ChildContent From ae68a2d06228be70364a4685ff6907cdce70c642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Ad=C3=A1mek?= Date: Mon, 25 Jul 2022 12:47:17 +0200 Subject: [PATCH 20/37] Resolve project warnings. --- src/MatBlazor/Components/Base/BaseMatInputComponent.cs | 1 - src/MatBlazor/Components/MatChip/MatChip.cs | 2 +- .../Components/MatNavMenu/MatNavSubMenuHeader.razor | 4 ++-- src/MatBlazor/Components/MatPaginator/BaseMatPaginator.cs | 4 ++-- src/MatBlazor/Components/MatPaginator/MatPaginator.razor | 8 ++++---- src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs | 2 +- src/MatBlazor/Components/MatTabLabel/BaseMatTabLabel.cs | 2 +- src/MatBlazor/Components/MatTreeView/MatTreeView.razor.cs | 2 +- src/MatBlazor/Core/MatBlazorSwitchTByte.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTByteNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTChar.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTCharNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTDecimal.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTDecimalNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTDouble.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTDoubleNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTFloat.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTFloatNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTInt.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTLong.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTLongNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTSByte.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTSByteNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTShort.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTShortNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTUInt.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTUIntNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTULong.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTULongNull.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTUShort.cs | 4 ++-- src/MatBlazor/Core/MatBlazorSwitchTUShortNull.cs | 4 ++-- src/MatBlazor/MatBlazor.xml | 2 +- 32 files changed, 59 insertions(+), 60 deletions(-) diff --git a/src/MatBlazor/Components/Base/BaseMatInputComponent.cs b/src/MatBlazor/Components/Base/BaseMatInputComponent.cs index eb7e072d..84b53699 100644 --- a/src/MatBlazor/Components/Base/BaseMatInputComponent.cs +++ b/src/MatBlazor/Components/Base/BaseMatInputComponent.cs @@ -53,7 +53,6 @@ public T Value } - [Obsolete("Please use OnValueChanged(oldValue, newValue)")] protected virtual void OnValueChanged(bool changed) { } diff --git a/src/MatBlazor/Components/MatChip/MatChip.cs b/src/MatBlazor/Components/MatChip/MatChip.cs index 743a95ec..b8856824 100644 --- a/src/MatBlazor/Components/MatChip/MatChip.cs +++ b/src/MatBlazor/Components/MatChip/MatChip.cs @@ -56,7 +56,7 @@ public bool IsSelected this.StateHasChanged(); if (ChipSet != null && _isSelected) { - ChipSet.HandleChipSelected(this); + _ = ChipSet.HandleChipSelected(this); } IsSelectedChanged.InvokeAsync(_isSelected); } diff --git a/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor b/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor index 2722b80f..fbab9dbc 100644 --- a/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor +++ b/src/MatBlazor/Components/MatNavMenu/MatNavSubMenuHeader.razor @@ -35,8 +35,8 @@ CallAfterRender(async () => { await JsInvokeVoidAsync("matBlazor.matAccordion.initSummary", Ref); }); } - protected void OnClickHandler(MouseEventArgs e) + protected async Task OnClickHandler(MouseEventArgs e) { - this.NavSubMenu.ToggleAsync(); + await this.NavSubMenu.ToggleAsync(); } } \ No newline at end of file diff --git a/src/MatBlazor/Components/MatPaginator/BaseMatPaginator.cs b/src/MatBlazor/Components/MatPaginator/BaseMatPaginator.cs index c5e6dc09..ee1590be 100644 --- a/src/MatBlazor/Components/MatPaginator/BaseMatPaginator.cs +++ b/src/MatBlazor/Components/MatPaginator/BaseMatPaginator.cs @@ -90,7 +90,7 @@ public async Task NavigateToPage(MatPaginatorAction direction, int pageSize) { page = ((PageIndex * PageSize) / pageSize); } - catch (OverflowException e) + catch (OverflowException) { } } @@ -120,7 +120,7 @@ public async Task NavigateToPage(MatPaginatorAction direction, int pageSize) } } } - catch (Exception e) + catch (Exception) { } diff --git a/src/MatBlazor/Components/MatPaginator/MatPaginator.razor b/src/MatBlazor/Components/MatPaginator/MatPaginator.razor index de526c1f..2bd6de21 100644 --- a/src/MatBlazor/Components/MatPaginator/MatPaginator.razor +++ b/src/MatBlazor/Components/MatPaginator/MatPaginator.razor @@ -13,11 +13,11 @@
@PageLabel @(PageIndex + 1) / @TotalPages
- NavigateToPage(MatPaginatorAction.First, PageSize)) Disabled=@(PageIndex <= 0)> - NavigateToPage(MatPaginatorAction.Previous, PageSize)) Disabled=@(PageIndex <= 0)> + await NavigateToPage(MatPaginatorAction.First, PageSize)) Disabled=@(PageIndex <= 0)> + await NavigateToPage(MatPaginatorAction.Previous, PageSize)) Disabled=@(PageIndex <= 0)> - - NavigateToPage(MatPaginatorAction.Last, PageSize)) Disabled=@(TotalPages - PageIndex <= 1)> + + await NavigateToPage(MatPaginatorAction.Last, PageSize)) Disabled=@(TotalPages - PageIndex <= 1)>
diff --git a/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs b/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs index 04ded469..3b979f6f 100644 --- a/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs +++ b/src/MatBlazor/Components/MatSnackbar/BaseMatSnackbar.cs @@ -62,7 +62,7 @@ public bool IsOpen return; } _isOpen = false; - SetIsOpen(false); + _ = SetIsOpen(false); }); } } diff --git a/src/MatBlazor/Components/MatTabLabel/BaseMatTabLabel.cs b/src/MatBlazor/Components/MatTabLabel/BaseMatTabLabel.cs index bf274a52..5492b0f7 100644 --- a/src/MatBlazor/Components/MatTabLabel/BaseMatTabLabel.cs +++ b/src/MatBlazor/Components/MatTabLabel/BaseMatTabLabel.cs @@ -37,7 +37,7 @@ protected override void OnInitialized() public override void Dispose() { disposed = true; - Parent.TabDisposed(this); + _ = Parent.TabDisposed(this); } public bool IsActive diff --git a/src/MatBlazor/Components/MatTreeView/MatTreeView.razor.cs b/src/MatBlazor/Components/MatTreeView/MatTreeView.razor.cs index a2a9607e..b90064e7 100644 --- a/src/MatBlazor/Components/MatTreeView/MatTreeView.razor.cs +++ b/src/MatBlazor/Components/MatTreeView/MatTreeView.razor.cs @@ -148,7 +148,7 @@ public IEnumerable RootNodes public LoadChildNodesDelegate LoadChildNodesCallback { get; set; } /// /// A function that indicates if the given node is expanded or collapsed. - /// (Optional - if null then the expanded/collapsed state is managed by the ) + /// (Optional - if null then the expanded/collapsed state is managed by the ) /// /// = min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTByteNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTByteNull.cs index 7c26dd69..434a0642 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTByteNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTByteNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTByteNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (byte?) ((v ?? 0) + (step ?? 0)) : null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTByteNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (byte?) ((v ?? 0) - (step ?? 0)) : null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTChar.cs b/src/MatBlazor/Core/MatBlazorSwitchTChar.cs index 6e4432d3..125fa599 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTChar.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTChar.cs @@ -13,7 +13,7 @@ public override char Increase(char v, char step, char max) var v2 = (char) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -29,7 +29,7 @@ public override char Decrease(char v, char step, char min) var v2 = (char)(v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTCharNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTCharNull.cs index 736fa406..72bfd38b 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTCharNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTCharNull.cs @@ -13,7 +13,7 @@ public class MatBlazorSwitchTCharNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (char?) ((v ?? 0) + (step ?? 0)) : null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -29,7 +29,7 @@ public class MatBlazorSwitchTCharNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (char?) ((v ?? 0) - (step ?? 0)) : null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTDecimal.cs b/src/MatBlazor/Core/MatBlazorSwitchTDecimal.cs index 215ee330..c1020177 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTDecimal.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTDecimal.cs @@ -14,7 +14,7 @@ public override decimal Increase(decimal v, decimal step, decimal max) var v2 = (decimal) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override decimal Decrease(decimal v, decimal step, decimal min) var v2 = (decimal) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTDecimalNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTDecimalNull.cs index 328bccf4..384621dc 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTDecimalNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTDecimalNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTDecimalNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) + (step ?? 0)) : (decimal?) null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTDecimalNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) - (step ?? 0)) : (decimal?) null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTDouble.cs b/src/MatBlazor/Core/MatBlazorSwitchTDouble.cs index a667ae2f..3c4bb990 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTDouble.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTDouble.cs @@ -14,7 +14,7 @@ public override double Increase(double v, double step, double max) var v2 = (double) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override double Decrease(double v, double step, double min) var v2 = (double) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTDoubleNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTDoubleNull.cs index 999b7b49..618b8328 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTDoubleNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTDoubleNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTDoubleNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) + (step ?? 0)) : (double?) null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTDoubleNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) - (step ?? 0)) : (double?) null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTFloat.cs b/src/MatBlazor/Core/MatBlazorSwitchTFloat.cs index 04bbead8..8f998aeb 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTFloat.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTFloat.cs @@ -14,7 +14,7 @@ public override float Increase(float v, float step, float max) var v2 = (float) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override float Decrease(float v, float step, float min) var v2 = (float)(v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTFloatNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTFloatNull.cs index 53bc4c0a..9bb6a6f7 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTFloatNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTFloatNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTFloatNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) + (step ?? 0)) : (float?) null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTFloatNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) - (step ?? 0)) : (float?) null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTInt.cs b/src/MatBlazor/Core/MatBlazorSwitchTInt.cs index 08c50483..3f44302f 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTInt.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTInt.cs @@ -14,7 +14,7 @@ public override int Increase(int v, int step, int max) var v2 = (int) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override int Decrease(int v, int step, int min) var v2 = (int) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTLong.cs b/src/MatBlazor/Core/MatBlazorSwitchTLong.cs index 45ec67d3..0005999f 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTLong.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTLong.cs @@ -14,7 +14,7 @@ public override long Increase(long v, long step, long max) var v2 = (long) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override long Decrease(long v, long step, long min) var v2 = (long) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTLongNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTLongNull.cs index bf8dacfd..f3db177c 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTLongNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTLongNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTLongNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) + (step ?? 0)) : (long?) null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTLongNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) - (step ?? 0)) : (long?) null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTSByte.cs b/src/MatBlazor/Core/MatBlazorSwitchTSByte.cs index 19fbc370..92edc9ae 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTSByte.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTSByte.cs @@ -14,7 +14,7 @@ public override sbyte Increase(sbyte v, sbyte step, sbyte max) var v2 = (sbyte) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override sbyte Decrease(sbyte v, sbyte step, sbyte min) var v2 = (sbyte) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTSByteNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTSByteNull.cs index 474de964..bc41d884 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTSByteNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTSByteNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTSByteNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (sbyte?) ((v ?? 0) + (step ?? 0)) : null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTSByteNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (sbyte?) ((v ?? 0) - (step ?? 0)) : null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTShort.cs b/src/MatBlazor/Core/MatBlazorSwitchTShort.cs index 76e4e5b8..990e3bdb 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTShort.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTShort.cs @@ -14,7 +14,7 @@ public override short Increase(short v, short step, short max) var v2 = (short) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override short Decrease(short v, short step, short min) var v2 = (short) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTShortNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTShortNull.cs index d74d5ae2..9d80709e 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTShortNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTShortNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTShortNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (short?) ((v ?? 0) + (step ?? 0)) : null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTShortNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (short?) ((v ?? 0) - (step ?? 0)) : null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTUInt.cs b/src/MatBlazor/Core/MatBlazorSwitchTUInt.cs index e0381941..7a68c2a1 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTUInt.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTUInt.cs @@ -14,7 +14,7 @@ public override uint Increase(uint v, uint step, uint max) var v2 = (uint) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override uint Decrease(uint v, uint step, uint min) var v2 = (uint) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTUIntNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTUIntNull.cs index 8bd9ed1b..9c844fa9 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTUIntNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTUIntNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTUIntNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) + (step ?? 0)) : (uint?) null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTUIntNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) - (step ?? 0)) : (uint?) null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTULong.cs b/src/MatBlazor/Core/MatBlazorSwitchTULong.cs index 12dc81d4..7d488ecb 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTULong.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTULong.cs @@ -14,7 +14,7 @@ public override ulong Increase(ulong v, ulong step, ulong max) var v2 = (ulong) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override ulong Decrease(ulong v, ulong step, ulong min) var v2 = (ulong) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTULongNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTULongNull.cs index 55dd33d2..6e8f3bdb 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTULongNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTULongNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTULongNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) + (step ?? 0)) : (ulong?) null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTULongNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? ((v ?? 0) - (step ?? 0)) : (ulong?) null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTUShort.cs b/src/MatBlazor/Core/MatBlazorSwitchTUShort.cs index e3e7da21..56272062 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTUShort.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTUShort.cs @@ -14,7 +14,7 @@ public override ushort Increase(ushort v, ushort step, ushort max) var v2 = (ushort) (v + step); return v2 <= max ? v2 : max; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public override ushort Decrease(ushort v, ushort step, ushort min) var v2 = (ushort) (v - step); return v2 >= min ? v2 : min; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/Core/MatBlazorSwitchTUShortNull.cs b/src/MatBlazor/Core/MatBlazorSwitchTUShortNull.cs index 6178d165..6746b41d 100644 --- a/src/MatBlazor/Core/MatBlazorSwitchTUShortNull.cs +++ b/src/MatBlazor/Core/MatBlazorSwitchTUShortNull.cs @@ -14,7 +14,7 @@ public class MatBlazorSwitchTUShortNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (ushort?) ((v ?? 0) + (step ?? 0)) : null; return (max.HasValue && v2.HasValue) ? (v2.Value <= max.Value ? v2.Value : max.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return max; } @@ -30,7 +30,7 @@ public class MatBlazorSwitchTUShortNull : MatBlazorSwitchT var v2 = (v.HasValue || step.HasValue) ? (ushort?) ((v ?? 0) - (step ?? 0)) : null; return (min.HasValue && v2.HasValue) ? (v2.Value >= min.Value ? v2.Value : min.Value) : v2; } - catch (OverflowException e) + catch (OverflowException) { return min; } diff --git a/src/MatBlazor/MatBlazor.xml b/src/MatBlazor/MatBlazor.xml index ee84170b..f92508d6 100644 --- a/src/MatBlazor/MatBlazor.xml +++ b/src/MatBlazor/MatBlazor.xml @@ -1134,7 +1134,7 @@ A function that indicates if the given node is expanded or collapsed. - (Optional - if null then the expanded/collapsed state is managed by the ) + (Optional - if null then the expanded/collapsed state is managed by the ) Date: Wed, 23 Nov 2022 15:56:44 +0100 Subject: [PATCH 21/37] Allow input event change for text input elements. --- .../Components/MatTextField/BaseMatInputTextComponent.cs | 3 +++ .../Components/MatTextField/MatInputTextComponent.razor | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs b/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs index 0c215ebf..6fa72347 100644 --- a/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs +++ b/src/MatBlazor/Components/MatTextField/BaseMatInputTextComponent.cs @@ -58,6 +58,9 @@ public abstract class BaseMatInputTextComponent : BaseMatInputTextElemen [Parameter] public bool Disabled { get; set; } + [Parameter] + public string BindEvent { get; set; } = "onchange"; + /// /// When true, it specifies that an input field is read-only. /// diff --git a/src/MatBlazor/Components/MatTextField/MatInputTextComponent.razor b/src/MatBlazor/Components/MatTextField/MatInputTextComponent.razor index 3c1b5840..9f7588bd 100644 --- a/src/MatBlazor/Components/MatTextField/MatInputTextComponent.razor +++ b/src/MatBlazor/Components/MatTextField/MatInputTextComponent.razor @@ -16,11 +16,11 @@ @if (TextArea) { -