features/rewrite/grid #13
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -431,3 +431,8 @@ FodyWeavers.xsd
 | 
				
			|||||||
**.Runner/**
 | 
					**.Runner/**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**.DS_Store
 | 
					**.DS_Store
 | 
				
			||||||
 | 
					/src/Connected.Components/Models/Alert/AlertOptions.cs
 | 
				
			||||||
 | 
					/src/Connected.Components/Components/DatePicker.razor.cs
 | 
				
			||||||
 | 
					/src/Connected.Components/Components/FormWizard.razor
 | 
				
			||||||
 | 
					/src/Connected.Components/Components/FormWizard.razor.cs
 | 
				
			||||||
 | 
					/src/Connected.Components.Showcase.Runner/Program.cs
 | 
				
			||||||
 | 
				
			|||||||
@ -906,12 +906,12 @@
 | 
				
			|||||||
            <!-- TO DO when modal is open add class to body .scroll-disabled-->
 | 
					            <!-- TO DO when modal is open add class to body .scroll-disabled-->
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
            <!-- Button trigger modal -->
 | 
					            <!-- Button trigger modal -->
 | 
				
			||||||
            <button type="button" class="btn btn-primary" @onclick="ToggleNav" data-bs-target="#staticBackdrop">
 | 
					            <button type="button" class="btn btn-primary" @onclick="ToggleModal" data-bs-target="#staticBackdrop">
 | 
				
			||||||
            Launch backdrop modal
 | 
					            Launch backdrop modal
 | 
				
			||||||
            </button>
 | 
					            </button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <!-- Modal -->
 | 
					            <!-- Modal -->
 | 
				
			||||||
            <div class="modal fade @NavClosed" tabindex="-1"> 
 | 
					            <div class="modal fade @ModalShown" tabindex="-1"> 
 | 
				
			||||||
            <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered">
 | 
					            <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered">
 | 
				
			||||||
                <div class="modal-content">
 | 
					                <div class="modal-content">
 | 
				
			||||||
                <div class="modal-header">
 | 
					                <div class="modal-header">
 | 
				
			||||||
@ -922,7 +922,7 @@
 | 
				
			|||||||
                    ssss
 | 
					                    ssss
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div class="modal-footer">
 | 
					                <div class="modal-footer">
 | 
				
			||||||
                    <button type="button" class="btn btn-secondary" @onclick="ToggleNav">Close</button>
 | 
					                                <button type="button" class="btn btn-secondary" @onclick="ToggleModal">Close</button>
 | 
				
			||||||
                    <button type="button" class="btn btn-core">Understood</button>
 | 
					                    <button type="button" class="btn btn-core">Understood</button>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
@ -1119,6 +1119,13 @@
 | 
				
			|||||||
        NavClosed = string.IsNullOrWhiteSpace(NavClosed) ? "show" : "";
 | 
					        NavClosed = string.IsNullOrWhiteSpace(NavClosed) ? "show" : "";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private string ModalShown { get; set; } = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void ToggleModal()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ModalShown = string.IsNullOrWhiteSpace(ModalShown) ? "show" : "";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private string NextSlide { get; set; } = "";
 | 
					    private string NextSlide { get; set; } = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,20 +0,0 @@
 | 
				
			|||||||
using Connected.Components.Showcase.Runner;
 | 
					 | 
				
			||||||
using Microsoft.AspNetCore.Components.Web;
 | 
					 | 
				
			||||||
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
 | 
					 | 
				
			||||||
using Connected.Services;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
internal class Program
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	private static async global::System.Threading.Tasks.Task Main(string[] args)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		var builder = WebAssemblyHostBuilder.CreateDefault(args);
 | 
					 | 
				
			||||||
		builder.RootComponents.Add<App>("#app");
 | 
					 | 
				
			||||||
		builder.RootComponents.Add<HeadOutlet>("head::after");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		builder.Services.AddModalDialogService();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		await builder.Build().RunAsync();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										5
									
								
								src/Connected.Components/Components/Grid.razor
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/Connected.Components/Components/Grid.razor
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					<CascadingValue Value="this">
 | 
				
			||||||
 | 
					    <div class="@GridClass">
 | 
				
			||||||
 | 
					        @ChildContent
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</CascadingValue>
 | 
				
			||||||
							
								
								
									
										41
									
								
								src/Connected.Components/Components/Grid.razor.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/Connected.Components/Components/Grid.razor.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					using Connected.Utilities;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Components;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Connected.Components;
 | 
				
			||||||
 | 
					public partial class Grid: ComponentBase
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public List<GridRow> Rows { get; set; } = new();
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public RenderFragment? ChildContent { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public bool Dense { get; set; } = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public bool ContainsImage { get; set; } = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public bool ShowSelect { get; set; } = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public bool Collapsable { get; set; } = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public string Class { get; set; } = string.Empty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private string GridClass
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							get
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return new CssBuilder("data-grid")
 | 
				
			||||||
 | 
									.AddClass("dense", Dense)
 | 
				
			||||||
 | 
									.AddClass("image", ContainsImage)
 | 
				
			||||||
 | 
									.AddClass("select", ShowSelect)
 | 
				
			||||||
 | 
									.AddClass("collapse", Collapsable)
 | 
				
			||||||
 | 
									.AddClass(Class)
 | 
				
			||||||
 | 
									.Build();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								src/Connected.Components/Components/GridRow.razor
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/Connected.Components/Components/GridRow.razor
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<CascadingValue Value="this">
 | 
				
			||||||
 | 
					    <div class="@GridRowClass">
 | 
				
			||||||
 | 
					        <div class="data-grid-select">
 | 
				
			||||||
 | 
					            <label class="toggle-group m-0" for="toggle-s11">
 | 
				
			||||||
 | 
					                <input class="toggle-input" id="toggle-s11" name="toggle" type="checkbox">
 | 
				
			||||||
 | 
					                <div class="toggle-fill"></div>
 | 
				
			||||||
 | 
					            </label>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div class="data-grid-img">
 | 
				
			||||||
 | 
					            <img class="img-fluid" src="https://source.unsplash.com/random?face" />
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <!-- Row content -->
 | 
				
			||||||
 | 
					        <div class="data-grid-container">
 | 
				
			||||||
 | 
					            @ChildContent
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <div class="data-grid-collapse-cta" @onclick="ToggleNav">
 | 
				
			||||||
 | 
					            <Glyph SVG="@Icons.Material.Filled.KeyboardArrowDown" class="icon-root svg-icon icon-size-md" />
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</CascadingValue>
 | 
				
			||||||
							
								
								
									
										48
									
								
								src/Connected.Components/Components/GridRow.razor.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/Connected.Components/Components/GridRow.razor.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					using Connected.Utilities;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Components;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Connected.Components;
 | 
				
			||||||
 | 
					public partial class GridRow : ComponentBase
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[CascadingParameter]
 | 
				
			||||||
 | 
						public Grid Parent { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public List<GridRowContent> Children { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public RenderFragment? ChildContent { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public bool CollapsedItemShown { get; set; } = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private void ToggleNav()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							CollapsedItemShown = !CollapsedItemShown;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public string Class { get; set; } = string.Empty;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public GridRowTemplate? Template { get; set; } = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private string GridRowClass
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							get
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return new CssBuilder("data-grid-row-content")
 | 
				
			||||||
 | 
									.AddClass("show",CollapsedItemShown)
 | 
				
			||||||
 | 
									.AddClass(Class)
 | 
				
			||||||
 | 
									.Build();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						protected override async Task OnInitializedAsync()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (Parent.Rows is null) Parent.Rows = new();
 | 
				
			||||||
 | 
							Parent.Rows.Add(this);
 | 
				
			||||||
 | 
							await base.OnInitializedAsync();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								src/Connected.Components/Components/GridRowContent.razor
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/Connected.Components/Components/GridRowContent.razor
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					<div class="@GeneratedRowContentClass">
 | 
				
			||||||
 | 
					    @ChildContent
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
							
								
								
									
										46
									
								
								src/Connected.Components/Components/GridRowContent.razor.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/Connected.Components/Components/GridRowContent.razor.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					using Connected.Utilities;
 | 
				
			||||||
 | 
					using Microsoft.AspNetCore.Components;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Connected.Components;
 | 
				
			||||||
 | 
					public partial class GridRowContent : ComponentBase
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						[CascadingParameter]
 | 
				
			||||||
 | 
						public GridRow? Parent { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// Text shown inside the button
 | 
				
			||||||
 | 
						/// Options: any string variable
 | 
				
			||||||
 | 
						/// Default: string.Empty
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public RenderFragment? ChildContent { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/// <summary>
 | 
				
			||||||
 | 
						/// Disabled or enabled.
 | 
				
			||||||
 | 
						/// Default: false
 | 
				
			||||||
 | 
						/// </summary>
 | 
				
			||||||
 | 
						[Parameter]
 | 
				
			||||||
 | 
						public bool Collapsable { get; set; } = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private string GeneratedRowContentClass
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							get
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return new CssBuilder("row")
 | 
				
			||||||
 | 
									.AddClass("collapsed", Collapsable)
 | 
				
			||||||
 | 
									.AddClass("show", (Collapsable ? Parent?.CollapsedItemShown : false))
 | 
				
			||||||
 | 
									.Build();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						protected override async Task OnInitializedAsync()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (Parent is not null)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (Parent.Children is null) Parent.Children = new();
 | 
				
			||||||
 | 
								Parent.Children.Add(this);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							await base.OnInitializedAsync();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								src/connected.components/Models/Alert/AlertOptions.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/connected.components/Models/Alert/AlertOptions.cs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					namespace Connected.Models.Alert;
 | 
				
			||||||
 | 
					public class AlertOptions
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Severity Severity { get; set; } = Severity.Info;
 | 
				
			||||||
 | 
						public bool ShowHeader { get; set; } = true;
 | 
				
			||||||
 | 
						public bool Cancelable { get; set; } = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public AlertOptions()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							Severity = Severity.Info;
 | 
				
			||||||
 | 
							ShowHeader = true;
 | 
				
			||||||
 | 
							Cancelable = true;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public AlertOptions(Severity severity, bool showHeader, bool cancelable)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							Severity = severity;
 | 
				
			||||||
 | 
							ShowHeader = showHeader;
 | 
				
			||||||
 | 
							Cancelable = cancelable;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user