From 77ef254640603a7cfd23fd8fa3468aa1c89c6ed0 Mon Sep 17 00:00:00 2001 From: tfsbuild Date: Thu, 7 Dec 2023 16:52:15 -0500 Subject: [PATCH] Adding changes from build igniteui-xplat-examples-output+PRs_2023.12.7.1 --- .../wwwroot/events.js | 31 +- .../wwwroot/events.js | 2 +- .../column-sorting-indicators/App.razor | 159 ++++++++ .../BlazorClientApp.csproj | 21 ++ .../BlazorClientApp.sln | 25 ++ .../OrdersTreeData.cs | 286 ++++++++++++++ .../column-sorting-indicators/Program.cs | 28 ++ .../Properties/launchSettings.json | 27 ++ .../column-sorting-indicators/_Imports.razor | 9 + .../wwwroot/index.css | 4 + .../wwwroot/index.html | 31 ++ .../column-sorting-options/App.razor | 169 +++++++++ .../BlazorClientApp.csproj | 21 ++ .../BlazorClientApp.sln | 25 ++ .../column-sorting-options/OrdersTreeData.cs | 286 ++++++++++++++ .../column-sorting-options/Program.cs | 30 ++ .../Properties/launchSettings.json | 27 ++ .../column-sorting-options/_Imports.razor | 9 + .../column-sorting-options/wwwroot/index.css | 4 + .../column-sorting-options/wwwroot/index.html | 32 ++ .../tree-grid/column-sorting-style/App.razor | 113 ++++++ .../BlazorClientApp.csproj | 21 ++ .../column-sorting-style/BlazorClientApp.sln | 25 ++ .../column-sorting-style/OrdersTreeData.cs | 286 ++++++++++++++ .../tree-grid/column-sorting-style/Program.cs | 30 ++ .../Properties/launchSettings.json | 27 ++ .../column-sorting-style/_Imports.razor | 9 + .../column-sorting-style/wwwroot/index.css | 10 + .../column-sorting-style/wwwroot/index.html | 31 ++ .../tree-grid/editing-lifecycle/App.razor | 35 +- .../editing-lifecycle/EmployeesFlatData.cs | 219 +++++++++++ .../keyboard-custom-navigation/App.razor | 77 ++++ .../BlazorClientApp.csproj | 21 ++ .../BlazorClientApp.sln | 25 ++ .../EmployeesNestedData.cs | 354 ++++++++++++++++++ .../keyboard-custom-navigation/Program.cs | 30 ++ .../Properties/launchSettings.json | 27 ++ .../keyboard-custom-navigation/_Imports.razor | 9 + .../wwwroot/events.js | 33 ++ .../wwwroot/index.css | 4 + .../wwwroot/index.html | 33 ++ samples/grids/tree-grid/overview/App.razor | 32 +- samples/grids/tree-grid/overview/Program.cs | 3 +- 43 files changed, 2617 insertions(+), 63 deletions(-) create mode 100644 samples/grids/tree-grid/column-sorting-indicators/App.razor create mode 100644 samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.csproj create mode 100644 samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.sln create mode 100644 samples/grids/tree-grid/column-sorting-indicators/OrdersTreeData.cs create mode 100644 samples/grids/tree-grid/column-sorting-indicators/Program.cs create mode 100644 samples/grids/tree-grid/column-sorting-indicators/Properties/launchSettings.json create mode 100644 samples/grids/tree-grid/column-sorting-indicators/_Imports.razor create mode 100644 samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.css create mode 100644 samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.html create mode 100644 samples/grids/tree-grid/column-sorting-options/App.razor create mode 100644 samples/grids/tree-grid/column-sorting-options/BlazorClientApp.csproj create mode 100644 samples/grids/tree-grid/column-sorting-options/BlazorClientApp.sln create mode 100644 samples/grids/tree-grid/column-sorting-options/OrdersTreeData.cs create mode 100644 samples/grids/tree-grid/column-sorting-options/Program.cs create mode 100644 samples/grids/tree-grid/column-sorting-options/Properties/launchSettings.json create mode 100644 samples/grids/tree-grid/column-sorting-options/_Imports.razor create mode 100644 samples/grids/tree-grid/column-sorting-options/wwwroot/index.css create mode 100644 samples/grids/tree-grid/column-sorting-options/wwwroot/index.html create mode 100644 samples/grids/tree-grid/column-sorting-style/App.razor create mode 100644 samples/grids/tree-grid/column-sorting-style/BlazorClientApp.csproj create mode 100644 samples/grids/tree-grid/column-sorting-style/BlazorClientApp.sln create mode 100644 samples/grids/tree-grid/column-sorting-style/OrdersTreeData.cs create mode 100644 samples/grids/tree-grid/column-sorting-style/Program.cs create mode 100644 samples/grids/tree-grid/column-sorting-style/Properties/launchSettings.json create mode 100644 samples/grids/tree-grid/column-sorting-style/_Imports.razor create mode 100644 samples/grids/tree-grid/column-sorting-style/wwwroot/index.css create mode 100644 samples/grids/tree-grid/column-sorting-style/wwwroot/index.html create mode 100644 samples/grids/tree-grid/editing-lifecycle/EmployeesFlatData.cs create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/App.razor create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.csproj create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.sln create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/EmployeesNestedData.cs create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/Program.cs create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/Properties/launchSettings.json create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/_Imports.razor create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/events.js create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.css create mode 100644 samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.html diff --git a/samples/grids/grid/conditional-row-selectors/wwwroot/events.js b/samples/grids/grid/conditional-row-selectors/wwwroot/events.js index 093a36aef2..e448c90d33 100644 --- a/samples/grids/grid/conditional-row-selectors/wwwroot/events.js +++ b/samples/grids/grid/conditional-row-selectors/wwwroot/events.js @@ -1,23 +1,22 @@ igRegisterScript("WebGridRowSelectionConditional", (event) => { - const eventArgs = event.detail; - if (!eventArgs.added.length && eventArgs.removed.length) { - // ignore deselect - return; - } - const originalAddedLength = eventArgs.added.length; + const eventArgs = event.detail; + if (!eventArgs.added.length && eventArgs.removed.length) { + // ignore deselect + return; + } + const originalAddedLength = eventArgs.added.length; - // only allow selection of items that contain 'A' - eventArgs.newSelection = eventArgs.newSelection.filter(x => x.indexOf('A') !== -1); + // only allow selection of items that contain 'A' + eventArgs.newSelection = eventArgs.newSelection.filter(x => x["ID"].indexOf("A") !== -1); - // cleanup selection if all conditionally selectable rows are already selected - if (eventArgs.newSelection.length - && !eventArgs.newSelection.filter(x => eventArgs.oldSelection.indexOf(x) === -1).length - && originalAddedLength > 1) { - // all selected from header, deselect instead - eventArgs.newSelection = []; - } - grid.markForCheck(); + // cleanup selection if all conditionally selectable rows are already selected + if (eventArgs.newSelection.length + && !eventArgs.newSelection.filter(x => eventArgs.oldSelection.indexOf(x) === -1).length + && originalAddedLength > 1) { + // all selected from header, deselect instead + eventArgs.newSelection = []; + } }, false); diff --git a/samples/grids/grid/keyboard-custom-navigation/wwwroot/events.js b/samples/grids/grid/keyboard-custom-navigation/wwwroot/events.js index 4e17473a31..8c35db0e6d 100644 --- a/samples/grids/grid/keyboard-custom-navigation/wwwroot/events.js +++ b/samples/grids/grid/keyboard-custom-navigation/wwwroot/events.js @@ -5,7 +5,7 @@ igRegisterScript("WebGridCustomKBNav", (evtArgs) => { const target = args.target; const evt = args.event; const type = args.targetType; - var grid = document.getElementsByTagName("igc-grid")[0]; + var grid = args.target.grid; if (type === 'dataCell' && target.editMode && evt.key.toLowerCase() === 'tab') { // Value validation for number column. diff --git a/samples/grids/tree-grid/column-sorting-indicators/App.razor b/samples/grids/tree-grid/column-sorting-indicators/App.razor new file mode 100644 index 0000000000..68467a8000 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/App.razor @@ -0,0 +1,159 @@ +@using IgniteUI.Blazor.Controls + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +@code { + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + var grid = this.grid; + var column1 = this.column1; + + } + + private IgbTreeGrid grid; + private IgbSortingExpression[] _sortingExpression1 = null; + public IgbSortingExpression[] SortingExpression1 + { + get + { + if (this._sortingExpression1 == null) + { + var sortingExpression1 = new IgbSortingExpression[7]; + var sortingExpression2 = new IgbSortingExpression(); + sortingExpression2.Dir = SortingDirection.Asc; + sortingExpression2.FieldName = "ID"; + sortingExpression2.IgnoreCase = true; + sortingExpression1[0] = sortingExpression2; + var sortingExpression3 = new IgbSortingExpression(); + sortingExpression3.Dir = SortingDirection.Desc; + sortingExpression3.FieldName = "Name"; + sortingExpression3.IgnoreCase = true; + sortingExpression1[1] = sortingExpression3; + var sortingExpression4 = new IgbSortingExpression(); + sortingExpression4.Dir = SortingDirection.Asc; + sortingExpression4.FieldName = "Category"; + sortingExpression4.IgnoreCase = true; + sortingExpression1[2] = sortingExpression4; + var sortingExpression5 = new IgbSortingExpression(); + sortingExpression5.Dir = SortingDirection.Asc; + sortingExpression5.FieldName = "OrderDate"; + sortingExpression5.IgnoreCase = true; + sortingExpression1[3] = sortingExpression5; + var sortingExpression6 = new IgbSortingExpression(); + sortingExpression6.Dir = SortingDirection.Asc; + sortingExpression6.FieldName = "Price"; + sortingExpression6.IgnoreCase = true; + sortingExpression1[4] = sortingExpression6; + var sortingExpression7 = new IgbSortingExpression(); + sortingExpression7.Dir = SortingDirection.Asc; + sortingExpression7.FieldName = "Units"; + sortingExpression7.IgnoreCase = true; + sortingExpression1[5] = sortingExpression7; + var sortingExpression8 = new IgbSortingExpression(); + sortingExpression8.Dir = SortingDirection.Asc; + sortingExpression8.FieldName = "Delivered"; + sortingExpression8.IgnoreCase = true; + sortingExpression1[6] = sortingExpression8; + this._sortingExpression1 = sortingExpression1; + } + return this._sortingExpression1; + } + } + private IgbColumn column1; + private IgbColumnPipeArgs _columnPipeArgs1 = null; + public IgbColumnPipeArgs ColumnPipeArgs1 + { + get + { + if (this._columnPipeArgs1 == null) + { + var columnPipeArgs1 = new IgbColumnPipeArgs(); + columnPipeArgs1.CurrencyCode = "USD"; + columnPipeArgs1.DigitsInfo = "1.2-2"; + this._columnPipeArgs1 = columnPipeArgs1; + } + return this._columnPipeArgs1; + } + } + + private OrdersTreeData _ordersTreeData = null; + public OrdersTreeData OrdersTreeData + { + get + { + if (_ordersTreeData == null) + { + _ordersTreeData = new OrdersTreeData(); + } + return _ordersTreeData; + } + } + +} \ No newline at end of file diff --git a/samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.csproj b/samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.csproj new file mode 100644 index 0000000000..9e7c3c9644 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.csproj @@ -0,0 +1,21 @@ + + + + net6.0 + 3.0 + Infragistics.Samples + Infragistics.Samples + + + + 1701;1702,IDE0028,BL0005,0219,CS1998 + + + + + + + + + + diff --git a/samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.sln b/samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.sln new file mode 100644 index 0000000000..1e2eda208a --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/BlazorClientApp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorClientApp", "BlazorClientApp.csproj", "{F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FC52AAC8-4488-40AE-9621-75F6BA744B18} + EndGlobalSection +EndGlobal diff --git a/samples/grids/tree-grid/column-sorting-indicators/OrdersTreeData.cs b/samples/grids/tree-grid/column-sorting-indicators/OrdersTreeData.cs new file mode 100644 index 0000000000..9bc1dbf439 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/OrdersTreeData.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections.Generic; +public class OrdersTreeDataItem +{ + public double ID { get; set; } + public double ParentID { get; set; } + public string Name { get; set; } + public string Category { get; set; } + public string OrderDate { get; set; } + public double Units { get; set; } + public double UnitPrice { get; set; } + public double Price { get; set; } + public bool Delivered { get; set; } +} + +public class OrdersTreeData + : List +{ + public OrdersTreeData() + { + this.Add(new OrdersTreeDataItem() + { + ID = 1, + ParentID = -1, + Name = @"Order 1", + Category = @"", + OrderDate = @"2010-02-17", + Units = 1844, + UnitPrice = 3.73, + Price = 6884.38, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 101, + ParentID = 1, + Name = @"Chocolate Chip Cookies", + Category = @"Cookies", + OrderDate = @"2010-02-17", + Units = 834, + UnitPrice = 3.59, + Price = 2994.06, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 102, + ParentID = 1, + Name = @"Red Apples", + Category = @"Fruit", + OrderDate = @"2010-02-17", + Units = 371, + UnitPrice = 3.66, + Price = 1357.86, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 103, + ParentID = 1, + Name = @"Butter", + Category = @"Diary", + OrderDate = @"2010-02-17", + Units = 260, + UnitPrice = 3.45, + Price = 897, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 104, + ParentID = 1, + Name = @"Potato Chips", + Category = @"Snack", + OrderDate = @"2010-02-17", + Units = 118, + UnitPrice = 1.96, + Price = 231.28, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 105, + ParentID = 1, + Name = @"Orange Juice", + Category = @"Beverages", + OrderDate = @"2010-02-17", + Units = 261, + UnitPrice = 5.38, + Price = 1404.18, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 2, + ParentID = -1, + Name = @"Order 2", + Category = @"", + OrderDate = @"2022-05-27", + Units = 1831, + UnitPrice = 8.23, + Price = 15062.77, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 201, + ParentID = 2, + Name = @"Frozen Shrimps", + Category = @"Seafood", + OrderDate = @"2022-05-27", + Units = 120, + UnitPrice = 20.45, + Price = 2454, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 202, + ParentID = 2, + Name = @"Ice Tea", + Category = @"Beverages", + OrderDate = @"2022-05-27", + Units = 840, + UnitPrice = 7, + Price = 5880, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 203, + ParentID = 2, + Name = @"Fresh Cheese", + Category = @"Diary", + OrderDate = @"2022-05-27", + Units = 267, + UnitPrice = 16.55, + Price = 4418.85, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 204, + ParentID = 2, + Name = @"Carrots", + Category = @"Vegetables", + OrderDate = @"2022-05-27", + Units = 360, + UnitPrice = 2.77, + Price = 997.2, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 205, + ParentID = 2, + Name = @"Apple Juice", + Category = @"Beverages", + OrderDate = @"2022-05-27", + Units = 244, + UnitPrice = 5.38, + Price = 1312.72, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 3, + ParentID = -1, + Name = @"Order 3", + Category = @"", + OrderDate = @"2022-08-04", + Units = 1972, + UnitPrice = 3.47, + Price = 6849.18, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 301, + ParentID = 3, + Name = @"Skimmed Milk 1L", + Category = @"Diary", + OrderDate = @"2022-08-04", + Units = 1028, + UnitPrice = 3.56, + Price = 3659.68, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 302, + ParentID = 3, + Name = @"Bananas 5 Pack", + Category = @"Fruit", + OrderDate = @"2022-08-04", + Units = 370, + UnitPrice = 6.36, + Price = 2353.2, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 303, + ParentID = 3, + Name = @"Cauliflower", + Category = @"Vegetables", + OrderDate = @"2022-08-04", + Units = 283, + UnitPrice = 0.95, + Price = 268.85, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 304, + ParentID = 3, + Name = @"White Chocolate Cookies", + Category = @"Cookies", + OrderDate = @"2022-08-04", + Units = 291, + UnitPrice = 1.95, + Price = 567.45, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 4, + ParentID = -1, + Name = @"Order 4", + Category = @"", + OrderDate = @"2023-01-04", + Units = 1065, + UnitPrice = 5.56, + Price = 5923.5, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 401, + ParentID = 4, + Name = @"Mini Milk Chocolate Cookie Bites", + Category = @"Cookies", + OrderDate = @"2023-01-04", + Units = 68, + UnitPrice = 2.25, + Price = 153, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 402, + ParentID = 4, + Name = @"Wild Salmon Fillets", + Category = @"Seafood", + OrderDate = @"2023-01-04", + Units = 320, + UnitPrice = 16.15, + Price = 5168, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 403, + ParentID = 4, + Name = @"Diet Lemonade", + Category = @"Beverages", + OrderDate = @"2023-01-04", + Units = 437, + UnitPrice = 0.5, + Price = 218.5, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 404, + ParentID = 4, + Name = @"Potatos", + Category = @"Vegetables", + OrderDate = @"2023-01-04", + Units = 240, + UnitPrice = 1.6, + Price = 384, + Delivered = true + }); + } +} diff --git a/samples/grids/tree-grid/column-sorting-indicators/Program.cs b/samples/grids/tree-grid/column-sorting-indicators/Program.cs new file mode 100644 index 0000000000..562247181f --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/Program.cs @@ -0,0 +1,28 @@ +using System; +using System.Net.Http; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Text; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using IgniteUI.Blazor.Controls; // for registering Ignite UI modules + +namespace Infragistics.Samples +{ + public class Program + { + public static async Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + builder.RootComponents.Add("app"); + builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + // registering Ignite UI modules + builder.Services.AddIgniteUIBlazor( + typeof(IgbTreeGridModule) + ); + await builder.Build().RunAsync(); + } + } +} diff --git a/samples/grids/tree-grid/column-sorting-indicators/Properties/launchSettings.json b/samples/grids/tree-grid/column-sorting-indicators/Properties/launchSettings.json new file mode 100644 index 0000000000..18bd6fb5bc --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:4200", + "sslPort": 44385 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "BlazorSamples": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:5001;http://localhost:4200" + } + } +} \ No newline at end of file diff --git a/samples/grids/tree-grid/column-sorting-indicators/_Imports.razor b/samples/grids/tree-grid/column-sorting-indicators/_Imports.razor new file mode 100644 index 0000000000..d27d337cb1 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/_Imports.razor @@ -0,0 +1,9 @@ +// these namespaces are global to the app +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using Infragistics.Samples diff --git a/samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.css b/samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.css new file mode 100644 index 0000000000..50ca13caa6 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.css @@ -0,0 +1,4 @@ +/* +CSS styles are loaded from the shared CSS file located at: +https://static.infragistics.com/xplatform/css/samples/ +*/ diff --git a/samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.html b/samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.html new file mode 100644 index 0000000000..dde85b4e54 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-indicators/wwwroot/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + Samples | IgniteUI for Blazor | Infragistics + + + + + + + + + + +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + diff --git a/samples/grids/tree-grid/column-sorting-options/App.razor b/samples/grids/tree-grid/column-sorting-options/App.razor new file mode 100644 index 0000000000..4ab200c741 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/App.razor @@ -0,0 +1,169 @@ +@using IgniteUI.Blazor.Controls + +
+
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +@code { + + private Action BindElements { get; set; } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + var propertyEditor = this.propertyEditor; + var sortingOptionsEditor = this.sortingOptionsEditor; + var propertyEditorPropertyDescription1 = this.propertyEditorPropertyDescription1; + var grid = this.grid; + var column1 = this.column1; + + this.BindElements = () => { + propertyEditor.Target = this.grid; + }; + this.BindElements(); + + } + + private IgbPropertyEditorPanel propertyEditor; + private IgbPropertyEditorPropertyDescription sortingOptionsEditor; + private IgbPropertyEditorPropertyDescription propertyEditorPropertyDescription1; + private IgbTreeGrid grid; + private IgbSortingExpression[] _sortingExpression1 = null; + public IgbSortingExpression[] SortingExpression1 + { + get + { + if (this._sortingExpression1 == null) + { + var sortingExpression1 = new IgbSortingExpression[1]; + var sortingExpression2 = new IgbSortingExpression(); + sortingExpression2.FieldName = "Category"; + sortingExpression2.Dir = SortingDirection.Asc; + sortingExpression2.IgnoreCase = true; + sortingExpression1[0] = sortingExpression2; + this._sortingExpression1 = sortingExpression1; + } + return this._sortingExpression1; + } + } + private IgbColumn column1; + private IgbColumnPipeArgs _columnPipeArgs1 = null; + public IgbColumnPipeArgs ColumnPipeArgs1 + { + get + { + if (this._columnPipeArgs1 == null) + { + var columnPipeArgs1 = new IgbColumnPipeArgs(); + columnPipeArgs1.CurrencyCode = "USD"; + columnPipeArgs1.DigitsInfo = "1.2-2"; + this._columnPipeArgs1 = columnPipeArgs1; + } + return this._columnPipeArgs1; + } + } + + public void WebGridClearSort(IgbPropertyEditorPropertyDescriptionButtonClickEventArgs args) + { + this.grid.ClearSort(""); + } + + private OrdersTreeData _ordersTreeData = null; + public OrdersTreeData OrdersTreeData + { + get + { + if (_ordersTreeData == null) + { + _ordersTreeData = new OrdersTreeData(); + } + return _ordersTreeData; + } + } + +} \ No newline at end of file diff --git a/samples/grids/tree-grid/column-sorting-options/BlazorClientApp.csproj b/samples/grids/tree-grid/column-sorting-options/BlazorClientApp.csproj new file mode 100644 index 0000000000..9e7c3c9644 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/BlazorClientApp.csproj @@ -0,0 +1,21 @@ + + + + net6.0 + 3.0 + Infragistics.Samples + Infragistics.Samples + + + + 1701;1702,IDE0028,BL0005,0219,CS1998 + + + + + + + + + + diff --git a/samples/grids/tree-grid/column-sorting-options/BlazorClientApp.sln b/samples/grids/tree-grid/column-sorting-options/BlazorClientApp.sln new file mode 100644 index 0000000000..1e2eda208a --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/BlazorClientApp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorClientApp", "BlazorClientApp.csproj", "{F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FC52AAC8-4488-40AE-9621-75F6BA744B18} + EndGlobalSection +EndGlobal diff --git a/samples/grids/tree-grid/column-sorting-options/OrdersTreeData.cs b/samples/grids/tree-grid/column-sorting-options/OrdersTreeData.cs new file mode 100644 index 0000000000..9bc1dbf439 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/OrdersTreeData.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections.Generic; +public class OrdersTreeDataItem +{ + public double ID { get; set; } + public double ParentID { get; set; } + public string Name { get; set; } + public string Category { get; set; } + public string OrderDate { get; set; } + public double Units { get; set; } + public double UnitPrice { get; set; } + public double Price { get; set; } + public bool Delivered { get; set; } +} + +public class OrdersTreeData + : List +{ + public OrdersTreeData() + { + this.Add(new OrdersTreeDataItem() + { + ID = 1, + ParentID = -1, + Name = @"Order 1", + Category = @"", + OrderDate = @"2010-02-17", + Units = 1844, + UnitPrice = 3.73, + Price = 6884.38, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 101, + ParentID = 1, + Name = @"Chocolate Chip Cookies", + Category = @"Cookies", + OrderDate = @"2010-02-17", + Units = 834, + UnitPrice = 3.59, + Price = 2994.06, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 102, + ParentID = 1, + Name = @"Red Apples", + Category = @"Fruit", + OrderDate = @"2010-02-17", + Units = 371, + UnitPrice = 3.66, + Price = 1357.86, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 103, + ParentID = 1, + Name = @"Butter", + Category = @"Diary", + OrderDate = @"2010-02-17", + Units = 260, + UnitPrice = 3.45, + Price = 897, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 104, + ParentID = 1, + Name = @"Potato Chips", + Category = @"Snack", + OrderDate = @"2010-02-17", + Units = 118, + UnitPrice = 1.96, + Price = 231.28, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 105, + ParentID = 1, + Name = @"Orange Juice", + Category = @"Beverages", + OrderDate = @"2010-02-17", + Units = 261, + UnitPrice = 5.38, + Price = 1404.18, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 2, + ParentID = -1, + Name = @"Order 2", + Category = @"", + OrderDate = @"2022-05-27", + Units = 1831, + UnitPrice = 8.23, + Price = 15062.77, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 201, + ParentID = 2, + Name = @"Frozen Shrimps", + Category = @"Seafood", + OrderDate = @"2022-05-27", + Units = 120, + UnitPrice = 20.45, + Price = 2454, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 202, + ParentID = 2, + Name = @"Ice Tea", + Category = @"Beverages", + OrderDate = @"2022-05-27", + Units = 840, + UnitPrice = 7, + Price = 5880, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 203, + ParentID = 2, + Name = @"Fresh Cheese", + Category = @"Diary", + OrderDate = @"2022-05-27", + Units = 267, + UnitPrice = 16.55, + Price = 4418.85, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 204, + ParentID = 2, + Name = @"Carrots", + Category = @"Vegetables", + OrderDate = @"2022-05-27", + Units = 360, + UnitPrice = 2.77, + Price = 997.2, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 205, + ParentID = 2, + Name = @"Apple Juice", + Category = @"Beverages", + OrderDate = @"2022-05-27", + Units = 244, + UnitPrice = 5.38, + Price = 1312.72, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 3, + ParentID = -1, + Name = @"Order 3", + Category = @"", + OrderDate = @"2022-08-04", + Units = 1972, + UnitPrice = 3.47, + Price = 6849.18, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 301, + ParentID = 3, + Name = @"Skimmed Milk 1L", + Category = @"Diary", + OrderDate = @"2022-08-04", + Units = 1028, + UnitPrice = 3.56, + Price = 3659.68, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 302, + ParentID = 3, + Name = @"Bananas 5 Pack", + Category = @"Fruit", + OrderDate = @"2022-08-04", + Units = 370, + UnitPrice = 6.36, + Price = 2353.2, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 303, + ParentID = 3, + Name = @"Cauliflower", + Category = @"Vegetables", + OrderDate = @"2022-08-04", + Units = 283, + UnitPrice = 0.95, + Price = 268.85, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 304, + ParentID = 3, + Name = @"White Chocolate Cookies", + Category = @"Cookies", + OrderDate = @"2022-08-04", + Units = 291, + UnitPrice = 1.95, + Price = 567.45, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 4, + ParentID = -1, + Name = @"Order 4", + Category = @"", + OrderDate = @"2023-01-04", + Units = 1065, + UnitPrice = 5.56, + Price = 5923.5, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 401, + ParentID = 4, + Name = @"Mini Milk Chocolate Cookie Bites", + Category = @"Cookies", + OrderDate = @"2023-01-04", + Units = 68, + UnitPrice = 2.25, + Price = 153, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 402, + ParentID = 4, + Name = @"Wild Salmon Fillets", + Category = @"Seafood", + OrderDate = @"2023-01-04", + Units = 320, + UnitPrice = 16.15, + Price = 5168, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 403, + ParentID = 4, + Name = @"Diet Lemonade", + Category = @"Beverages", + OrderDate = @"2023-01-04", + Units = 437, + UnitPrice = 0.5, + Price = 218.5, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 404, + ParentID = 4, + Name = @"Potatos", + Category = @"Vegetables", + OrderDate = @"2023-01-04", + Units = 240, + UnitPrice = 1.6, + Price = 384, + Delivered = true + }); + } +} diff --git a/samples/grids/tree-grid/column-sorting-options/Program.cs b/samples/grids/tree-grid/column-sorting-options/Program.cs new file mode 100644 index 0000000000..a3ed438f48 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/Program.cs @@ -0,0 +1,30 @@ +using System; +using System.Net.Http; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Text; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using IgniteUI.Blazor.Controls; // for registering Ignite UI modules + +namespace Infragistics.Samples +{ + public class Program + { + public static async Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + builder.RootComponents.Add("app"); + builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + // registering Ignite UI modules + builder.Services.AddIgniteUIBlazor( + typeof(IgbInputModule), + typeof(IgbPropertyEditorPanelModule), + typeof(IgbTreeGridModule) + ); + await builder.Build().RunAsync(); + } + } +} diff --git a/samples/grids/tree-grid/column-sorting-options/Properties/launchSettings.json b/samples/grids/tree-grid/column-sorting-options/Properties/launchSettings.json new file mode 100644 index 0000000000..18bd6fb5bc --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:4200", + "sslPort": 44385 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "BlazorSamples": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:5001;http://localhost:4200" + } + } +} \ No newline at end of file diff --git a/samples/grids/tree-grid/column-sorting-options/_Imports.razor b/samples/grids/tree-grid/column-sorting-options/_Imports.razor new file mode 100644 index 0000000000..d27d337cb1 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/_Imports.razor @@ -0,0 +1,9 @@ +// these namespaces are global to the app +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using Infragistics.Samples diff --git a/samples/grids/tree-grid/column-sorting-options/wwwroot/index.css b/samples/grids/tree-grid/column-sorting-options/wwwroot/index.css new file mode 100644 index 0000000000..50ca13caa6 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/wwwroot/index.css @@ -0,0 +1,4 @@ +/* +CSS styles are loaded from the shared CSS file located at: +https://static.infragistics.com/xplatform/css/samples/ +*/ diff --git a/samples/grids/tree-grid/column-sorting-options/wwwroot/index.html b/samples/grids/tree-grid/column-sorting-options/wwwroot/index.html new file mode 100644 index 0000000000..60e3d9d5a3 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-options/wwwroot/index.html @@ -0,0 +1,32 @@ + + + + + + + + + + Samples | IgniteUI for Blazor | Infragistics + + + + + + + + + + + +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + diff --git a/samples/grids/tree-grid/column-sorting-style/App.razor b/samples/grids/tree-grid/column-sorting-style/App.razor new file mode 100644 index 0000000000..6367ba87b4 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/App.razor @@ -0,0 +1,113 @@ +@using IgniteUI.Blazor.Controls + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +@code { + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + var grid = this.grid; + var column1 = this.column1; + + } + + private IgbTreeGrid grid; + private IgbColumn column1; + private IgbColumnPipeArgs _columnPipeArgs1 = null; + public IgbColumnPipeArgs ColumnPipeArgs1 + { + get + { + if (this._columnPipeArgs1 == null) + { + var columnPipeArgs1 = new IgbColumnPipeArgs(); + columnPipeArgs1.CurrencyCode = "USD"; + columnPipeArgs1.DigitsInfo = "1.2-2"; + this._columnPipeArgs1 = columnPipeArgs1; + } + return this._columnPipeArgs1; + } + } + + private OrdersTreeData _ordersTreeData = null; + public OrdersTreeData OrdersTreeData + { + get + { + if (_ordersTreeData == null) + { + _ordersTreeData = new OrdersTreeData(); + } + return _ordersTreeData; + } + } + +} \ No newline at end of file diff --git a/samples/grids/tree-grid/column-sorting-style/BlazorClientApp.csproj b/samples/grids/tree-grid/column-sorting-style/BlazorClientApp.csproj new file mode 100644 index 0000000000..9e7c3c9644 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/BlazorClientApp.csproj @@ -0,0 +1,21 @@ + + + + net6.0 + 3.0 + Infragistics.Samples + Infragistics.Samples + + + + 1701;1702,IDE0028,BL0005,0219,CS1998 + + + + + + + + + + diff --git a/samples/grids/tree-grid/column-sorting-style/BlazorClientApp.sln b/samples/grids/tree-grid/column-sorting-style/BlazorClientApp.sln new file mode 100644 index 0000000000..1e2eda208a --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/BlazorClientApp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorClientApp", "BlazorClientApp.csproj", "{F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FC52AAC8-4488-40AE-9621-75F6BA744B18} + EndGlobalSection +EndGlobal diff --git a/samples/grids/tree-grid/column-sorting-style/OrdersTreeData.cs b/samples/grids/tree-grid/column-sorting-style/OrdersTreeData.cs new file mode 100644 index 0000000000..9bc1dbf439 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/OrdersTreeData.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections.Generic; +public class OrdersTreeDataItem +{ + public double ID { get; set; } + public double ParentID { get; set; } + public string Name { get; set; } + public string Category { get; set; } + public string OrderDate { get; set; } + public double Units { get; set; } + public double UnitPrice { get; set; } + public double Price { get; set; } + public bool Delivered { get; set; } +} + +public class OrdersTreeData + : List +{ + public OrdersTreeData() + { + this.Add(new OrdersTreeDataItem() + { + ID = 1, + ParentID = -1, + Name = @"Order 1", + Category = @"", + OrderDate = @"2010-02-17", + Units = 1844, + UnitPrice = 3.73, + Price = 6884.38, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 101, + ParentID = 1, + Name = @"Chocolate Chip Cookies", + Category = @"Cookies", + OrderDate = @"2010-02-17", + Units = 834, + UnitPrice = 3.59, + Price = 2994.06, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 102, + ParentID = 1, + Name = @"Red Apples", + Category = @"Fruit", + OrderDate = @"2010-02-17", + Units = 371, + UnitPrice = 3.66, + Price = 1357.86, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 103, + ParentID = 1, + Name = @"Butter", + Category = @"Diary", + OrderDate = @"2010-02-17", + Units = 260, + UnitPrice = 3.45, + Price = 897, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 104, + ParentID = 1, + Name = @"Potato Chips", + Category = @"Snack", + OrderDate = @"2010-02-17", + Units = 118, + UnitPrice = 1.96, + Price = 231.28, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 105, + ParentID = 1, + Name = @"Orange Juice", + Category = @"Beverages", + OrderDate = @"2010-02-17", + Units = 261, + UnitPrice = 5.38, + Price = 1404.18, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 2, + ParentID = -1, + Name = @"Order 2", + Category = @"", + OrderDate = @"2022-05-27", + Units = 1831, + UnitPrice = 8.23, + Price = 15062.77, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 201, + ParentID = 2, + Name = @"Frozen Shrimps", + Category = @"Seafood", + OrderDate = @"2022-05-27", + Units = 120, + UnitPrice = 20.45, + Price = 2454, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 202, + ParentID = 2, + Name = @"Ice Tea", + Category = @"Beverages", + OrderDate = @"2022-05-27", + Units = 840, + UnitPrice = 7, + Price = 5880, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 203, + ParentID = 2, + Name = @"Fresh Cheese", + Category = @"Diary", + OrderDate = @"2022-05-27", + Units = 267, + UnitPrice = 16.55, + Price = 4418.85, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 204, + ParentID = 2, + Name = @"Carrots", + Category = @"Vegetables", + OrderDate = @"2022-05-27", + Units = 360, + UnitPrice = 2.77, + Price = 997.2, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 205, + ParentID = 2, + Name = @"Apple Juice", + Category = @"Beverages", + OrderDate = @"2022-05-27", + Units = 244, + UnitPrice = 5.38, + Price = 1312.72, + Delivered = false + }); + this.Add(new OrdersTreeDataItem() + { + ID = 3, + ParentID = -1, + Name = @"Order 3", + Category = @"", + OrderDate = @"2022-08-04", + Units = 1972, + UnitPrice = 3.47, + Price = 6849.18, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 301, + ParentID = 3, + Name = @"Skimmed Milk 1L", + Category = @"Diary", + OrderDate = @"2022-08-04", + Units = 1028, + UnitPrice = 3.56, + Price = 3659.68, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 302, + ParentID = 3, + Name = @"Bananas 5 Pack", + Category = @"Fruit", + OrderDate = @"2022-08-04", + Units = 370, + UnitPrice = 6.36, + Price = 2353.2, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 303, + ParentID = 3, + Name = @"Cauliflower", + Category = @"Vegetables", + OrderDate = @"2022-08-04", + Units = 283, + UnitPrice = 0.95, + Price = 268.85, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 304, + ParentID = 3, + Name = @"White Chocolate Cookies", + Category = @"Cookies", + OrderDate = @"2022-08-04", + Units = 291, + UnitPrice = 1.95, + Price = 567.45, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 4, + ParentID = -1, + Name = @"Order 4", + Category = @"", + OrderDate = @"2023-01-04", + Units = 1065, + UnitPrice = 5.56, + Price = 5923.5, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 401, + ParentID = 4, + Name = @"Mini Milk Chocolate Cookie Bites", + Category = @"Cookies", + OrderDate = @"2023-01-04", + Units = 68, + UnitPrice = 2.25, + Price = 153, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 402, + ParentID = 4, + Name = @"Wild Salmon Fillets", + Category = @"Seafood", + OrderDate = @"2023-01-04", + Units = 320, + UnitPrice = 16.15, + Price = 5168, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 403, + ParentID = 4, + Name = @"Diet Lemonade", + Category = @"Beverages", + OrderDate = @"2023-01-04", + Units = 437, + UnitPrice = 0.5, + Price = 218.5, + Delivered = true + }); + this.Add(new OrdersTreeDataItem() + { + ID = 404, + ParentID = 4, + Name = @"Potatos", + Category = @"Vegetables", + OrderDate = @"2023-01-04", + Units = 240, + UnitPrice = 1.6, + Price = 384, + Delivered = true + }); + } +} diff --git a/samples/grids/tree-grid/column-sorting-style/Program.cs b/samples/grids/tree-grid/column-sorting-style/Program.cs new file mode 100644 index 0000000000..a3ed438f48 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/Program.cs @@ -0,0 +1,30 @@ +using System; +using System.Net.Http; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Text; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using IgniteUI.Blazor.Controls; // for registering Ignite UI modules + +namespace Infragistics.Samples +{ + public class Program + { + public static async Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + builder.RootComponents.Add("app"); + builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + // registering Ignite UI modules + builder.Services.AddIgniteUIBlazor( + typeof(IgbInputModule), + typeof(IgbPropertyEditorPanelModule), + typeof(IgbTreeGridModule) + ); + await builder.Build().RunAsync(); + } + } +} diff --git a/samples/grids/tree-grid/column-sorting-style/Properties/launchSettings.json b/samples/grids/tree-grid/column-sorting-style/Properties/launchSettings.json new file mode 100644 index 0000000000..18bd6fb5bc --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:4200", + "sslPort": 44385 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "BlazorSamples": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:5001;http://localhost:4200" + } + } +} \ No newline at end of file diff --git a/samples/grids/tree-grid/column-sorting-style/_Imports.razor b/samples/grids/tree-grid/column-sorting-style/_Imports.razor new file mode 100644 index 0000000000..d27d337cb1 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/_Imports.razor @@ -0,0 +1,9 @@ +// these namespaces are global to the app +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using Infragistics.Samples diff --git a/samples/grids/tree-grid/column-sorting-style/wwwroot/index.css b/samples/grids/tree-grid/column-sorting-style/wwwroot/index.css new file mode 100644 index 0000000000..6b687ab559 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/wwwroot/index.css @@ -0,0 +1,10 @@ +/* +CSS styles are loaded from the shared CSS file located at: +https://static.infragistics.com/xplatform/css/samples/ +*/ + +#grid { + --ig-grid-sorted-header-icon-color: #ffb06a; + --ig-grid-sortable-header-icon-hover-color: black; +} + diff --git a/samples/grids/tree-grid/column-sorting-style/wwwroot/index.html b/samples/grids/tree-grid/column-sorting-style/wwwroot/index.html new file mode 100644 index 0000000000..dde85b4e54 --- /dev/null +++ b/samples/grids/tree-grid/column-sorting-style/wwwroot/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + Samples | IgniteUI for Blazor | Infragistics + + + + + + + + + + +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + diff --git a/samples/grids/tree-grid/editing-lifecycle/App.razor b/samples/grids/tree-grid/editing-lifecycle/App.razor index 81829b9a13..6835edf6c7 100644 --- a/samples/grids/tree-grid/editing-lifecycle/App.razor +++ b/samples/grids/tree-grid/editing-lifecycle/App.razor @@ -6,12 +6,13 @@
+ Field="Name" + DataType="GridColumnDataType.String" + Editable="true"> + Field="Title" + Header="Job Title" + DataType="GridColumnDataType.String" + Editable="true"> - - - + Field="Age" + DataType="GridColumnDataType.Number" + Editable="true"> @@ -55,16 +56,16 @@ private IgbTreeGrid grid; - private NwindData _nwindData = null; - public NwindData NwindData + private EmployeesFlatData _employeesFlatData = null; + public EmployeesFlatData EmployeesFlatData { get { - if (_nwindData == null) + if (_employeesFlatData == null) { - _nwindData = new NwindData(); + _employeesFlatData = new EmployeesFlatData(); } - return _nwindData; + return _employeesFlatData; } } diff --git a/samples/grids/tree-grid/editing-lifecycle/EmployeesFlatData.cs b/samples/grids/tree-grid/editing-lifecycle/EmployeesFlatData.cs new file mode 100644 index 0000000000..a6cec287aa --- /dev/null +++ b/samples/grids/tree-grid/editing-lifecycle/EmployeesFlatData.cs @@ -0,0 +1,219 @@ +using System; +using System.Collections.Generic; +public class EmployeesFlatDataItem +{ + public double Age { get; set; } + public string HireDate { get; set; } + public double ID { get; set; } + public string Name { get; set; } + public string Phone { get; set; } + public bool OnPTO { get; set; } + public double ParentID { get; set; } + public string Title { get; set; } +} + +public class EmployeesFlatData + : List +{ + public EmployeesFlatData() + { + this.Add(new EmployeesFlatDataItem() + { + Age = 55, + HireDate = @"2008, 3, 20", + ID = 1, + Name = @"Johnathan Winchester", + Phone = @"0251-031259", + OnPTO = false, + ParentID = -1, + Title = @"Development Manager" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 42, + HireDate = @"2014, 1, 22", + ID = 4, + Name = @"Ana Sanders", + Phone = @"(21) 555-0091", + OnPTO = true, + ParentID = -1, + Title = @"CEO" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 49, + HireDate = @"2014, 1, 22", + ID = 18, + Name = @"Victoria Lincoln", + Phone = @"(071) 23 67 22 20", + OnPTO = true, + ParentID = -1, + Title = @"Accounting Manager" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 61, + HireDate = @"2010, 1, 1", + ID = 10, + Name = @"Yang Wang", + Phone = @"(21) 555-0091", + OnPTO = false, + ParentID = -1, + Title = @"Localization Manager" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 43, + HireDate = @"2011, 6, 3", + ID = 3, + Name = @"Michael Burke", + Phone = @"0452-076545", + OnPTO = true, + ParentID = 1, + Title = @"Senior Software Developer" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 29, + HireDate = @"2009, 6, 19", + ID = 2, + Name = @"Thomas Anderson", + Phone = @"(14) 555-8122", + OnPTO = false, + ParentID = 1, + Title = @"Senior Software Developer" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 31, + HireDate = @"2014, 8, 18", + ID = 11, + Name = @"Monica Reyes", + Phone = @"7675-3425", + OnPTO = false, + ParentID = 1, + Title = @"Software Development Team Lead" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 35, + HireDate = @"2015, 9, 17", + ID = 6, + Name = @"Roland Mendel", + Phone = @"(505) 555-5939", + OnPTO = false, + ParentID = 11, + Title = @"Senior Software Developer" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 44, + HireDate = @"2009, 10, 11", + ID = 12, + Name = @"Sven Cooper", + Phone = @"0695-34 67 21", + OnPTO = true, + ParentID = 11, + Title = @"Senior Software Developer" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 44, + HireDate = @"2014, 4, 4", + ID = 14, + Name = @"Laurence Johnson", + Phone = @"981-443655", + OnPTO = false, + ParentID = 4, + Title = @"Director" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 25, + HireDate = @"2017, 11, 9", + ID = 5, + Name = @"Elizabeth Richards", + Phone = @"(2) 283-2951", + OnPTO = true, + ParentID = 4, + Title = @"Vice President" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 39, + HireDate = @"2010, 3, 22", + ID = 13, + Name = @"Trevor Ashworth", + Phone = @"981-443655", + OnPTO = true, + ParentID = 5, + Title = @"Director" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 44, + HireDate = @"2014, 4, 4", + ID = 17, + Name = @"Antonio Moreno", + Phone = @"(505) 555-5939", + OnPTO = false, + ParentID = 18, + Title = @"Senior Accountant" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 50, + HireDate = @"2007, 11, 18", + ID = 7, + Name = @"Pedro Rodriguez", + Phone = @"035-640230", + OnPTO = false, + ParentID = 10, + Title = @"Senior Localization Developer" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 27, + HireDate = @"2016, 2, 19", + ID = 8, + Name = @"Casey Harper", + Phone = @"0342-023176", + OnPTO = true, + ParentID = 10, + Title = @"Senior Localization" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 25, + HireDate = @"2017, 11, 9", + ID = 15, + Name = @"Patricia Simpson", + Phone = @"069-0245984", + OnPTO = false, + ParentID = 7, + Title = @"Localization Intern" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 39, + HireDate = @"2010, 3, 22", + ID = 9, + Name = @"Francisco Chang", + Phone = @"(91) 745 6200", + OnPTO = false, + ParentID = 7, + Title = @"Localization Intern" + }); + this.Add(new EmployeesFlatDataItem() + { + Age = 25, + HireDate = @"2018, 3, 18", + ID = 16, + Name = @"Peter Lewis", + Phone = @"069-0245984", + OnPTO = true, + ParentID = 7, + Title = @"Localization Intern" + }); + } +} diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/App.razor b/samples/grids/tree-grid/keyboard-custom-navigation/App.razor new file mode 100644 index 0000000000..86df305172 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/App.razor @@ -0,0 +1,77 @@ +@using IgniteUI.Blazor.Controls + +@inject IJSRuntime JS + +
+
+ + + + + + + + + + + + + + + +
+
+ +@code { + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + var treeGrid = this.treeGrid; + + } + + private IgbTreeGrid treeGrid; + + private EmployeesNestedData _employeesNestedData = null; + public EmployeesNestedData EmployeesNestedData + { + get + { + if (_employeesNestedData == null) + { + _employeesNestedData = new EmployeesNestedData(); + } + return _employeesNestedData; + } + } + +} \ No newline at end of file diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.csproj b/samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.csproj new file mode 100644 index 0000000000..9e7c3c9644 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.csproj @@ -0,0 +1,21 @@ + + + + net6.0 + 3.0 + Infragistics.Samples + Infragistics.Samples + + + + 1701;1702,IDE0028,BL0005,0219,CS1998 + + + + + + + + + + diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.sln b/samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.sln new file mode 100644 index 0000000000..1e2eda208a --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/BlazorClientApp.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29613.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorClientApp", "BlazorClientApp.csproj", "{F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F69CC3F0-BCD1-4CE6-9F39-CBED14E7FA78}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FC52AAC8-4488-40AE-9621-75F6BA744B18} + EndGlobalSection +EndGlobal diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/EmployeesNestedData.cs b/samples/grids/tree-grid/keyboard-custom-navigation/EmployeesNestedData.cs new file mode 100644 index 0000000000..f005a72780 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/EmployeesNestedData.cs @@ -0,0 +1,354 @@ +using System; +using System.Collections.Generic; +public class EmployeesNestedDataItem +{ + public double ID { get; set; } + public double Age { get; set; } + public double Salary { get; set; } + public double Productivity { get; set; } + public string City { get; set; } + public string Country { get; set; } + public string Phone { get; set; } + public string HireDate { get; set; } + public string Name { get; set; } + public string Title { get; set; } + public List Employees { get; set; } +} +public class EmployeesNestedDataItem_EmployeesItem +{ + public double Age { get; set; } + public double Salary { get; set; } + public double Productivity { get; set; } + public string City { get; set; } + public string Country { get; set; } + public string Phone { get; set; } + public string HireDate { get; set; } + public double ID { get; set; } + public string Name { get; set; } + public string Title { get; set; } +} + +public class EmployeesNestedData + : List +{ + public EmployeesNestedData() + { + this.Add(new EmployeesNestedDataItem() + { + ID = 1, + Age = 55, + Salary = 80000, + Productivity = 90, + City = @"Berlin", + Country = @"Germany", + Phone = @"609-202-505", + HireDate = @"2008, 3, 20", + Name = @"John Winchester", + Title = @"Development Manager", + Employees = new List() + { + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 43, + Salary = 70000, + Productivity = 80, + City = @"Hamburg", + Country = @"Germany", + Phone = @"609-444-555", + HireDate = @"2011, 6, 3", + ID = 3, + Name = @"Michael Burke", + Title = @"Senior Software Developer" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 29, + Salary = 60000, + Productivity = 80, + City = @"Munich", + Country = @"Germany", + Phone = @"609-333-444", + HireDate = @"2009, 6, 19", + ID = 2, + Name = @"Thomas Anderson", + Title = @"Senior Software Developer" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 31, + Salary = 90000, + Productivity = 80, + City = @"Warasw", + Country = @"Poland", + Phone = @"609-222-205", + HireDate = @"2014, 8, 18", + ID = 11, + Name = @"Monica Reyes", + Title = @"Software Development Team Lead" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 35, + Salary = 70000, + Productivity = 70, + City = @"Koln", + Country = @"Germany", + Phone = @"609-502-525", + HireDate = @"2015, 9, 17", + ID = 6, + Name = @"Roland Mendel", + Title = @"Senior Software Developer" + }} + + }); + this.Add(new EmployeesNestedDataItem() + { + ID = 4, + Age = 42, + Salary = 90000, + Productivity = 80, + City = @"Kielce", + Country = @"Poland", + Phone = @"609-202-505", + HireDate = @"2014, 1, 22", + Name = @"Ana Sanders", + Title = @"CEO", + Employees = new List() + { + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 44, + Salary = 80000, + Productivity = 80, + City = @"Warasw", + Country = @"Poland", + Phone = @"609-202-505", + HireDate = @"2014, 4, 4", + ID = 14, + Name = @"Laurence Johnson", + Title = @"Director" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 25, + Salary = 85000, + Productivity = 55, + City = @"Paris", + Country = @"France", + Phone = @"609-202-505", + HireDate = @"2017, 11, 9", + ID = 5, + Name = @"Elizabeth Richards", + Title = @"Vice President" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 39, + Salary = 88000, + Productivity = 88, + City = @"London", + Country = @"UK", + Phone = @"609-202-505", + HireDate = @"2010, 3, 22", + ID = 13, + Name = @"Trevor Ashworth", + Title = @"Director" + }} + + }); + this.Add(new EmployeesNestedDataItem() + { + ID = 18, + Age = 49, + Salary = 77000, + Productivity = 70, + City = @"Manchester", + Country = @"UK", + Phone = @"222-555-577", + HireDate = @"2014, 1, 22", + Name = @"Victoria Lincoln", + Title = @"Senior Accountant", + Employees = new List() + { + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 43, + Salary = 70000, + Productivity = 80, + City = @"Hamburg", + Country = @"Germany", + Phone = @"609-444-555", + HireDate = @"2011, 6, 3", + ID = 23, + Name = @"Thomas Burke", + Title = @"Senior Accountant" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 29, + Salary = 60000, + Productivity = 80, + City = @"Munich", + Country = @"Germany", + Phone = @"609-333-444", + HireDate = @"2009, 6, 19", + ID = 22, + Name = @"Michael Anderson", + Title = @"Junior Accountant" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 31, + Salary = 90000, + Productivity = 80, + City = @"Warasw", + Country = @"Poland", + Phone = @"609-222-205", + HireDate = @"2014, 8, 18", + ID = 21, + Name = @"Roland Reyes", + Title = @"Accountant Team Lead" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 35, + Salary = 70000, + Productivity = 70, + City = @"Koln", + Country = @"Germany", + Phone = @"609-502-525", + HireDate = @"2015, 9, 17", + ID = 24, + Name = @"Monica Mendel", + Title = @"Senior Software Developer" + }} + + }); + this.Add(new EmployeesNestedDataItem() + { + ID = 10, + Age = 61, + Salary = 85000, + Productivity = 890, + City = @"Lyon", + Country = @"France", + Phone = @"259-266-887", + HireDate = @"2010, 1, 1", + Name = @"Yang Wang", + Title = @"Localization Developer", + Employees = new List() + { + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 31, + Salary = 90000, + Productivity = 80, + City = @"Warasw", + Country = @"Poland", + Phone = @"609-222-205", + HireDate = @"2014, 8, 18", + ID = 11, + Name = @"Monica Reyes", + Title = @"Software Development Team Lead" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 35, + Salary = 70000, + Productivity = 70, + City = @"Koln", + Country = @"Germany", + Phone = @"609-502-525", + HireDate = @"2015, 9, 17", + ID = 6, + Name = @"Roland Mendel", + Title = @"Senior Software Developer" + }} + + }); + this.Add(new EmployeesNestedDataItem() + { + ID = 35, + Age = 35, + Salary = 75000, + Productivity = 75, + City = @"Warasw", + Country = @"Poland", + Phone = @"688-244-844", + HireDate = @"2014, 1, 22", + Name = @"Janine Munoz", + Title = @"HR", + Employees = new List() + { + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 43, + Salary = 70000, + Productivity = 80, + City = @"Hamburg", + Country = @"Germany", + Phone = @"609-444-555", + HireDate = @"2011, 6, 3", + ID = 3, + Name = @"Michael Burke", + Title = @"Senior Software Developer" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 31, + Salary = 90000, + Productivity = 80, + City = @"Warasw", + Country = @"Poland", + Phone = @"609-222-205", + HireDate = @"2014, 8, 18", + ID = 11, + Name = @"Monica Reyes", + Title = @"Software Development Team Lead" + }} + + }); + this.Add(new EmployeesNestedDataItem() + { + ID = 10, + Age = 49, + Salary = 95000, + Productivity = 80, + City = @"Krakow", + Country = @"Poland", + Phone = @"677-266-555", + HireDate = @"2010, 1, 1", + Name = @"Yang Wang", + Title = @"Sales Manager", + Employees = new List() + { + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 29, + Salary = 60000, + Productivity = 80, + City = @"Munich", + Country = @"Germany", + Phone = @"609-333-444", + HireDate = @"2009, 6, 19", + ID = 2, + Name = @"Thomas Anderson", + Title = @"Senior Software Developer" + }, + new EmployeesNestedDataItem_EmployeesItem() + { + Age = 35, + Salary = 70000, + Productivity = 70, + City = @"Koln", + Country = @"Germany", + Phone = @"609-502-525", + HireDate = @"2015, 9, 17", + ID = 6, + Name = @"Roland Mendel", + Title = @"Senior Software Developer" + }} + + }); + } +} diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/Program.cs b/samples/grids/tree-grid/keyboard-custom-navigation/Program.cs new file mode 100644 index 0000000000..a3ed438f48 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/Program.cs @@ -0,0 +1,30 @@ +using System; +using System.Net.Http; +using System.Collections.Generic; +using System.Threading.Tasks; +using System.Text; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using IgniteUI.Blazor.Controls; // for registering Ignite UI modules + +namespace Infragistics.Samples +{ + public class Program + { + public static async Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + builder.RootComponents.Add("app"); + builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + // registering Ignite UI modules + builder.Services.AddIgniteUIBlazor( + typeof(IgbInputModule), + typeof(IgbPropertyEditorPanelModule), + typeof(IgbTreeGridModule) + ); + await builder.Build().RunAsync(); + } + } +} diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/Properties/launchSettings.json b/samples/grids/tree-grid/keyboard-custom-navigation/Properties/launchSettings.json new file mode 100644 index 0000000000..18bd6fb5bc --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:4200", + "sslPort": 44385 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "BlazorSamples": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:5001;http://localhost:4200" + } + } +} \ No newline at end of file diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/_Imports.razor b/samples/grids/tree-grid/keyboard-custom-navigation/_Imports.razor new file mode 100644 index 0000000000..d27d337cb1 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/_Imports.razor @@ -0,0 +1,9 @@ +// these namespaces are global to the app +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using Infragistics.Samples diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/events.js b/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/events.js new file mode 100644 index 0000000000..8c35db0e6d --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/events.js @@ -0,0 +1,33 @@ + + +igRegisterScript("WebGridCustomKBNav", (evtArgs) => { + const args = evtArgs.detail; + const target = args.target; + const evt = args.event; + const type = args.targetType; + var grid = args.target.grid; + + if (type === 'dataCell' && target.editMode && evt.key.toLowerCase() === 'tab') { + // Value validation for number column. + // This covers both 'tab' and 'shift+tab' key interactions. + args.event.preventDefault(); + args.cancel = true; + if (target.column.dataType === 'number' && target.editValue < 10) { + alert('The value should be bigger than 10'); + return; + } + const cell = evt.shiftKey ? + grid.getPreviousCell(target.row.index, target.column.visibleIndex, (col) => col.editable) : + grid.getNextCell(target.row.index, target.column.visibleIndex, (col) => col.editable); + + grid.navigateTo(cell.rowIndex, cell.visibleColumnIndex, + (obj) => { obj.target.activate(); }); + } else if (type === 'dataCell' && evt.key.toLowerCase() === 'enter') { + // Perform column based kb navigation with 'enter' key press + args.cancel = true; + grid.navigateTo(target.row.index + 1, target.column.visibleIndex, (obj) => { + obj.target.activate(); + }); + } +}, false); + diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.css b/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.css new file mode 100644 index 0000000000..50ca13caa6 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.css @@ -0,0 +1,4 @@ +/* +CSS styles are loaded from the shared CSS file located at: +https://static.infragistics.com/xplatform/css/samples/ +*/ diff --git a/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.html b/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.html new file mode 100644 index 0000000000..6ea07bab27 --- /dev/null +++ b/samples/grids/tree-grid/keyboard-custom-navigation/wwwroot/index.html @@ -0,0 +1,33 @@ + + + + + + + + + + Samples | IgniteUI for Blazor | Infragistics + + + + + + + + + + +
+ An unhandled error has occurred. + Reload + 🗙 +
+ + + + + + + + diff --git a/samples/grids/tree-grid/overview/App.razor b/samples/grids/tree-grid/overview/App.razor index bc90f1f4d1..acd442a0c8 100644 --- a/samples/grids/tree-grid/overview/App.razor +++ b/samples/grids/tree-grid/overview/App.razor @@ -13,6 +13,10 @@ Moving="true" AllowFiltering="true" FilterMode="FilterMode.ExcelStyleFilter"> + + + - - - - - - - - -
diff --git a/samples/grids/tree-grid/overview/Program.cs b/samples/grids/tree-grid/overview/Program.cs index a3ed438f48..4d148ce3d3 100644 --- a/samples/grids/tree-grid/overview/Program.cs +++ b/samples/grids/tree-grid/overview/Program.cs @@ -22,7 +22,8 @@ public static async Task Main(string[] args) builder.Services.AddIgniteUIBlazor( typeof(IgbInputModule), typeof(IgbPropertyEditorPanelModule), - typeof(IgbTreeGridModule) + typeof(IgbTreeGridModule), + typeof(IgbPaginatorModule) ); await builder.Build().RunAsync(); }